question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Crash when picking auto completion in UI and backspacing

See original GitHub issue

Steps to reproduce

  1. Open a group chat on Messenger app
  2. Write @
  3. Select someone from Messenger suggestion (it writes @firstname lastname into the textbox)
  4. Press backspace twice (deleting space, then lastname)
  5. Write , (the keyboard insert its first suggestion then comma (I get @firstnamelastname,)
  6. Delete until the end of firstname (@firstname)
  7. Write , (for some reason, it removes everything in the box but the comma)
  8. Press backspace to remove the comma
  9. Firstname reappears, but is no more linked
  10. Click on Messenger name link suggestion
  11. The textbox is like in step 3, but an extra empty char at the end, all underlined and the keyboard crashes

Actual behaviour

The keyboard crashed

Hi. It seems that we have crashed.... Here are some details:
****** UTC Time: 09:45:53 02.07.2021
****** Application name: AnySoftKeyboard (com.menny.android.anysoftkeyboard) v1.10.1786 release 6956. Installed on 1621131107691, first release installed was 5539.
******************************
****** Exception type: java.lang.StringIndexOutOfBoundsException
****** Exception message: length=4; regionStart=0; regionLength=16
****** Trace trace:
at java.lang.AbstractStringBuilder.startEndAndLength(AbstractStringBuilder.java:211)
at java.lang.AbstractStringBuilder.codePointCount(AbstractStringBuilder.java:858)
at java.lang.StringBuilder.codePointCount(StringBuilder.java:44)
at b.b.v.t0.d()
at com.anysoftkeyboard.AnySoftKeyboard.f(:2)
at com.anysoftkeyboard.AnySoftKeyboard.a(:27)
at com.anysoftkeyboard.AnySoftKeyboard.a(:48)
at com.anysoftkeyboard.saywhat.PublicNotices.a()
at b.b.z.r0.y0.a(:2)
at b.b.z.r0.y0.d()
at com.anysoftkeyboard.keyboards.views.AnyKeyboardViewBase.a(:13)
at com.anysoftkeyboard.keyboards.views.AnyKeyboardViewBase.a()
at com.anysoftkeyboard.keyboards.views.AnyKeyboardViewBase.onTouchEvent(:23)
at b.b.z.r0.g0.onTouchEvent()
at com.anysoftkeyboard.keyboards.views.AnyKeyboardView.onTouchEvent(:5)
at android.view.View.dispatchTouchEvent(View.java:9390)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2461)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1777)
at android.app.Dialog.dispatchTouchEvent(Dialog.java:833)
at android.inputmethodservice.SoftInputWindow.dispatchTouchEvent(SoftInputWindow.java:93)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2422)
at android.view.View.dispatchPointerEvent(View.java:9610)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4447)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4313)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3847)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3900)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3866)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3992)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3874)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4049)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3847)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3900)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3866)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3874)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3847)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6146)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6120)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6081)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6262)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:192)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:330)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5621)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)

******************************
****** Device information:
BRAND:HONOR
DEVICE:HWPLK
Build ID:PLK-L01C432B397
changelist number:HONORPLK-L01
MODEL:PLK-L01
PRODUCT:PLK-L01
TAGS:release-keys
VERSION.INCREMENTAL:C432B397
VERSION.RELEASE:6.0
VERSION.SDK_INT:23
Locale:en_IE
configuration:{1.0 206mcc30mnc en_IE ldltr sw360dp w360dp h580dp 480dpi nrml port finger -keyb/v/h -nav/h suim:1 s.59}
That's all I know.******************************
****** Log-Cat:
Log contains 0 lines:

Android OS version: 6 Device manufacturer and model: Honor 7 List of installed add-ons (like languages, or themes): French add-on

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:1
  • Comments:5 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
m3tohcommented, Oct 29, 2022

The same crash happened to me on version v1.11-r1, is there a fix to this bug? Thank you.

1reaction
f380cedriccommented, Mar 5, 2022

Got a new reproducer:

  1. Open a group chat on Facebook Messenger app
  2. Write part of the firstname or lastname of one of the members
  3. Select someone from Messenger suggestion (it writes @firstname lastname into the textbox), with an extra empty char, all underlined (like step 11)
  4. Press backspace

When pressing backspace, the code goes to https://github.com/AnySoftKeyboard/AnySoftKeyboard/blob/0b6307626befdb09d87509d7a78876b0dfdca6b4/ime/dictionaries/src/main/java/com/anysoftkeyboard/dictionaries/WordComposer.java#L283 mCursorPosition has been updated from https://github.com/AnySoftKeyboard/AnySoftKeyboard/blob/0b6307626befdb09d87509d7a78876b0dfdca6b4/ime/app/src/main/java/com/anysoftkeyboard/ime/AnySoftKeyboardSuggestions.java#L470 which pushes the mCursorPosition to the end of @firstname lastname, without modifying mTypedWord (which still contains the word that has been typed by the user, not the resulting word from Messenger suggestion). So, you end up trying to manipulate a mTypedWord which is shorter than the mCursorPosition.

Logcat
com.menny.android.anysoftkeyboard D/ASK: onNonFunctionKey 103
com.menny.android.anysoftkeyboard D/ASK: handleCharacter: 103, isPredictionOn: true, isCurrentlyPredicting: true
com.menny.android.anysoftkeyboard D/ASK: shift updateShiftStateNow inputSaysCaps=false
com.menny.android.anysoftkeyboard D/ASK: shift Setting UI active:false, locked: false
com.menny.android.anysoftkeyboard D/ASK: onUpdateSelection: oss=2, ose=2, nss=3, nse=3, cs=0, ce=3
com.menny.android.anysoftkeyboard V/ASK: onUpdateSelection: word 'Eng', position 3.
com.menny.android.anysoftkeyboard V/ASK: onUpdateSelection: Expected event. Discarding.
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: E, ex
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,1,2,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: g, go
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, English
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, England
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engine
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engines
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engaged
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engineer
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,8,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engage
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engaging
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,8,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engraved
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,8,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engined
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engages
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: editDistance: eng, engraver
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 0:0,1,2,3,4,5,6,7,8,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 1:1,0,1,2,3,4,5,6,7,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 2:2,1,0,1,2,3,4,5,6,
com.menny.android.anysoftkeyboard D/ASKIMEUtils: 3:3,2,1,0,1,2,3,4,5,
com.menny.android.anysoftkeyboard D/ASK: shift updateShiftStateNow inputSaysCaps=false
com.menny.android.anysoftkeyboard D/ASK: shift Setting UI active:false, locked: false
com.menny.android.anysoftkeyboard D/ASK: onUpdateSelection: oss=3, ose=3, nss=16, nse=16, cs=0, ce=16
com.menny.android.anysoftkeyboard V/ASK: onUpdateSelection: word 'Eng', position 3.
com.menny.android.anysoftkeyboard D/ASK: onUpdateSelection: ok, let's see what can be done
com.menny.android.anysoftkeyboard D/ASK: onUpdateSelection: inside the currently typed word to location 16.
com.menny.android.anysoftkeyboard D/ASK: onFunctionKey -5
com.menny.android.anysoftkeyboard E/InputEventReceiver: Exception dispatching input event.
com.menny.android.anysoftkeyboard E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
com.menny.android.anysoftkeyboard E/MessageQueue-JNI: java.lang.StringIndexOutOfBoundsException: length=3; regionStart=0; regionLength=16
        at java.lang.AbstractStringBuilder.startEndAndLength(AbstractStringBuilder.java:211)
        at java.lang.AbstractStringBuilder.codePointCount(AbstractStringBuilder.java:858)
        at java.lang.StringBuilder.codePointCount(StringBuilder.java:44)
        at com.anysoftkeyboard.dictionaries.WordComposer.deleteCodePointAtCurrentPosition(WordComposer.java:283)
        at com.anysoftkeyboard.AnySoftKeyboard.handleDeleteLastCharacter(AnySoftKeyboard.java:929)
        at com.anysoftkeyboard.AnySoftKeyboard.onFunctionKey(AnySoftKeyboard.java:397)
        at com.anysoftkeyboard.AnySoftKeyboard.onKey(AnySoftKeyboard.java:679)
        at com.anysoftkeyboard.saywhat.PublicNotices.onKey(PublicNotices.java:32)
        at com.anysoftkeyboard.keyboards.views.PointerTracker.detectAndSendKey(PointerTracker.java:550)
        at com.anysoftkeyboard.keyboards.views.PointerTracker.repeatKey(PointerTracker.java:412)
        at com.anysoftkeyboard.keyboards.views.PointerTracker.onDownEvent(PointerTracker.java:273)
        at com.anysoftkeyboard.keyboards.views.AnyKeyboardViewBase.onDownEvent(AnyKeyboardViewBase.java:2079)
        at com.anysoftkeyboard.keyboards.views.AnyKeyboardViewBase.sendOnXEvent(AnyKeyboardViewBase.java:2059)
        at com.anysoftkeyboard.keyboards.views.AnyKeyboardViewBase.onTouchEvent(AnyKeyboardViewBase.java:2034)
        at com.anysoftkeyboard.keyboards.views.AnyKeyboardViewWithMiniKeyboard.onTouchEvent(AnyKeyboardViewWithMiniKeyboard.java:109)
        at com.anysoftkeyboard.keyboards.views.AnyKeyboardView.onTouchEvent(AnyKeyboardView.java:372)
        at android.view.View.dispatchTouchEvent(View.java:9390)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2555)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
        at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2461)
        at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1777)
        at android.app.Dialog.dispatchTouchEvent(Dialog.java:833)
        at android.inputmethodservice.SoftInputWindow.dispatchTouchEvent(SoftInputWindow.java:93)
        at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2422)
        at android.view.View.dispatchPointerEvent(View.java:9610)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4447)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4313)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3847)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3900)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3866)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3992)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3874)
        at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4049)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3847)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3900)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3866)
        at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3874)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3847)
        at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6146)
Read more comments on GitHub >

github_iconTop Results From Across the Web

crash when making selection in AutoCompleteTextView
I am selecting from my contacts list. Whenever I make a selection, I get the following error: java.lang.IllegalArgumentException: Invalid ...
Read more >
xcode 7 crashes on autocompletion NSRangeException
I get this crash each time Xcode uses autocompletion. Steps -. 1. Use any system library - Ex.: UIColor. 2. I type "[UIColor...
Read more >
Cypress slows down and then crashes during cypress run
I'll run a test manually, using the UI. It's a coin-flip whether it freezes or runs smoothly. It will usually freeze when the...
Read more >
It is time to unlink the "Backspace" -> Browser Back shortcut.
I am aware that while typing in a field (like this one) the backspace button will delete letters and not move the browser...
Read more >
Crash when selecting preferred weapon : r/Nioh - Reddit
Nioh: Complete Edition (PC) - Crash when selecting preferred weapon. I managed to beat the tutorial level, but now when it asks me...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found