{ "id": "176024", "key": "TIMOB-28352", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "21050", "name": "Release 10.0.0", "archived": false, "released": true, "releaseDate": "2021-05-17" }, { "id": "21212", "description": "", "name": "Release 9.3.3", "archived": false, "released": false } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2021-05-18T18:22:22.000+0000", "created": "2021-02-06T18:09:12.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "ListView", "android", "marker", "regression" ], "versions": [ { "id": "21052", "description": "", "name": "Release 9.3.0", "archived": false, "released": true, "releaseDate": "2020-12-14" } ], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2021-06-01T22:33:27.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "The application will crash when trying to fire a marker event in listview.\r\nTested with SDK 9.3.1.GA and 9.3.2.v20210205063432.\r\n\r\n*+Test Steps:+*\r\n# Create a New titanium application\r\n# Copy the test case below into the application\r\n# Run the application\r\n# Scroll list view to Row 20\r\n\r\n*+Test Case:+*\r\n{code:java}\r\nconst window = Ti.UI.createWindow();\r\n\r\nconst emptySection = Ti.UI.createListSection({\r\n headerTitle: \"I'm an empty Section\"\r\n});\r\n\r\nconst listItems = [];\r\n\r\nfor (let index = 0; index < 100; index++) {\r\n\r\n listItems[index] = {\r\n properties: {\r\n title: \"Row \" + (index + 1).toString()\r\n }\r\n };\r\n}\r\n\r\nconst listSection = Ti.UI.createListSection({\r\n headerTitle: \"List Section\"\r\n});\r\n\r\nlistSection.items = listItems;\r\n\r\nconst listView = Ti.UI.createListView({\r\n canScroll: true,\r\n});\r\n\r\nlistView.sections = [emptySection, listSection];\r\n\r\nlistView.addMarker({\r\n sectionIndex: 1,\r\n itemIndex: 20\r\n});\r\n\r\nlistView.addEventListener(\"marker\", () => {\r\n alert(\"Here\");\r\n});\r\n\r\nwindow.add(listView);\r\n\r\nwindow.open();\r\n{code}\r\n", "attachment": [], "flagged": false, "summary": "Android: Application crashes when scrolling to listview marker", "creator": { "name": "ahmed.mohamed20320", "key": "ahmed.mohamed20320", "displayName": "Ahmed Mohamed", "active": true, "timeZone": "Africa/Cairo" }, "subtasks": [], "reporter": { "name": "ahmed.mohamed20320", "key": "ahmed.mohamed20320", "displayName": "Ahmed Mohamed", "active": true, "timeZone": "Africa/Cairo" }, "environment": null, "closedSprints": [ { "id": 1217, "state": "closed", "name": "2021 Sprint 4", "startDate": "2021-02-16T00:52:00.000Z", "endDate": "2021-02-27T00:52:00.000Z", "completeDate": "2021-02-28T18:56:28.465Z", "originBoardId": 114 }, { "id": 1224, "state": "closed", "name": "2021 Sprint 10", "startDate": "2021-05-17T16:31:32.484Z", "endDate": "2021-05-28T16:31:00.000Z", "completeDate": "2021-05-28T22:15:02.543Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "458233", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "body": "The error:\r\n{code}\r\n[ERROR] TiExceptionHandler: (main) [2,1104] Attempt to read from field 'android.graphics.Rect androidx.recyclerview.widget.RecyclerView$LayoutParams.mDecorInsets' on a null object reference\r\n[ERROR] TiExceptionHandler:\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.RecyclerView$LayoutManager.getLeftDecorationWidth(RecyclerView.java:9954)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.RecyclerView$LayoutManager.getDecoratedLeft(RecyclerView.java:9847)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.RecyclerView$LayoutManager$1.getChildStart(RecyclerView.java:7827)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.ViewBoundsCheck.isViewWithinBoundFlags(ViewBoundsCheck.java:249)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.RecyclerView$LayoutManager.isViewPartiallyVisible(RecyclerView.java:10150)\r\n[ERROR] TiExceptionHandler: ti.modules.titanium.ui.widget.listview.ListViewProxy.handleMarker(ListViewProxy.java:464)\r\n[ERROR] TiExceptionHandler: ti.modules.titanium.ui.widget.listview.ListViewAdapter.onBindViewHolder(ListViewAdapter.java:107)\r\n[ERROR] TiExceptionHandler: ti.modules.titanium.ui.widget.listview.ListViewAdapter.onBindViewHolder(ListViewAdapter.java:23)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7163)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7243)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6110)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6376)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:288)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:345)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:361)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:368)\r\n[ERROR] TiExceptionHandler: androidx.recyclerview.widget.GapWorker.run(GapWorker.java:399)\r\n[ERROR] TiExceptionHandler: android.os.Handler.handleCallback(Handler.java:938)\r\n[ERROR] TiExceptionHandler: android.os.Handler.dispatchMessage(Handler.java:99)\r\n[ERROR] TiExceptionHandler: android.os.Looper.loop(Looper.java:223)\r\n[ERROR] TiExceptionHandler: android.app.ActivityThread.main(ActivityThread.java:7660)\r\n[ERROR] TiExceptionHandler: java.lang.reflect.Method.invoke(Native Method)\r\n[ERROR] TiExceptionHandler: com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)\r\n[ERROR] TiExceptionHandler: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)\r\n{code}\r\n\r\nA try & catch in ListViewProxy around layoutManager.isViewPartiallyVisible + if (isVisible) works but doesn't look like the correct solution :)", "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2021-02-12T16:11:00.000+0000", "updated": "2021-02-12T16:11:00.000+0000" }, { "id": "458239", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/12472", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-02-13T00:21:10.000+0000", "updated": "2021-02-13T00:21:10.000+0000" }, { "id": "458243", "author": { "name": "fahad86", "key": "fahad86", "displayName": "Muhammad Ahmed Fahad", "active": true, "timeZone": "Asia/Shanghai" }, "body": "Please also apply as patch for 9_3_X", "updateAuthor": { "name": "fahad86", "key": "fahad86", "displayName": "Muhammad Ahmed Fahad", "active": true, "timeZone": "Asia/Shanghai" }, "created": "2021-02-16T07:57:47.000+0000", "updated": "2021-02-16T07:57:47.000+0000" }, { "id": "458254", "author": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed. \r\nWaiting for Jenkins build.", "updateAuthor": { "name": "ssekhri", "key": "ssekhri", "displayName": "Satyam Sekhri", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-02-16T22:15:09.000+0000", "updated": "2021-02-16T22:15:09.000+0000" }, { "id": "458256", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "merged to master for 10.0.0 target. Also backport PR merged to 9_3_X maintenance branch (but we do not expect to release a formal 9.3.3 GA, so users wanting fix can install via {{ti sdk install -b 9_3_X}})", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2021-02-17T14:39:06.000+0000", "updated": "2021-02-17T14:39:06.000+0000" }, { "id": "458307", "author": { "name": "ahmed.mohamed20320", "key": "ahmed.mohamed20320", "displayName": "Ahmed Mohamed", "active": true, "timeZone": "Africa/Cairo" }, "body": "Sometimes marker event doesn't fire. please check it again", "updateAuthor": { "name": "ahmed.mohamed20320", "key": "ahmed.mohamed20320", "displayName": "Ahmed Mohamed", "active": true, "timeZone": "Africa/Cairo" }, "created": "2021-02-25T12:52:17.000+0000", "updated": "2021-02-25T12:52:17.000+0000" }, { "id": "458727", "author": { "name": "saidCh", "key": "saidch", "displayName": "said chaouche", "active": true, "timeZone": "Africa/Algiers" }, "body": "In SDK 10.0.0.GA the marker never fired if we don't set item height", "updateAuthor": { "name": "saidCh", "key": "saidch", "displayName": "said chaouche", "active": true, "timeZone": "Africa/Algiers" }, "created": "2021-05-30T14:21:16.000+0000", "updated": "2021-05-30T14:21:16.000+0000" }, { "id": "458729", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~saidCh] See https://github.com/appcelerator/titanium_mobile/pull/12857", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-06-01T22:33:27.000+0000", "updated": "2021-06-01T22:33:27.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }