Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-19823

Android: ConcurrentModificationException at TiListView

    Details

    • Type: Bug
    • Status: Closed
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Release 5.2.0
    • Component/s: Android
    • Labels:
      None
    • Environment:

      Android 5.0.x and 4.2.2
      SDK 5.0.0.GA and 5.0.2.GA

    • Story Points:
      5
    • Sprint:
      2015 Sprint 23 SDK

      Description

      Reproduce Step:

      1. Simply the test case attached.
      2. Scroll down until exception throw out and app crash.

      Exception

      [DEBUG] :  AndroidRuntime: Shutting down VM
      [WARN] :   dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x40cbb930)
      [ERROR] :  TiApplication: (main) [914474,914474] Sending event: exception on thread: main msg:java.util.ConcurrentModificationException; Titanium 5.0.0,2015/09/15 23:07,ec79bc5
      [ERROR] :  TiApplication: java.util.ConcurrentModificationException
      [ERROR] :  TiApplication: 	at java.util.ArrayList$ArrayListIterator.remove(ArrayList.java:582)
      [ERROR] :  TiApplication: 	at ti.modules.titanium.ui.widget.listview.TiListView.checkMarker(TiListView.java:457)
      [ERROR] :  TiApplication: 	at ti.modules.titanium.ui.widget.listview.TiListView$TiBaseAdapter.getView(TiListView.java:255)
      [ERROR] :  TiApplication: 	at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)
      [ERROR] :  TiApplication: 	at android.widget.AbsListView.obtainView(AbsListView.java:2143)
      [ERROR] :  TiApplication: 	at android.widget.ListView.makeAndAddView(ListView.java:1831)
      [ERROR] :  TiApplication: 	at android.widget.ListView.fillDown(ListView.java:674)
      [ERROR] :  TiApplication: 	at android.widget.ListView.fillGap(ListView.java:638)
      [ERROR] :  TiApplication: 	at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4930)
      [ERROR] :  TiApplication: 	at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4087)
      [ERROR] :  TiApplication: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
      [ERROR] :  TiApplication: 	at android.view.Choreographer.doCallbacks(Choreographer.java:562)
      [ERROR] :  TiApplication: 	at android.view.Choreographer.doFrame(Choreographer.java:531)
      [ERROR] :  TiApplication: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
      [ERROR] :  TiApplication: 	at android.os.Handler.handleCallback(Handler.java:725)
      [ERROR] :  TiApplication: 	at android.os.Handler.dispatchMessage(Handler.java:92)
      [ERROR] :  TiApplication: 	at android.os.Looper.loop(Looper.java:137)
      [ERROR] :  TiApplication: 	at android.app.ActivityThread.main(ActivityThread.java:5041)
      [ERROR] :  TiApplication: 	at java.lang.reflect.Method.invokeNative(Native Method)
      [ERROR] :  TiApplication: 	at java.lang.reflect.Method.invoke(Method.java:511)
      [ERROR] :  TiApplication: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
      [ERROR] :  TiApplication: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
      [ERROR] :  TiApplication: 	at dalvik.system.NativeStart.main(Native Method)
      

      Note

      1. It was working well in SDK 3.5.1.GA, but after upgrade to 5.0.x, it happened.
      2. Basically test code is using ListView.setMarker() heavily to track which row the user has scrolled to and loading of additional rows.
      3. Only happens on Android, iOS works well.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                hpham Hieu Pham
                Reporter:
                sliang Shuo Liang
                Reviewer:
                Ashraf Abu (Inactive)
              • Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Git Source Code