Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content

Note app crash when cutting last line

  • /e/ version: 0.9
  • Device model: OnePlus6T:

Summary

When cutting last line of markdown formatted text, note app crashes

  • The device is unusable
  • The bug is the source of a data loss or a big waste of time
  • The bug concerns a third-party application
  • The bug concerns security
  • The bug concerns privacy

Relevant screenshots

signal-2020-06-10-003552

Possible fixes

In the following logs, the = in charAt: 409 >= length 409 seems wrong? (since 409 is equal to 409 😅 )

Logs

Version: 1.0.1

java.lang.IndexOutOfBoundsException: charAt: 409 >= length 409
	at android.text.SpannableStringBuilder.charAt(SpannableStringBuilder.java:123)
	at android.text.CharSequenceCharacterIterator.current(CharSequenceCharacterIterator.java:58)
	at android.text.CharSequenceCharacterIterator.setIndex(CharSequenceCharacterIterator.java:83)
	at android.icu.text.RuleBasedBreakIterator.CISetIndex32(RuleBasedBreakIterator.java:1126)
	at android.icu.text.RuleBasedBreakIterator.isBoundary(RuleBasedBreakIterator.java:503)
	at android.text.method.WordIterator.isBoundary(WordIterator.java:95)
	at android.widget.Editor$SelectionHandleView.positionAtCursorOffset(Editor.java:5467)
	at android.widget.Editor$HandleView.invalidate(Editor.java:4577)
	at android.widget.Editor$SelectionModifierCursorController.invalidateHandles(Editor.java:6145)
	at android.widget.Editor.invalidateHandlesAndActionMode(Editor.java:1985)
	at android.widget.TextView.spanChange(TextView.java:9943)
	at android.widget.TextView$ChangeWatcher.onSpanRemoved(TextView.java:12601)
	at android.text.SpannableStringBuilder.sendSpanRemoved(SpannableStringBuilder.java:1292)
	at android.text.SpannableStringBuilder.removeSpan(SpannableStringBuilder.java:500)
	at android.text.SpannableStringBuilder.removeSpan(SpannableStringBuilder.java:799)
	at android.text.SpannableStringBuilder.removeSpan(SpannableStringBuilder.java:787)
	at com.yydcdut.markdown.utils.SyntaxUtils.removeSpans(SyntaxUtils.java:294)
	at com.yydcdut.markdown.live.StrikeThroughLive.format(StrikeThroughLive.java:85)
	at com.yydcdut.markdown.live.StrikeThroughLive.onTextChanged(StrikeThroughLive.java:63)
	at com.yydcdut.markdown.live.LivePrepare.onTextChanged(LivePrepare.java:81)
	at com.yydcdut.markdown.MarkdownEditText.onTextChanged4Controller(MarkdownEditText.java:252)
	at com.yydcdut.markdown.MarkdownEditText.access$700(MarkdownEditText.java:44)
	at com.yydcdut.markdown.MarkdownEditText$EditTextWatcher.onTextChanged(MarkdownEditText.java:176)
	at android.widget.TextView.sendOnTextChanged(TextView.java:9771)
	at android.widget.TextView.handleTextChanged(TextView.java:9868)
	at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:12562)
	at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1263)
	at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:575)
	at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:229)
	at android.text.SpannableStringBuilder.delete(SpannableStringBuilder.java:36)
	at android.widget.TextView.deleteText_internal(TextView.java:12071)
	at android.widget.TextView.onTextContextMenuItem(TextView.java:11319)
	at android.widget.Editor$TextActionModeCallback.onActionItemClicked(Editor.java:4181)
	at com.android.internal.policy.DecorView$ActionModeCallback2Wrapper.onActionItemClicked(DecorView.java:2392)
	at com.android.internal.view.FloatingActionMode$3.onMenuItemSelected(FloatingActionMode.java:98)
	at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:776)
	at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:148)
	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:923)
	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:913)
	at com.android.internal.view.FloatingActionMode.lambda$setFloatingToolbar$0(FloatingActionMode.java:123)
	at com.android.internal.view.-$$Lambda$FloatingActionMode$LU5MpPuKYDtwlFAuYhXYfzgLNLE.onMenuItemClick(Unknown Source:2)
	at com.android.internal.widget.FloatingToolbar$FloatingToolbarPopup$2.onClick(FloatingToolbar.java:443)
	at android.view.View.performClick(View.java:6597)
	at android.view.View.performClickInternal(View.java:6574)
	at android.view.View.access$3100(View.java:778)
	at android.view.View$PerformClick.run(View.java:25906)
	at android.os.Handler.handleCallback(Handler.java:873)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:193)
	at android.app.ActivityThread.main(ActivityThread.java:6718)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Edited by Thomas Raffray