{ "id": "142516", "key": "TIMOB-18345", "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": "16704", "description": "Release 3.5.0", "name": "Release 3.5.0", "archived": false, "released": true, "releaseDate": "2015-01-13" }, { "id": "16593", "description": "Release 4.0.0", "name": "Release 4.0.0", "archived": false, "released": true, "releaseDate": "2015-05-21" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-01-08T22:29:27.000+0000", "created": "2015-01-08T18:28:32.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "ListView", "ios", "popover", "qe-3.5.0", "searchBar" ], "versions": [ { "id": "16676", "description": "Release 3.4.1", "name": "Release 3.4.1", "archived": false, "released": true, "releaseDate": "2014-11-14" }, { "id": "16704", "description": "Release 3.5.0", "name": "Release 3.5.0", "archived": false, "released": true, "releaseDate": "2015-01-13" } ], "issuelinks": [ { "id": "44590", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "141857", "key": "TIMOB-18260", "fields": { "summary": "iOS: Removing a ListView while SearchBar has focus results in crash", "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 } } } } ], "assignee": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2015-01-08T23:24:10.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": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "App crashes when filtering results in a ListView, that is in a popover, if the number of items filtered is less then needed to fill the few height of the listview.\r\nThis is not a regression as it also occurs with 3.4.1.GA.\r\n\r\n*Steps to reproduce issue*:\r\n1. Tap the button to open the popover\r\n2. Tap the searchbar and enter \"odd\"\r\n3. Hide the soft keyboard using the dedicated button on the soft keyboard\r\n4. App crashes\r\n\r\n*Expected Results*:\r\nable to search or dismiss keyboard without crash\r\n\r\n*Actual Results*:\r\nApp crashes with below error\r\n\r\n*Notes*:\r\nI've found that it only happens if the number of items filtered is less then needed to fill the few height of the listview. If you increase the number of items to 50 you won't be able to replicate.\r\n\r\n{code}\r\nvar w = Ti.UI.createWindow({\r\n backgroundColor: 'white'\r\n});\r\n \r\nvar b = Ti.UI.createButton({\r\n title: 'Click Me'\r\n});\r\n \r\nb.addEventListener('click', function() {\r\n \r\n var cw = Ti.UI.createWindow({\r\n width: 300\r\n });\r\n \r\n var items = [];\r\n \r\n for (var i = 1, oe; i <= 20; i++) {\r\n oe = (i % 2 === 0) ? 'even' : 'odd';\r\n items.push({\r\n properties: {\r\n title: 'Row #' + i + ' (' + oe + ')',\r\n searchableText: oe\r\n }\r\n });\r\n }\r\n \r\n var lv = Ti.UI.createListView({\r\n searchView: Ti.UI.createSearchBar(),\r\n sections: [Ti.UI.createListSection({\r\n items: items\r\n })]\r\n });\r\n \r\n cw.add(lv);\r\n \r\n var p = Ti.UI.iPad.createPopover({\r\n contentView: cw\r\n });\r\n \r\n p.show({\r\n view: b\r\n });\r\n});\r\n \r\nw.add(b);\r\nw.open();\r\n{code}\r\n\r\nError thrown is a Range Exception; beyond bounds:\r\n{code}\r\n[ERROR] : The application has crashed with an uncaught exception 'NSRangeException'.\r\n[ERROR] : Reason:\r\n[ERROR] : *** -[__NSArrayM objectAtIndex:]: index 16 beyond bounds [0 .. 9]\r\n[ERROR] : Stack trace:\r\n[ERROR] : \r\n[ERROR] : 0 CoreFoundation 0x0000000183225e48 + 132\r\n[ERROR] : 1 libobjc.A.dylib 0x0000000193ce40e4 objc_exception_throw + 60\r\n[ERROR] : 2 CoreFoundation 0x000000018310b77c + 0\r\n[ERROR] : 3 00 Classic Test 0x0000000100160fa4 00 Classic Test + 1347492\r\n[ERROR] : 4 00 Classic Test 0x00000001001675d4 00 Classic Test + 1373652\r\n[ERROR] : 5 UIKit 0x0000000187ccb14c + 544\r\n[ERROR] : 6 UIKit 0x0000000187cbfd00 + 2360\r\n[ERROR] : 7 UIKit 0x0000000187aa7888 + 224\r\n[ERROR] : 8 UIKit 0x0000000187aa7758 + 1020\r\n[ERROR] : 9 UIKit 0x0000000187aa696c + 276\r\n[ERROR] : 10 UIKit 0x00000001879eacd4 + 600\r\n[ERROR] : 11 UIKit 0x00000001880c88e8 + 56\r\n[ERROR] : 12 CoreFoundation 0x000000018311cff0 + 132\r\n[ERROR] : 13 CoreFoundation 0x000000018311ce94 + 248\r\n[ERROR] : 14 UIKit 0x00000001879da478 + 132\r\n[ERROR] : 15 UIKit 0x00000001879ce07c + 476\r\n[ERROR] : 16 00 Classic Test 0x0000000100075504 00 Classic Test + 382212\r\n[ERROR] : 17 UIKit 0x00000001879eacd4 + 600\r\n[ERROR] : 18 CoreFoundation 0x000000018311cff0 + 132\r\n[ERROR] : 19 CoreFoundation 0x000000018311ce94 + 248\r\n[ERROR] : 20 UIKit 0x00000001879da478 + 132\r\n[ERROR] : 21 UIKit 0x00000001879ce07c + 476\r\n[ERROR] : 22 00 Classic Test 0x0000000100075504 00 Classic Test + 382212\r\n[ERROR] : 23 UIKit 0x00000001879eacd4 + 600\r\n[ERROR] : 24 CoreFoundation 0x000000018311cff0 + 132\r\n[ERROR] : 25 CoreFoundation 0x000000018311ce94 + 248\r\n[ERROR] : 26 UIKit 0x00000001879da478 + 132\r\n[ERROR] : 27 UIKit 0x00000001879ce07c + 476\r\n[ERROR] : 28 UIKit 0x00000001879eacd4 + 600\r\n[ERROR] : 29 CoreFoundation 0x000000018311cff0 + 132\r\n[ERROR] : 30 CoreFoundation 0x000000018311ce94 + 248\r\n[ERROR] : 31 UIKit 0x00000001879da478 + 132\r\n[ERROR] : 32 UIKit 0x00000001879ce07c + 476\r\n[ERROR] : 33 UIKit 0x0000000187c2a880 + 152\r\n[ERROR] : 34 UIKit 0x00000001879d1a2c + 572\r\n[ERROR] : 35 QuartzCore 0x0000000187329994 + 168\r\n[ERROR] : 36 QuartzCore 0x0000000187324564 + 320\r\n[ERROR] : 37 UIKit 0x00000001879e5e10 + 160\r\n[ERROR] : 38 UIKit 0x00000001879ce118 + 632\r\n[ERROR] : 39 UIKit 0x0000000187c2ba20 + 684\r\n[ERROR] : 40 UIKit 0x0000000187a09464 + 508\r\n[ERROR] : 41 UIKit 0x0000000187a210b4 + 68\r\n[ERROR] : 42 UIKit 0x000000018810ede8 + 376\r\n[ERROR] : 43 Foundation 0x00000001840e84a8 __NSFireDelayedPerform + 424\r\n[ERROR] : 44 CoreFoundation 0x00000001831ddfd4 + 28\r\n[ERROR] : 45 CoreFoundation 0x00000001831ddc84 + 888\r\n[ERROR] : 46 CoreFoundation 0x00000001831db6d0 + 1372\r\n[ERROR] : 47 CoreFoundation 0x00000001831091f4 CFRunLoopRunSpecific + 396\r\n[ERROR] : 48 GraphicsServices 0x000000018c2735a4 GSEventRunModal + 168\r\n[ERROR] : 49 UIKit 0x0000000187a3a784 UIApplicationMain + 1488\r\n[ERROR] : 50 00 Classic Test 0x000000010001d48c 00 Classic Test + 21644\r\n[ERROR] : 51 libdyld.dylib 0x0000000194352a08 + 4\r\n[ERROR] : *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 16 beyond bounds [0 .. 9]'\r\n[ERROR] : *** First throw call stack:\r\n[ERROR] : (0x183225e48 0x193ce40e4 0x18310b77c 0x100160fa4 0x1001675d4 0x187ccb14c 0x187cbfd00 0x187aa7888 0x187aa7758 0x187aa696c 0x1879eacd4 0x1880c88e8 0x18311cff0 0x18311ce94 0x1879da478 0x1879ce07c 0x100075504 0x1879eacd4 0x18311cff0 0x18311ce94 0x1879da478 0x1879ce07c 0x100075504 0x1879eacd4 0x18311cff0 0x18311ce94 0x1879da478 0x1879ce07c 0x1879eacd4 0x18311cff0 0x18311ce94 0x1879da478 0x1879ce07c 0x187c2a880 0x1879d1a2c 0x187329994 0x187324564 0x1879e5e10 0x1879ce118 0x187c2ba20 0x187a09464 0x187a210b4 0x18810ede8 0x1840e84a8 0x1831ddfd4 0x1831ddc84 0x1831db6d0 0x1831091f4 0x18c2735a4 0x187a3a784 0x10001d48c 0x194352a08)\r\n{code}", "attachment": [], "flagged": false, "summary": "iOS: Crash if all results from search in ListView fit on view", "creator": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "environment": "Titanium SDK 3.5.0.v20150108020917\r\nStudio 3.4.1.201410281743 \r\nXcode 6.1.1\r\n\r\nOn: \r\niPad mini, iOS 8.1", "comment": { "comments": [ { "id": "338393", "author": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "body": "Also reproduces with 3.4.1.GA SDK so it's not a regression in 3.5.0", "updateAuthor": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "created": "2015-01-08T19:13:36.000+0000", "updated": "2015-01-08T19:13:36.000+0000" }, { "id": "338395", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/6551", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-01-08T19:21:39.000+0000", "updated": "2015-01-08T19:21:39.000+0000" }, { "id": "338432", "author": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "body": "3.5.x https://github.com/appcelerator/titanium_mobile/pull/6555", "updateAuthor": { "name": "penrique", "key": "penrique", "displayName": "Pedro Enrique", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-01-08T22:27:40.000+0000", "updated": "2015-01-08T22:27:40.000+0000" }, { "id": "338454", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed, using:\r\n\r\nTitanium SDK 3.5.0.v20150108143317\r\nStudio 3.4.1.201410281743 \r\nXcode 6.1.1\r\n\r\nOn: \r\niPad mini, iOS 8.1\r\niPad Air 2, iOS 8.1\r\n\r\nThe crash is no longer encountered with the sample code, when dismissing the keyboard or searching.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-01-08T23:24:01.000+0000", "updated": "2015-01-08T23:24:01.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }