{ "id": "170200", "key": "TIMOB-25471", "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": "17609", "description": "", "name": "Release 7.0.0", "archived": false, "released": true, "releaseDate": "2017-12-07" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-11-15T04:29:11.000+0000", "created": "2017-11-01T07:33:49.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [ { "id": "19906", "description": "", "name": "Release 6.3.0", "archived": false, "released": true, "releaseDate": "2017-11-01" } ], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-11-15T07:42:04.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": "It's happening when you have multiple nested windows with table views and click back button quickly to close the application.\r\n\r\nHere is the complete crash log:-\r\n11-01 00:56:36.663: E/AndroidRuntime(22347): java.lang.RuntimeException: Unable to destroy activity {com.homeinspectorpro.mobile/org.appcelerator.titanium.TiActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.HashMap.containsKey(java.lang.Object)' on a null object reference\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4244)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4262)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.app.ActivityThread.-wrap6(ActivityThread.java)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1551)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.os.Handler.dispatchMessage(Handler.java:102)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.os.Looper.loop(Looper.java:154)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.app.ActivityThread.main(ActivityThread.java:6165)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at java.lang.reflect.Method.invoke(Native Method)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.HashMap.containsKey(java.lang.Object)' on a null object reference\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.kroll.KrollProxy.hasProperty(KrollProxy.java:580)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at ti.modules.titanium.ui.widget.TiUITableView.processProperties(TiUITableView.java:175)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.kroll.KrollProxy.setModelListener(KrollProxy.java:1222)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:516)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:507)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:485)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at ti.modules.titanium.ui.TableViewProxy.getTableView(TableViewProxy.java:147)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at ti.modules.titanium.ui.TableViewProxy.handleMessage(TableViewProxy.java:860)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.os.Handler.dispatchMessage(Handler.java:98)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.kroll.common.TiMessenger.dispatchMessage(TiMessenger.java:394)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.kroll.common.TiMessenger.dispatchPendingMessages(TiMessenger.java:379)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.kroll.common.TiMessenger$2.getResult(TiMessenger.java:257)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.kroll.common.TiMessenger.sendBlockingMessage(TiMessenger.java:291)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.kroll.common.TiMessenger.sendBlockingRuntimeMessage(TiMessenger.java:191)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.kroll.KrollProxy.fireSyncEvent(KrollProxy.java:800)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.titanium.proxy.TiWindowProxy.closeFromActivity(TiWindowProxy.java:206)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.titanium.TiBaseActivity.onDestroy(TiBaseActivity.java:1591)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at org.appcelerator.titanium.TiActivity.onDestroy(TiActivity.java:32)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.app.Activity.performDestroy(Activity.java:6889)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1175)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4231)\r\n11-01 00:56:36.663: E/AndroidRuntime(22347):   ... 9 more", "attachment": [], "flagged": false, "summary": "Android: TableView : java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.HashMap.containsKey(java.lang.Object)' on a null object reference", "creator": { "name": "speedyankur@gmail.com", "key": "speedyankur@gmail.com", "displayName": "ankur garha", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "speedyankur@gmail.com", "key": "speedyankur@gmail.com", "displayName": "ankur garha", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Ti SDK 6.2.2\r\nAndroid 7.x\r\nOS : Mac 10.12.6", "closedSprints": [ { "id": 963, "state": "closed", "name": "2017 Sprint 22 SDK", "startDate": "2017-10-22T21:43:59.523Z", "endDate": "2017-11-05T22:43:00.000Z", "completeDate": "2017-11-06T16:33:42.425Z", "originBoardId": 114 }, { "id": 968, "state": "closed", "name": "2017 Sprint 23 SDK", "startDate": "2017-11-05T16:37:25.071Z", "endDate": "2017-11-19T16:37:00.000Z", "completeDate": "2017-11-20T18:57:56.565Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "429947", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Thanks for reporting! Did this not happen before 6.2.x? cc [~jquick]", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-11-01T11:25:14.000+0000", "updated": "2017-11-01T11:25:14.000+0000" }, { "id": "429964", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~sdarda], would you mind trying to reproduce this please?\r\nI suspect that this can happen if you set up a TableView with a SearchView, launch the app, and then quickly back out of the app. You'll likely need to quickly tap the back key as the app is launching (it'll queue the back key event) to reproduce this issue.\r\n\r\n[~hknoechel], I don't think this is a regression. I suspect this issue has always existed.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-01T18:30:51.000+0000", "updated": "2017-11-01T18:30:51.000+0000" }, { "id": "429968", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master: https://github.com/appcelerator/titanium_mobile/pull/9579", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-01T19:29:46.000+0000", "updated": "2017-11-01T19:29:46.000+0000" }, { "id": "429971", "author": { "name": "homeinspectorpro", "key": "homeinspectorpro", "displayName": "Dominic Maricic", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This has existed for a long time. We do definitely have a search view involved and it DOES happen when we quickly back out of the app. ", "updateAuthor": { "name": "homeinspectorpro", "key": "homeinspectorpro", "displayName": "Dominic Maricic", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-01T19:47:49.000+0000", "updated": "2017-11-01T19:47:49.000+0000" }, { "id": "430380", "author": { "name": "speedyankur@gmail.com", "key": "speedyankur@gmail.com", "displayName": "ankur garha", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Gary, \r\n\r\nI tried applying your patch, it solved this problem but its giving rise to another crash. Please find the logs attached below.\r\n\r\n\r\n{code:java}\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): java.lang.RuntimeException: Unable to destroy activity {com.homeinspectorpro.mobile/org.appcelerator.titanium.TiActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void ti.modules.titanium.ui.widget.TiUITableView.updateView()' on a null object reference\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4244)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4262)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.app.ActivityThread.-wrap6(ActivityThread.java)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:1551)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.os.Handler.dispatchMessage(Handler.java:102)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.os.Looper.loop(Looper.java:154)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.app.ActivityThread.main(ActivityThread.java:6165)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat java.lang.reflect.Method.invoke(Native Method)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:778)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void ti.modules.titanium.ui.widget.TiUITableView.updateView()' on a null object reference\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat ti.modules.titanium.ui.TableViewProxy.handleMessage(TableViewProxy.java:860)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.os.Handler.dispatchMessage(Handler.java:98)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.kroll.common.TiMessenger.dispatchMessage(TiMessenger.java:394)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.kroll.common.TiMessenger.dispatchPendingMessages(TiMessenger.java:379)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.kroll.common.TiMessenger$2.getResult(TiMessenger.java:257)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.kroll.common.TiMessenger.sendBlockingMessage(TiMessenger.java:291)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.kroll.common.TiMessenger.sendBlockingRuntimeMessage(TiMessenger.java:191)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.kroll.KrollProxy.fireSyncEvent(KrollProxy.java:812)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.titanium.proxy.TiWindowProxy.closeFromActivity(TiWindowProxy.java:206)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.titanium.TiBaseActivity.onDestroy(TiBaseActivity.java:1596)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat org.appcelerator.titanium.TiActivity.onDestroy(TiActivity.java:32)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.app.Activity.performDestroy(Activity.java:6889)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1175)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \tat android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4231)\r\n11-10 01:14:50.846: E/AndroidRuntime(6564): \t... 9 more\r\n\r\n{code}\r\n", "updateAuthor": { "name": "speedyankur@gmail.com", "key": "speedyankur@gmail.com", "displayName": "ankur garha", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-10T07:15:39.000+0000", "updated": "2017-11-10T07:15:39.000+0000" }, { "id": "430439", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~speedyankur@gmail.com] I've updated the PR, report back after trying the new changes?", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-11T01:47:39.000+0000", "updated": "2017-11-11T01:47:39.000+0000" }, { "id": "430686", "author": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Changes are seen in SDK 7.0.0.v20171114203226.", "updateAuthor": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-11-15T07:42:04.000+0000", "updated": "2017-11-15T07:42:04.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }