-
Notifications
You must be signed in to change notification settings - Fork 124
Open
Description
Recently we saw over 10 crashes on Firebase, with this stack trace.
- Device -
Samsung S23 Ultra
. - OS -
Android 15
. - AztecEditor
v1.6.2
.
Fatal Exception: java.lang.IndexOutOfBoundsException: setSpan (120 ... 119) has end before start
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1319)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:685)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:677)
at androidx.emoji2.text.SpannableBuilder.setSpan(SpannableBuilder.java:140)
at org.wordpress.aztec.util.SpanWrapper.setSpanOrLogError(SpanWrapper.kt:42)
at org.wordpress.aztec.util.SpanWrapper.setStart(SpanWrapper.kt:28)
at org.wordpress.aztec.handlers.ListItemHandler.handleNewlineAtStartOfBlock(ListItemHandler.kt:23)
at org.wordpress.aztec.handlers.BlockHandler.handleTextChanged(BlockHandler.kt:62)
at org.wordpress.aztec.watchers.BlockElementWatcher.onTextChanged(BlockElementWatcher.kt:81)
at android.widget.TextView.sendOnTextChanged(TextView.java:13461)
at android.widget.TextView.handleTextChanged(TextView.java:13590)
at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:17363)
at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1268)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:577)
at androidx.emoji2.text.SpannableBuilder.replace(SpannableBuilder.java:315)
at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:508)
at androidx.emoji2.text.SpannableBuilder.replace(SpannableBuilder.java:305)
at androidx.emoji2.text.SpannableBuilder.replace(SpannableBuilder.java:49)
at android.view.inputmethod.BaseInputConnection.replaceTextInternal(BaseInputConnection.java:1027)
at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:962)
at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:241)
at com.android.internal.inputmethod.EditableInputConnection.commitText(EditableInputConnection.java:220)
at android.view.inputmethod.InputConnectionWrapper.commitText(InputConnectionWrapper.java:207)
at android.view.inputmethod.RemoteInputConnectionImpl.lambda$commitText$17(RemoteInputConnectionImpl.java:635)
at android.view.inputmethod.RemoteInputConnectionImpl.$r8$lambda$jNtA8MXobPnaECkNr8D9WTYrxk0()
at android.view.inputmethod.RemoteInputConnectionImpl$$ExternalSyntheticLambda46.run(D8$$SyntheticClass)
at android.os.Handler.handleCallback(Handler.java:959)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:342)
at android.app.ActivityThread.main(ActivityThread.java:9634)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:619)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:929)
It looks like the previous fixes around the setSpanOrLogError
leaks in some edge cases. For now, we would like to see a quick-fix so our users do not face crashes, and then the root-cause with its proper fix in long run.
Metadata
Metadata
Assignees
Labels
No labels