Skip to content

setTokenLimit() crash #127

Description

@jyothish6190

I set token limit to 20, and I added 20 tokens. then it shows me like this,
+18+18
when the completionView loses focus and if i click again on it app crashed. Here is the log

05-14 11:36:02.481 10433-10433/com.inxed E/InputEventReceiver﹕ Exception dispatching input event.
05-14 11:36:02.481 10433-10433/com.inxed E/MessageQueue-JNI﹕ Exception in MessageQueue callback: handleReceiveCallback
05-14 11:36:02.491 10433-10433/com.inxed E/MessageQueue-JNI﹕ java.lang.IndexOutOfBoundsException: setSpan (7 ... 24) ends beyond length 7
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1016)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:592)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:588)
at com.tokenautocomplete.TokenCompleteTextView.insertSpan(TokenCompleteTextView.java:900)
at com.tokenautocomplete.TokenCompleteTextView.insertSpan(TokenCompleteTextView.java:920)
at com.tokenautocomplete.TokenCompleteTextView.insertSpan(TokenCompleteTextView.java:924)
at com.tokenautocomplete.TokenCompleteTextView.performCollapse(TokenCompleteTextView.java:650)
at com.tokenautocomplete.TokenCompleteTextView.onFocusChanged(TokenCompleteTextView.java:686)
at android.view.View.handleFocusGainInternal(View.java:4635)
at android.view.View.requestFocusNoSearch(View.java:7029)
at android.view.View.requestFocus(View.java:7008)
at android.view.View.requestFocus(View.java:6975)
at android.view.View.requestFocus(View.java:6954)
at android.view.View.onTouchEvent(View.java:8683)
at android.widget.TextView.onTouchEvent(TextView.java:7704)
at com.tokenautocomplete.TokenCompleteTextView.onTouchEvent(TokenCompleteTextView.java:532)
at android.view.View.dispatchTouchEvent(View.java:7736)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
at android.app.Activity.dispatchTouchEvent(Activity.java:2466)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
at android.view.View.dispatchPointerEvent(View.java:7916)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4023)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3902)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3452)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3502)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3471)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3578)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3479)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3635)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3452)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3502)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3471)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3479)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3452)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5657)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5588)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5559)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(
05-14 11:36:02.495 10433-10433/com.inxed D/AndroidRuntime﹕ Shutting down VM
05-14 11:36:02.496 10433-10433/com.inxed W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41c3ed40)
05-14 11:36:02.504 10433-10433/com.inxed E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.inxed, PID: 10433
java.lang.IndexOutOfBoundsException: setSpan (7 ... 24) ends beyond length 7
at android.text.SpannableStringBuilder.checkRange(SpannableStringBuilder.java:1016)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:592)
at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:588)
at com.tokenautocomplete.TokenCompleteTextView.insertSpan(TokenCompleteTextView.java:900)
at com.tokenautocomplete.TokenCompleteTextView.insertSpan(TokenCompleteTextView.java:920)
at com.tokenautocomplete.TokenCompleteTextView.insertSpan(TokenCompleteTextView.java:924)
at com.tokenautocomplete.TokenCompleteTextView.performCollapse(TokenCompleteTextView.java:650)
at com.tokenautocomplete.TokenCompleteTextView.onFocusChanged(TokenCompleteTextView.java:686)
at android.view.View.handleFocusGainInternal(View.java:4635)
at android.view.View.requestFocusNoSearch(View.java:7029)
at android.view.View.requestFocus(View.java:7008)
at android.view.View.requestFocus(View.java:6975)
at android.view.View.requestFocus(View.java:6954)
at android.view.View.onTouchEvent(View.java:8683)
at android.widget.TextView.onTouchEvent(TextView.java:7704)
at com.tokenautocomplete.TokenCompleteTextView.onTouchEvent(TokenCompleteTextView.java:532)
at android.view.View.dispatchTouchEvent(View.java:7736)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2218)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
at android.app.Activity.dispatchTouchEvent(Activity.java:2466)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
at android.view.View.dispatchPointerEvent(View.java:7916)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4023)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3902)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3452)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3502)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3471)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3578)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3479)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3635)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3452)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3502)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3471)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3479)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3452)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5657)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5588)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5559)
at android.view.

Thanks

Activity

  1. mgod commented on May 27, 2015

    @mgod
    Contributor

    This should be fixed as of 3b0f86f. Expect 2.0 to include this change.

  2. adhishlal commented on Apr 11, 2016

    @adhishlal

    Same issue is with me in version 2.0.7

  3. wcapraro commented on Jun 26, 2017

    @wcapraro

    Also present in 2.0.8

  4. reopened this on Jun 26, 2017
  5. mobiniuspabitraranjan commented on Feb 25, 2019

    @mobiniuspabitraranjan

    same issue still in V2.0.8

  6. mgod commented on Mar 9, 2019

    @mgod
    Contributor

    I've re-written most of this code for 3.0.0 and I'm pretty sure it should resolve this issue. Please let me know if you're still seeing it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions