Project: titanium
Issue TIMOB-19823: Android: ConcurrentModificationException at TiListView
h6.Reproduce Step: 1. Simply the test case attached. 2. Scroll down until exception throw out and app crash. h6.Exception {code} [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: java.util.ArrayList$ArrayListIterator.remove(ArrayList.java:582) [ERROR] : TiApplication: ti.modules.titanium.ui.widget.listview.TiListView.checkMarker(TiListView.java:457) [ERROR] : TiApplication: ti.modules.titanium.ui.widget.listview.TiListView$TiBaseAdapter.getView(TiListView.java:255) [ERROR] : TiApplication: android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220) [ERROR] : TiApplication: android.widget.AbsListView.obtainView(AbsListView.java:2143) [ERROR] : TiApplication: android.widget.ListView.makeAndAddView(ListView.java:1831) [ERROR] : TiApplication: android.widget.ListView.fillDown(ListView.java:674) [ERROR] : TiApplication: android.widget.ListView.fillGap(ListView.java:638) [ERROR] : TiApplication: android.widget.AbsListView.trackMotionScroll(AbsListView.java:4930) [ERROR] : TiApplication: android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4087) [ERROR] : TiApplication: android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) [ERROR] : TiApplication: android.view.Choreographer.doCallbacks(Choreographer.java:562) [ERROR] : TiApplication: android.view.Choreographer.doFrame(Choreographer.java:531) [ERROR] : TiApplication: android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) [ERROR] : TiApplication: android.os.Handler.handleCallback(Handler.java:725) [ERROR] : TiApplication: android.os.Handler.dispatchMessage(Handler.java:92) [ERROR] : TiApplication: android.os.Looper.loop(Looper.java:137) [ERROR] : TiApplication: android.app.ActivityThread.main(ActivityThread.java:5041) [ERROR] : TiApplication: java.lang.reflect.Method.invokeNative(Native Method) [ERROR] : TiApplication: java.lang.reflect.Method.invoke(Method.java:511) [ERROR] : TiApplication: com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) [ERROR] : TiApplication: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) [ERROR] : TiApplication: dalvik.system.NativeStart.main(Native Method) {code} h6.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.
Story points: 5