{ "id": "129908", "key": "TIMOB-16906", "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": "16270", "description": "2014 Sprint 10", "name": "2014 Sprint 10", "archived": true, "released": true, "releaseDate": "2014-05-22" }, { "id": "16271", "description": "2014 Sprint 10 SDK", "name": "2014 Sprint 10 SDK", "archived": true, "released": true, "releaseDate": "2014-05-22" }, { "id": "15422", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2014-05-12T21:16:08.000+0000", "created": "2014-05-02T17:41:46.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "merge-3.2.4", "module_scrollableview", "qe-3.2.3", "qe-3.3.0", "qe-closed-3.3.0", "qe-testadded" ], "versions": [ { "id": "15971", "description": "Release 3.2.3", "name": "Release 3.2.3", "archived": false, "released": true, "releaseDate": "2014-04-30" } ], "issuelinks": [ { "id": "37253", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "114386", "key": "TIMOB-13864", "fields": { "summary": "Android: Maps v2 crashes inside a tab", "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": "Critical", "id": "1" }, "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": "2014-05-13T18:17:57.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": "h5. This is a regression. It works as expected with 3.2.2.GA\r\n\r\nh5.Description:\r\n1. Create an classic app & use the code below in the app.js.\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\nbackgroundColor: 'white',\r\ntitle: \"ScrollableView Test\"\r\n});\r\n\r\nvar sav = Ti.UI.createScrollableView();\r\n\r\nwin.add(sav);\r\n\r\nwin.open();\r\n{code}\r\n\r\n3. Build that app for device/emulator.\r\n\r\nh5.Actual Result:\r\n1. The app crashes & we get the following logs in console:\r\n{code}\r\n[ERROR] : TiApplication: (main) [335,335] Sending event: exception on thread: main msg:java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0; Titanium 3.2.3,2014/04/22 10:17,b958a70\r\n[ERROR] : TiApplication: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0\r\n[ERROR] : TiApplication: \tat java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)\r\n[ERROR] : TiApplication: \tat java.util.ArrayList.get(ArrayList.java:304)\r\n[ERROR] : TiApplication: \tat ti.modules.titanium.ui.widget.TiUIScrollableView$2.onPageScrolled(TiUIScrollableView.java:192)\r\n[ERROR] : TiApplication: \tat android.support.v4.view.ViewPager.onPageScrolled(ViewPager.java:1712)\r\n[ERROR] : TiApplication: \tat android.support.v4.view.ViewPager.pageScrolled(ViewPager.java:1633)\r\n[ERROR] : TiApplication: \tat android.support.v4.view.ViewPager.scrollToItem(ViewPager.java:581)\r\n[ERROR] : TiApplication: \tat android.support.v4.view.ViewPager.onLayout(ViewPager.java:1600)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:14482)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4469)\r\n[ERROR] : TiApplication: \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:14482)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4469)\r\n[ERROR] : TiApplication: \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:14482)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4469)\r\n[ERROR] : TiApplication: \tat org.appcelerator.titanium.view.TiCompositeLayout.onLayout(TiCompositeLayout.java:578)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:14482)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4469)\r\n[ERROR] : TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:448)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:14482)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4469)\r\n[ERROR] : TiApplication: \tat android.widget.LinearLayout.setChildFrame(LinearLayout.java:1669)\r\n[ERROR] : TiApplication: \tat android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527)\r\n[ERROR] : TiApplication: \tat android.widget.LinearLayout.onLayout(LinearLayout.java:1440)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:14482)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4469)\r\n[ERROR] : TiApplication: \tat android.widget.FrameLayout.onLayout(FrameLayout.java:448)\r\n[ERROR] : TiApplication: \tat android.view.View.layout(View.java:14482)\r\n[ERROR] : TiApplication: \tat android.view.ViewGroup.layout(ViewGroup.java:4469)\r\n[ERROR] : TiApplication: \tat android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2147)\r\n[ERROR] : TiApplication: \tat android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1966)\r\n[ERROR] : TiApplication: \tat android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1179)\r\n[ERROR] : TiApplication: \tat android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4859)\r\n[ERROR] : TiApplication: \tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)\r\n[ERROR] : TiApplication: \tat android.view.Choreographer.doCallbacks(Choreographer.java:562)\r\n[ERROR] : TiApplication: \tat android.view.Choreographer.doFrame(Choreographer.java:532)\r\n[ERROR] : TiApplication: \tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)\r\n[ERROR] : TiApplication: \tat android.os.Handler.handleCallback(Handler.java:725)\r\n[ERROR] : TiApplication: \tat android.os.Handler.dispatchMessage(Handler.java:92)\r\n[ERROR] : TiApplication: \tat android.os.Looper.loop(Looper.java:137)\r\n[ERROR] : TiApplication: \tat android.app.ActivityThread.main(ActivityThread.java:5328)\r\n[ERROR] : TiApplication: \tat java.lang.reflect.Method.invokeNative(Native Method)\r\n[ERROR] : TiApplication: \tat java.lang.reflect.Method.invoke(Method.java:511)\r\n[ERROR] : TiApplication: \tat\r\n[ERROR] : TiApplication: \tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)\r\n[ERROR] : TiApplication: \tat dalvik.system.NativeStart.main(Native Method)\r\n{code}\r\n\r\nh5. Expected Results:\r\n1. The app should not crash when an empty scrollable view is added.", "attachment": [], "flagged": false, "summary": "Android : An empty scrollableview causes the app to crash", "creator": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Environment:\r\nAppc Studio : 3.2.3.201404181520\r\nTi SDK : 3.2.3.GA\r\nMac OSX : 10.8.5\r\nAlloy : 1.3.1\t\r\nCLI - 3.2.3\r\nSamsung Galaxy S4 running android 4.2.2", "closedSprints": [ { "id": 50, "state": "closed", "name": "2014 Sprint 09 Tooling", "startDate": "2014-04-28T15:43:24.381Z", "endDate": "2014-05-10T03:44:00.000Z", "completeDate": "2014-05-12T13:36:16.254Z", "originBoardId": 113 }, { "id": 104, "state": "closed", "name": "2014 Sprint 10 SDK", "startDate": "2014-05-12T16:00:00.000Z", "endDate": "2014-05-24T00:00:00.000Z", "completeDate": "2014-05-27T18:11:47.424Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "303320", "author": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "body": "Originally experienced by; Stephen Hickey in the Q&A\r\n\r\nhttp://developer.appcelerator.com/question/173788", "updateAuthor": { "name": "core13", "key": "core13", "displayName": "Malcolm Hollingsworth", "active": true, "timeZone": "Europe/London" }, "created": "2014-05-02T18:14:27.000+0000", "updated": "2014-05-02T18:14:27.000+0000" }, { "id": "303363", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This is working for 3.2.2.GA, and start failing in 3.2.3.GA. This seems to be a side effect of upgrading our v4 library in 3.2.3.GA. The scrollableView code in v4 is triggering onPageScrolled during the layout pass. I will add a safety check in SDK", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-05-02T22:21:36.000+0000", "updated": "2014-05-02T22:21:36.000+0000" }, { "id": "303374", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks. let's merge this back to 3.2.X CI for affected users", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-05-02T22:56:02.000+0000", "updated": "2014-05-02T22:56:02.000+0000" }, { "id": "303548", "author": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "body": "master PR: https://github.com/appcelerator/titanium_mobile/pull/5659\r\n3.2.X PR: https://github.com/appcelerator/titanium_mobile/pull/5660", "updateAuthor": { "name": "hpham", "key": "hpham", "displayName": "Hieu Pham", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-05-05T20:41:52.000+0000", "updated": "2014-05-05T22:31:49.000+0000" }, { "id": "304071", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PRs merged", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2014-05-08T18:33:50.000+0000", "updated": "2014-05-08T18:33:50.000+0000" }, { "id": "304199", "author": { "name": "nmittal", "key": "nmittal", "displayName": "Neha Mittal", "active": true, "timeZone": "Asia/Kolkata" }, "body": "I am able to reproduce the mentioned issue with studio: 3.3.0.201405080918 and SDK: 3.3.0.v20140508135704 with below environment:\r\n\r\nAppc Studio: 3.3.0.201405080918\r\nSDK build: 3.3.0.v20140508135704\r\nacs: 1.0.14\r\nnpm: 1.3.2\r\nalloy: 1.4.0-dev\r\nCLI: titanium-3.3.0-dev\r\ntitanium-code-processor:1.1.1\r\nXcode: 5.1.1\r\nOsx: Mavericks(10.9.2)\r\nDevice: Galaxy Nexus (4.1.1)\r\n\r\nHowever, if I am verifying the same using studio: 3.2.3.201404290818 and SDK: 3.3.0.v20140508135704, then it is working fine and app does not get crash. Hence reopening the issue.", "updateAuthor": { "name": "nmittal", "key": "nmittal", "displayName": "Neha Mittal", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2014-05-09T11:37:37.000+0000", "updated": "2014-05-09T11:37:37.000+0000" }, { "id": "304233", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tried to reproduce after [~nmittal] reopened the issue. I have the following observations:\r\n\r\nh5. With studio 3.3.0.201405080918 & sdk 3.3.0.v20140508223312:\r\nCould not reproduce app did not crash\r\n\r\nh5. With studio 3.2.3.201404181520(current 3.2.3 GA studio) & sdk 3.3.0.v20140508223312:\r\nCould not reproduce app did not crash\r\n\r\nh5. With studio 3.3.0.201405080918 & sdk 3.2.4.v20140508113321:\r\nCould not reproduce app did not crash\r\n\r\nEnvironment:\r\nAppc Studio : 3.3.0.201405080918 , 3.2.3.201404181520\r\nTi SDK : 3.3.0.v20140508223312 , 3.2.4.v20140508113321\r\nMac OSX : 10.8.5 , mavericks (10.9.2)\r\nAlloy : 1.4.0-dev\r\nCLI - 3.3.0-dev\r\nSamsung Galaxy S4 running android 4.2.2\r\nNexus 5 - android 4.4.2", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-05-09T17:39:10.000+0000", "updated": "2014-05-09T17:39:10.000+0000" }, { "id": "304534", "author": { "name": "nmittal", "key": "nmittal", "displayName": "Neha Mittal", "active": true, "timeZone": "Asia/Kolkata" }, "body": "Verified fix using below environment:\r\n\r\nAppc Studio: 3.3.0.201405121247\r\nSDK build: 3.3.0.v20140512162513\r\nacs: 1.0.14\r\nnpm: 1.3.2\r\nalloy: 1.4.0-dev\r\nCLI: titanium-3.3.0-dev\r\ntitanium-code-processor:1.1.1\r\nXcode: 5.1.1\r\nOsx: Mavericks(10.9.2)\r\nDevice: Nexus 5 (4.4.2)\r\n\r\nAn empty scrollableview does not get crash. Hence closing the issue.", "updateAuthor": { "name": "nmittal", "key": "nmittal", "displayName": "Neha Mittal", "active": true, "timeZone": "Asia/Kolkata" }, "created": "2014-05-13T06:54:32.000+0000", "updated": "2014-05-13T06:54:32.000+0000" } ], "maxResults": 10, "total": 10, "startAt": 0 } } }