{ "id": "99350", "key": "TIMOB-10477", "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": "14065", "description": "Sprint 2012-17 API", "name": "Sprint 2012-17 API", "archived": true, "released": true, "releaseDate": "2012-08-27" }, { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" }, { "id": "14098", "description": "Sprint 2012-18 API", "name": "Sprint 2012-18 API", "archived": true, "released": true, "releaseDate": "2012-09-10" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-09-05T10:00:24.000+0000", "created": "2012-08-16T15:14:46.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "api", "module_tableview", "qe-and082012", "qe-review", "qe-testadded" ], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [ { "id": "19988", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "93483", "key": "TIMOB-9640", "fields": { "summary": "Android: 'postlayout' event is not triggered", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "21578", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "102240", "key": "TIMOB-11179", "fields": { "summary": "Android: TableView - Postlayout table event not fired on Android", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "21576", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "102239", "key": "TIMOB-11176", "fields": { "summary": "iOS: TableView - Postlayout table event fired 3 times", "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" } }, "priority": { "name": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-12-10T06:12:24.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": "Description:\r\nThe app crashes on launch on Android. Tested on iOS as well and worked fine.\r\n\r\nThis is regression. Didn't exist on 2.1.0.\r\n\r\nSteps to reproduce:\r\n1. Run the following code:\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor:'white',\r\n title:'test',\r\n modal:true\r\n});\r\n \r\nvar data1 = [];\r\n \r\nvar tvr = Ti.UI.createTableViewRow({\r\n title:'pippo',\r\n hasChild:true\r\n});\r\ndata1.push(tvr);\r\n \r\nvar table = Ti.UI.createTableView({\r\n top: 10,\r\n left: 10,\r\n width: 200, \r\n height: 200,\r\n scrollable: false,\r\n borderRadius: 10,\r\n backgroundColor: 'white',\r\n data : data1\r\n});\r\ntable.addEventListener('postlayout', function() {\r\n setTimeout(function(){\r\n Ti.API.info('#### postlayout table event received.');\r\n alert('postlayout table event fired');\r\n },600);\r\n});\r\nwin.add(table);\r\n \r\n \r\nwin.open();\r\n{code}\r\n\r\nConsol output:\r\n{code}\r\n08-16 14:52:06.374: E/TiApplication(9450): (main) [242,242] Sending event: exception on thread: main msg:java.lang.NullPointerException; Titanium 2.2.0,2012/08/15 14:17,9779010\r\n08-16 14:52:06.374: E/TiApplication(9450): java.lang.NullPointerException\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat java.util.HashMap.(HashMap.java:195)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat org.appcelerator.kroll.KrollDict.(KrollDict.java:72)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat ti.modules.titanium.ui.TableViewProxy.fireEvent(TableViewProxy.java:189)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat ti.modules.titanium.ui.widget.tableview.TiTableView.onLayout(TiTableView.java:544)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.widget.FrameLayout.onLayout(FrameLayout.java:448)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:585)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.widget.FrameLayout.onLayout(FrameLayout.java:448)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.widget.LinearLayout.onLayout(LinearLayout.java:1420)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.widget.FrameLayout.onLayout(FrameLayout.java:448)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.Choreographer.doCallbacks(Choreographer.java:555)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.Choreographer.doFrame(Choreographer.java:525)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.os.Handler.handleCallback(Handler.java:615)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.os.Handler.dispatchMessage(Handler.java:92)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.os.Looper.loop(Looper.java:137)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat android.app.ActivityThread.main(ActivityThread.java:4745)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat java.lang.reflect.Method.invokeNative(Native Method)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat java.lang.reflect.Method.invoke(Method.java:511)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)\r\n08-16 14:52:06.374: E/TiApplication(9450): \tat dalvik.system.NativeStart.main(Native Method)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): FATAL EXCEPTION: main\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): java.lang.NullPointerException\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat java.util.HashMap.(HashMap.java:195)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat org.appcelerator.kroll.KrollDict.(KrollDict.java:72)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat ti.modules.titanium.ui.TableViewProxy.fireEvent(TableViewProxy.java:189)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat ti.modules.titanium.ui.widget.tableview.TiTableView.onLayout(TiTableView.java:544)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.widget.FrameLayout.onLayout(FrameLayout.java:448)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:585)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.widget.FrameLayout.onLayout(FrameLayout.java:448)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.widget.LinearLayout.onLayout(LinearLayout.java:1420)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.widget.FrameLayout.onLayout(FrameLayout.java:448)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.View.layout(View.java:13754)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewGroup.layout(ViewGroup.java:4362)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.Choreographer.doCallbacks(Choreographer.java:555)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.Choreographer.doFrame(Choreographer.java:525)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.os.Handler.handleCallback(Handler.java:615)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.os.Handler.dispatchMessage(Handler.java:92)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.os.Looper.loop(Looper.java:137)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat android.app.ActivityThread.main(ActivityThread.java:4745)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat java.lang.reflect.Method.invokeNative(Native Method)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat java.lang.reflect.Method.invoke(Method.java:511)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)\r\n08-16 14:52:06.424: E/AndroidRuntime(9450): \tat dalvik.system.NativeStart.main(Native Method)\r\n{code}\r\n\r\nActual:\r\nThe app crashes\r\n\r\nExpected:\r\nApp should not crash", "attachment": [], "flagged": false, "summary": "Android: The app crashes on launch on Android", "creator": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium Studio, build: 2.1.1.201208091713\r\nTitanium SDK, build: 2.2.0.v20120816015712\r\nDevices: Nexus 7 tab (4.1.1), HTC Evo (4.0.3), LG VS910 (2.3.6)", "comment": { "comments": [ { "id": "216229", "author": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing as fixed. Tested and verified on:\r\nTitanium Studio, build: 2.1.2.201208201549\r\nTitanium SDK, build: 2.2.0.v20120824175712\r\nDevices: Nexus S (4.1.1), HTC Evo (4.0.3)\r\n\r\nThe app does not crash.", "updateAuthor": { "name": "tsmolich", "key": "tsmolich", "displayName": "Tamila Smolich", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-08-27T11:31:28.000+0000", "updated": "2012-08-27T11:31:28.000+0000" }, { "id": "217320", "author": { "name": "nchhabra", "key": "nchhabra", "displayName": "Neha Chhabra", "active": true, "timeZone": "Asia/Kolkata" }, "body": "The app still crashes.\r\nTested with Titanium Studio:2.1.2.201208301612\r\nTested with Titanium SDK: 2.2.0.v20120831200114.\r\n\r\nAlso tested with:\r\nTitanium Studio:2.1.2.201208301612\r\nTitanium SDK: 2.2.0.v20120824175712\r\nwhere in the bug was fixed", "updateAuthor": { "name": "nchhabra", "key": "nchhabra", "displayName": "Neha Chhabra", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2012-09-03T03:15:37.000+0000", "updated": "2012-09-03T03:15:37.000+0000" }, { "id": "217458", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "It appears that the original fix for this: https://github.com/appcelerator/titanium_mobile/pull/2775 was overwritten by https://github.com/appcelerator/titanium_mobile/pull/2792 - probably a merge issue. I will resend the fix in a new PR. \r\n\r\nThis bug should NOT be happening in 2.1.2 though.", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-09-04T11:12:53.000+0000", "updated": "2012-09-04T11:12:53.000+0000" }, { "id": "218141", "author": { "name": "nchhabra", "key": "nchhabra", "displayName": "Neha Chhabra", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Closed and verified with:\r\n\r\nTitanium Studio:2.1.3.201209071738\r\nTitanium SDK: 2.2.0.v20120907162025", "updateAuthor": { "name": "nchhabra", "key": "nchhabra", "displayName": "Neha Chhabra", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2012-09-10T04:21:23.000+0000", "updated": "2012-09-10T04:21:23.000+0000" }, { "id": "283485", "author": { "name": "shameerj", "key": "shameerj", "displayName": "Shameer Jan", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Anvil testcase PR https://github.com/appcelerator/titanium_mobile/pull/5003\n", "updateAuthor": { "name": "shameerj", "key": "shameerj", "displayName": "Shameer Jan", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-12-10T06:12:24.000+0000", "updated": "2013-12-10T06:12:24.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }