{ "id": "101014", "key": "TIMOB-10895", "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": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" }, { "id": "14127", "description": "Sprint 2012-19 API", "name": "Sprint 2012-19 API", "archived": true, "released": true, "releaseDate": "2012-09-24" }, { "id": "14271", "description": "2012 Sprint 19", "name": "2012 Sprint 19", "archived": true, "released": true, "releaseDate": "2012-09-24" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-09-21T10:23:44.000+0000", "created": "2012-09-13T10:12:50.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "api", "module_picker", "parity", "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": "20904", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "inwardIssue": { "id": "101017", "key": "ALOY-265", "fields": { "summary": "Improve Ti.UI.Picker parser effeciency", "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": "Low", "id": "4" }, "issuetype": { "id": "7", "description": "gh.issue.story.desc", "name": "Story", "subtask": false } } } } ], "assignee": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-10-01T10:27:50.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": "h2. Problem\r\n\r\nWhen an array of PickerColumns is given to Ti.UI.Picker.add() on Android, the app crashes. The same code given in the test case works properly on iOS and Mobileweb. Also to note, if the PickerColumns are given individually to the add() call, it works as expected. It is only when an array of PickerColumns is given to Picker.add() that the crash occurs.\r\n\r\nh2. test case\r\n\r\n{code:javascript}\r\nvar win = Ti.UI.createWindow({\r\n\tbackgroundColor: '#fff'\r\n});\r\nvar picker = Ti.UI.createPicker({\r\n\ttop: 0,\r\n\tuseSpinner: true\r\n});\r\nvar cols = [];\r\nfor (var c = 0; c < 2; c++) {\r\n\tvar col = Ti.UI.createPickerColumn();\r\n\tfor (var i = 0; i < 5; i++) {\r\n\t\tcol.addRow(Ti.UI.createPickerRow({\r\n\t\t\ttitle: 'row ' + i\t\r\n\t\t}));\r\n\t}\r\n\tcols.push(col);\r\n}\r\npicker.add(cols);\r\nwin.add(picker);\r\nwin.open();\r\n\r\n{code} \r\n\r\nh2. adb logcat \r\n\r\n{code}\r\nE/AndroidRuntime( 9194): FATAL EXCEPTION: main\r\nE/AndroidRuntime( 9194): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appc.mcPicker/com.appc.mcPicker.McpickerActivity}: java.lang.NullPointerException\r\nE/AndroidRuntime( 9194): \tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)\r\nE/AndroidRuntime( 9194): \tat android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)\r\nE/AndroidRuntime( 9194): \tat android.app.ActivityThread.access$600(ActivityThread.java:123)\r\nE/AndroidRuntime( 9194): \tat android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)\r\nE/AndroidRuntime( 9194): \tat android.os.Handler.dispatchMessage(Handler.java:99)\r\nE/AndroidRuntime( 9194): \tat android.os.Looper.loop(Looper.java:137)\r\nE/AndroidRuntime( 9194): \tat android.app.ActivityThread.main(ActivityThread.java:4424)\r\nE/AndroidRuntime( 9194): \tat java.lang.reflect.Method.invokeNative(Native Method)\r\nE/AndroidRuntime( 9194): \tat java.lang.reflect.Method.invoke(Method.java:511)\r\nE/AndroidRuntime( 9194): \tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)\r\nE/AndroidRuntime( 9194): \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)\r\nE/AndroidRuntime( 9194): \tat dalvik.system.NativeStart.main(Native Method)\r\nE/AndroidRuntime( 9194): Caused by: java.lang.NullPointerException\r\nE/AndroidRuntime( 9194): \tat java.util.Arrays$ArrayList.(Arrays.java:38)\r\nE/AndroidRuntime( 9194): \tat java.util.Arrays.asList(Arrays.java:154)\r\nE/AndroidRuntime( 9194): \tat ti.modules.titanium.ui.widget.picker.TextWheelAdapter.(TextWheelAdapter.java:28)\r\nE/AndroidRuntime( 9194): \tat ti.modules.titanium.ui.widget.picker.TiUISpinnerColumn.refreshNativeView(TiUISpinnerColumn.java:180)\r\nE/AndroidRuntime( 9194): \tat ti.modules.titanium.ui.widget.picker.TiUISpinnerColumn.(TiUISpinnerColumn.java:38)\r\nE/AndroidRuntime( 9194): \tat ti.modules.titanium.ui.PickerColumnProxy.createView(PickerColumnProxy.java:218)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:423)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:411)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:446)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:431)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:411)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.realizeViews(TiViewProxy.java:446)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:431)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.getOrCreateView(TiViewProxy.java:411)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleAdd(TiViewProxy.java:525)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:204)\r\nE/AndroidRuntime( 9194): \tat android.os.Handler.dispatchMessage(Handler.java:95)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.kroll.common.TiMessenger.dispatchMessage(TiMessenger.java:364)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.kroll.common.TiMessenger.dispatchPendingMessages(TiMessenger.java:349)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.kroll.common.TiMessenger$2.getResult(TiMessenger.java:234)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.kroll.common.TiMessenger.sendBlockingMessage(TiMessenger.java:261)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.kroll.common.TiMessenger.sendBlockingRuntimeMessage(TiMessenger.java:186)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.kroll.KrollProxy.fireSyncEvent(KrollProxy.java:638)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.TiBaseActivity.onCreate(TiBaseActivity.java:435)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.TiLaunchActivity.onCreate(TiLaunchActivity.java:145)\r\nE/AndroidRuntime( 9194): \tat org.appcelerator.titanium.TiRootActivity.onCreate(TiRootActivity.java:97)\r\nE/AndroidRuntime( 9194): \tat android.app.Activity.performCreate(Activity.java:4465)\r\nE/AndroidRuntime( 9194): \tat android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)\r\nE/AndroidRuntime( 9194): \tat android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)\r\nE/AndroidRuntime( 9194): \t... 11 more\r\nW/ActivityManager(29799): Force finishing activity com.appc.mcPicker/.McpickerActivity\r\n{code}", "attachment": [], "flagged": false, "summary": "Android: Ti.UI.Picker crashes when PickerColumns passed to add() via array", "creator": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "TiSDK 2.2 master\r\nTiStudio 2.1.3.201208231643\r\nGalaxy Nexus 4.0.4", "comment": { "comments": [ { "id": "220139", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR https://github.com/appcelerator/titanium_mobile/pull/3003", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-09-21T10:22:12.000+0000", "updated": "2012-09-21T10:22:12.000+0000" }, { "id": "224896", "author": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "body": "No app crash.Environment used for verification -\r\nTitanium SDK:3.0.0.v20121024144610\r\nTitanium  Studio:3.0.0.201210220122", "updateAuthor": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-10-25T07:13:44.000+0000", "updated": "2012-10-25T07:13:44.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }