{ "id": "115329", "key": "TIMOB-14225", "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": "15564", "description": "2013 Sprint 15 API", "name": "2013 Sprint 15 API", "archived": true, "released": true, "releaseDate": "2013-07-29" }, { "id": "15567", "description": "2013 Sprint 15", "name": "2013 Sprint 15", "archived": true, "released": true, "releaseDate": "2013-07-29" }, { "id": "15479", "description": "Release 3.1.2", "name": "Release 3.1.2", "archived": true, "released": true, "releaseDate": "2013-07-31" }, { "id": "14982", "description": "Release 3.2.0", "name": "Release 3.2.0", "archived": false, "released": true, "releaseDate": "2013-12-19" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-07-09T18:35:30.000+0000", "created": "2013-06-01T15:37:10.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "listview", "parity", "qe-closed-3.1.2", "qe-testadded" ], "versions": [ { "id": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" } ], "issuelinks": [ { "id": "29263", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "115330", "key": "AC-2140", "fields": { "summary": "Android: ListView position parity issue when using accessoryType", "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" } }, "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-08-21T08:43: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": "*Problem*\r\nUsing alloy listview templates on Android seems to cause a crash when a view is removed and then added again. Works on iOS.\r\n\r\n*Test case*\r\nAs alloy involves multiple files rather than a single app.js I have placed example code in our public github repo [https://github.com/ClinicalSoftwareSolutions/DemoBug/tree/listview_android_crash]\r\n\r\n*Steps to reproduce*\r\nClick on any row, which will show view2, then click the close button. On iOS you can switch between views no problem. On android closing the second view results in a crash. \r\n\r\n*Note*\r\nI am using Alloy 1.2 from git source to compile the alloy app, but I don't think that is the issue as the resulting Resources files seem fine.\r\n\r\n*Log*\r\n{code}06-01 16:14:55.170: E/TiApplication(16676): (main) [675396,713363] Sending event: exception on thread: main msg:java.lang.NullPointerException; Titanium 3.1.0,2013/04/15 18:46,57634ef\r\n06-01 16:14:55.170: E/TiApplication(16676): java.lang.NullPointerException\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat ti.modules.titanium.ui.widget.listview.ListSectionProxy.setTemplateType(ListSectionProxy.java:733)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat ti.modules.titanium.ui.widget.listview.TiListView.processSection(TiListView.java:405)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat ti.modules.titanium.ui.widget.listview.TiListView.processSections(TiListView.java:387)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat ti.modules.titanium.ui.widget.listview.TiListView.processProperties(TiListView.java:301)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.kroll.KrollProxy.setModelListener(KrollProxy.java:1123)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:469)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:453)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:421)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:434)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:485)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:453)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:421)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:434)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleAdd(TiViewProxy.java:569)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:214)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat android.os.Looper.loop(Looper.java:137)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat android.app.ActivityThread.main(ActivityThread.java:4898)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat java.lang.reflect.Method.invokeNative(Native Method)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat java.lang.reflect.Method.invoke(Method.java:511)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)\r\n06-01 16:14:55.170: E/TiApplication(16676): \tat dalvik.system.NativeStart.main(Native Method){code}", "attachment": [], "flagged": false, "summary": "Android: ListView templates crash when a view is removed and added again (Alloy 1.2)", "creator": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "subtasks": [], "reporter": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "environment": "OSX 10.8\r\nSDK 3.1.0GA\r\nAndroid 4.1 on Samsung S3\r\nAlloy 1.2", "comment": { "comments": [ { "id": "255904", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "I see that the issue has been marked as related to TC-2397. I don't think this is the case. Setting the accessoryType makes no difference", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-06-04T19:19:23.000+0000", "updated": "2013-06-04T19:19:23.000+0000" }, { "id": "255916", "author": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I related them because they're both using the same test case.", "updateAuthor": { "name": "dsefton", "key": "dsefton", "displayName": "Daniel Sefton", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-06-04T19:59:24.000+0000", "updated": "2013-06-04T19:59:24.000+0000" }, { "id": "255921", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Okay, I just didn't want someone thinking that the bugs were related from the point of view of the behaviour described. I think it might be confusing. But will be clear now, I'm sure.", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-06-04T20:20:25.000+0000", "updated": "2013-06-04T20:20:25.000+0000" }, { "id": "257159", "author": { "name": "sascea-cjr", "key": "sascea-cjr", "displayName": "Clinton Robinson", "active": true, "timeZone": "America/Los_Angeles" }, "body": "There is a missing null check in the setTemplateType, should check to see is listItemData != null before accessing it.", "updateAuthor": { "name": "sascea-cjr", "key": "sascea-cjr", "displayName": "Clinton Robinson", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-06-11T16:08:11.000+0000", "updated": "2013-06-11T16:08:11.000+0000" }, { "id": "257167", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "There should obviously be the null check, but presumably the pointer is becoming deallocated somewhere too as on initial loading the listview shows and only on reload does the null pointer exception occur.", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-06-11T16:33:23.000+0000", "updated": "2013-06-11T16:33:23.000+0000" }, { "id": "257193", "author": { "name": "sascea-cjr", "key": "sascea-cjr", "displayName": "Clinton Robinson", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This is a good point. At least for now I can continue to dev my project with this fix. There is def a deeper underlying problem to fix.", "updateAuthor": { "name": "sascea-cjr", "key": "sascea-cjr", "displayName": "Clinton Robinson", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-06-11T18:15:56.000+0000", "updated": "2013-06-11T18:15:56.000+0000" }, { "id": "259117", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Assuming this has now been confirmed. Is there a fix priority for this and an estimated fix release. Thanks", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-06-22T16:12:17.000+0000", "updated": "2013-06-22T16:12:17.000+0000" }, { "id": "261020", "author": { "name": "fauzias", "key": "fauzias", "displayName": "Fauzi Assegaff", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I second this issue, any updates on this fix would appreciated. thanks.", "updateAuthor": { "name": "fauzias", "key": "fauzias", "displayName": "Fauzi Assegaff", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-08T23:09:23.000+0000", "updated": "2013-07-08T23:09:23.000+0000" }, { "id": "261103", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This should be fixed with latest master. ", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-09T18:35:15.000+0000", "updated": "2013-07-09T18:35:15.000+0000" }, { "id": "263266", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-25T22:26:38.000+0000", "updated": "2013-07-25T22:26:38.000+0000" }, { "id": "263432", "author": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "body": "Tested on Galaxy S3 with master and can confirm the issue is fixed. Thank you.", "updateAuthor": { "name": "ndastur", "key": "ndastur", "displayName": "Neville Dastur", "active": true, "timeZone": "Europe/London" }, "created": "2013-07-26T17:17:35.000+0000", "updated": "2013-07-26T17:17:35.000+0000" }, { "id": "266703", "author": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested and verified fix with:\nTitanium Studio, build: 3.1.2.201308091617\nTitanium SDK, build: 3.1.2.v20130814124556\nAlloy: 1.2.0-beta\nCLI: 3.1.2-alpha\nDevice:\nGalaxy S4 Android version 4.2.2", "updateAuthor": { "name": "oromero", "key": "oromero", "displayName": "Olga Romero", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-08-15T17:53:17.000+0000", "updated": "2013-08-15T17:53:17.000+0000" } ], "maxResults": 13, "total": 13, "startAt": 0 } } }