{ "id": "65975", "key": "TIMOB-4282", "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": [], "resolution": { "id": "7", "description": "", "name": "Invalid" }, "resolutiondate": "2017-05-02T20:34:47.000+0000", "created": "2011-06-01T15:13:24.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "KitchenSink" ], "versions": [ { "id": "11244", "name": "Release 1.7.0", "archived": true, "released": true, "releaseDate": "2011-06-13" } ], "issuelinks": [], "assignee": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-05-02T20:34:47.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": "Description:\nWhile testing KitchenSink, I experienced a crash that seemed to relate to a table append that was out of sync with the contents of the table.\n\nI could not reproduce this failure in 5 attempts.\n\nPlease see the log and console output attached.\n\nSteps to reproduce:\n1) Unknown, but occurred about 2 hours into testing.\n\nResult:\nCrash \n\nExpected Result:\nNo crash\n\nNotes:\nCould not reproduce on 1.6.2 (5 attempts) or 1.7.0 (5 attempts)", "attachment": [], "flagged": false, "summary": "iOS: KitchenSink unreproducible crash while running Base UI>Views>Table Views>Table Empty AppendRow", "creator": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Verizon iPhone 4 (4.2.8) , Titanium Studio, build: 1.0.0.201105271818, Titanium SDK version: 1.7.X r5aa431bc\n", "comment": { "comments": [ { "id": "160361", "author": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "body": "h3.Problem\r\nA customer has encountered a similar issue. After creating a Table View and opening it a certain number of times, appending rows crashes the app.\r\n\r\nh3.Environment\r\n{noformat}\r\nProduct: Mobile\r\nTitanium SDK: Mobile 1.7.1\r\nPlatform OS: iOS\r\nPlatform OS Version: 4.2 \r\n{noformat}\r\n\r\nh3.Console Log\r\n[INFO] Application has exited from Simulator\r\n\r\nh3.Reproduction\r\nTough to reliably reproduce, although happens most often after a Table view has been added to a window instantiated (url to a JavaScript file).\r\n\r\nh3.Repro sequence\r\n{code:title=app.js}\r\n// this sets the background color of the master UIView (when there are no windows/tab groups on it)\r\nTitanium.UI.setBackgroundColor('#000');\r\n\r\n// create tab group\r\nvar tabGroup = Titanium.UI.createTabGroup();\r\n\r\n//\r\n// create base UI tab and root window\r\n//\r\nvar win1 = Titanium.UI.createWindow({\r\n title: 'Tab 1',\r\n backgroundColor: '#fff',\r\n url: 'home.js'\r\n});\r\nvar tab1 = Titanium.UI.createTab({\r\n icon: 'KS_nav_views.png',\r\n title: 'Tab 1',\r\n window: win1\r\n});\r\n\r\nvar label1 = Titanium.UI.createLabel({\r\n color: '#999',\r\n text: 'I am Window 1',\r\n font: {\r\n fontSize: 20,\r\n fontFamily: 'Helvetica Neue'\r\n },\r\n textAlign: 'center',\r\n width: 'auto'\r\n});\r\n\r\nwin1.add(label1);\r\n\r\n// create controls tab and root window\r\n//\r\nvar win2 = Titanium.UI.createWindow({\r\n title: 'Tab 2',\r\n backgroundColor: '#fff'\r\n});\r\nvar tab2 = Titanium.UI.createTab({\r\n icon: 'KS_nav_ui.png',\r\n title: 'Tab 2',\r\n window: win2\r\n});\r\n\r\nvar label2 = Titanium.UI.createLabel({\r\n color: '#999',\r\n text: 'I am Window 2',\r\n font: {\r\n fontSize: 20,\r\n fontFamily: 'Helvetica Neue'\r\n },\r\n textAlign: 'center',\r\n width: 'auto'\r\n});\r\n\r\nwin2.add(label2);\r\n\r\n//\r\n// add tabs\r\n//\r\ntabGroup.addTab(tab1);\r\ntabGroup.addTab(tab2);\r\n\r\n// open tab group\r\ntabGroup.open();\r\n{code}\r\n\r\n{code:title=home.js}\r\nvar viewOpen = Ti.UI.createView({\r\n backgroundColor: '#009900',\r\n width: 100,\r\n height: 40,\r\n left: 20,\r\n top: 30\r\n});\r\n\r\nvar viewOpen2 = Ti.UI.createView({\r\n backgroundColor: '#000099',\r\n width: 100,\r\n height: 40,\r\n right: 20,\r\n top: 30\r\n});\r\n\r\nTi.UI.currentWindow.add(viewOpen);\r\nTi.UI.currentWindow.add(viewOpen2);\r\n\r\nvar win3 = Ti.UI.createWindow({\r\n title: 'testing'\r\n});\r\nvar win4 = Ti.UI.createWindow({\r\n title: 'testing2',\r\n url: 'testing2.js'\r\n});\r\n\r\nviewOpen.addEventListener('click', function() {\r\n var table = createTable();\r\n win3.add(table);\r\n Ti.UI.currentTab.open(win3, {\r\n animated: true\r\n });\r\n});\r\n\r\nviewOpen2.addEventListener('click', function() {\r\n Ti.UI.currentTab.open(win4, {\r\n animated: true\r\n });\r\n});\r\n\r\n//Actually this function doesn't crash the app\r\nfunction createTable() {\r\n var title;\r\n var row;\r\n var data = [];\r\n var table = Ti.UI.createTableView();\r\n for (i = 0; i < 100; i++) {\r\n title = 'I am appended row ' + i.toString();\r\n row = Ti.UI.createTableViewRow({\r\n title: title\r\n });\r\n table.appendRow(row);\r\n }\r\n return table;\r\n}\r\n{code}\r\n\r\n{code:title=testing2.js}\r\nvar win = Ti.UI.currentWindow;\r\nvar table = createTable4();\r\nwin.add(table);\r\n\r\nwin.addEventListener('close', function() {\r\n//If table is not removed will throw a:\r\n//[DEBUG] Session did end with error (null)\r\n//[INFO] Application has exited from Simulator\r\n win.remove(table);\r\n});\r\n\r\n\r\n// Up to 25 attempts will crash...\r\nfunction createTable() {\r\n var title;\r\n var row;\r\n var data = [];\r\n for (i = 0; i < 100; i++) {\r\n title = 'I am row ' + i.toString();\r\n row = Ti.UI.createTableViewRow({\r\n title: title\r\n });\r\n data[i] = row;\r\n }\r\n var table = Ti.UI.createTableView({\r\n data: data\r\n });\r\n return table;\r\n}\r\n\r\n//Up to 25 attempts will crash...\r\nfunction createTable2() {\r\n var title;\r\n var row;\r\n var data = [];\r\n var i;\r\n var table = Ti.UI.createTableView();\r\n for (i = 0; i < 50; i++) {\r\n \r\n title = 'I am row ' + i.toString();\r\n row = Ti.UI.createTableViewRow({\r\n title: title\r\n });\r\n table.appendRow(row);\r\n \r\n //Append Row objects to table makes no difference \r\n //table.appendRow(Titanium.UI.createTableViewRow({\r\n // title:'I am row ' + i,\r\n //}));\r\n \r\n }//for\r\n return table;\r\n}\r\n\r\n\r\n//Up to 15 attempts will crash...\r\nfunction createTable3() {\r\n var title;\r\n var row;\r\n var data = [];\r\n var table = Ti.UI.createTableView();\r\n for (i = 0; i < 100; i++) {\r\n title = 'I am row ' + i.toString();\r\n row = Ti.UI.createTableViewRow({\r\n title: title\r\n });\r\n data[i] = row;\r\n }\r\n table.setData(data);\r\n return table;\r\n}\r\n\r\n//After 50 attempts didn't crash the app calling it from home.js\r\n//Up to 2 attempts crashed the app...\r\nfunction createTable4() {\r\n var title;\r\n var row;\r\n var data = [];\r\n var table = Ti.UI.createTableView();\r\n for (i = 0; i < 100; i++) {\r\n title = 'I am appended row ' + i.toString();\r\n row = Ti.UI.createTableViewRow({\r\n title: title\r\n });\r\n table.appendRow(row);\r\n }\r\n return table;\r\n}\r\n{code}\r\n\r\nh3.Associated HD ticket\r\nA PRO customer relies on this", "updateAuthor": { "name": "egomez", "key": "egomez", "displayName": "Eduardo Gomez", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-07-22T14:54:33.000+0000", "updated": "2011-07-22T14:54:33.000+0000" }, { "id": "418768", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Resolving ticket as Invalid as there is now a new version of Kitchen Sink available and we no longer support the version which relates to this ticket.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-05-02T20:34:47.000+0000", "updated": "2017-05-02T20:34:47.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }