{ "id": "85466", "key": "TIMOB-7399", "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": "12095", "description": "", "name": "Sprint 2012-03", "archived": true, "released": true, "releaseDate": "2012-02-12" }, { "id": "12593", "name": "Release 2.0.0", "archived": false, "released": true, "releaseDate": "2012-03-30" }, { "id": "13070", "description": "Release 1.8 Service Pack 2", "name": "Release 1.8.2", "archived": true, "released": true, "releaseDate": "2012-02-29" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2012-02-14T23:29:02.000+0000", "created": "2012-01-25T13:03:21.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "qe-and012312" ], "versions": [ { "id": "12677", "description": "Release 1.8 Service Pack 1", "name": "Release 1.8.1", "archived": true, "released": true, "releaseDate": "2012-01-31" } ], "issuelinks": [ { "id": "14782", "type": { "id": "10001", "name": "Cloners", "inward": "is cloned into", "outward": "is cloned from" }, "outwardIssue": { "id": "80243", "key": "TIMOB-5279", "fields": { "summary": "iOS: Repeatedly Scrolling a Table View Leaks Memory", "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 } } } }, { "id": "15117", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "83232", "key": "TIMOB-6380", "fields": { "summary": "Android: tableView - v8/rhino - Scrolling large table results in out-of-memory error on tablets", "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": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2012-02-14T23:29:02.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": "h1. Problem\r\nWhen you scroll through a table view with image, memory runs low and application eventually hangs. \r\n\r\nh2. Sample Code\r\nConsider the following code, and download the attached iproducts.png to your resources directory:\r\n{code:title=app.js}\r\nvar win = Ti.UI.createWindow({ backgroundColor: '#fff' });\r\n\r\nvar rows = [];\r\nfor (var i = 0; i < 200; i++) {\r\n var row = Ti.UI.createTableViewRow();\r\n row.add(Ti.UI.createLabel({ text: 'Row ' + i, left: 70 }));\r\n row.add(Ti.UI.createImageView({ image: 'iproducts.png', left: 10 }));\r\n rows.push(row);\r\n row = null;\r\n}\r\nwin.add(Ti.UI.createTableView({\r\n data: rows,\r\n bottom: 50\r\n}));\r\n\r\nvar freeMemory = Ti.UI.createLabel({\r\n height: 50, bottom: 0\r\n});\r\nsetInterval(function() {\r\n freeMemory.text = 'Free Memory: ' + Ti.Platform.availableMemory;\r\n}, 1000);\r\nwin.add(freeMemory);\r\n\r\nwin.open({\r\n modal: true,\r\n modalStyle: Ti.UI.iPhone.MODAL_PRESENTATION_FORMSHEET\r\n});\r\n{code}\r\n\r\nh2. Steps To Reproduce\r\n\r\n1. Drop the above in an app.js\r\n2. Download the attached iproducts.png to your Resources directory\r\n3. Run the app on device\r\n4. Slowly scroll through the whole table, making sure all of the rows are loaded.\r\n\r\nActual Result:\r\nApplication hangs by row 7\r\n\r\nExpected Result:\r\nTo load the table without hanging\r\n\r\nNote: Also occur in 1.8.0.1", "attachment": [ { "id": "25386", "filename": "droid 2.2.3 1.8.1 v8.txt", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-27T13:49:12.000+0000", "size": 431929, "mimeType": "text/plain" }, { "id": "25328", "filename": "iproducts.png", "author": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-25T13:08:30.000+0000", "size": 2709, "mimeType": "image/png" } ], "flagged": false, "summary": "Android: TableView: Scrolling through a Table View with image causes application to run out of memory and hang", "creator": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "subtasks": [], "reporter": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "SDK: 1.8.1.v20120124200134\r\nDroid 3 (2.3.4)\r\n", "comment": { "comments": [ { "id": "180931", "author": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Added log for Droid 2.2.3 1.8.1.v20120127113107 V8 test.", "updateAuthor": { "name": "dhyde", "key": "dhyde", "displayName": "Dustin Hyde", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-27T13:48:55.000+0000", "updated": "2012-01-27T13:48:55.000+0000" }, { "id": "182230", "author": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Can this be re-tested against master. We landed a fix to address proxies not getting cleaned up.\r\nAlso I notice in the sample code when you create the row, you don't set a className. On Android if you\r\ndon't give the rows this property it can consume lots of memory especially when the row count is large.", "updateAuthor": { "name": "joshroesslein", "key": "joshroesslein", "displayName": "Josh Roesslein", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-02-07T10:52:45.000+0000", "updated": "2012-02-07T10:52:45.000+0000" }, { "id": "182387", "author": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Brief update:\r\n\r\nTested three scenarios with 1.9.0.v20120207171634 (r660b5077) with Nexus S OS 2.3.6\r\n1. Code as is - issue still exists\r\n2. Code with Josh's recommendation of adding a className to each table view row - issue doesn't exist on v8\r\n3. Same as #2 but with rhino - app still hangs at times but doesn't cause low/run out of memory issues ", "updateAuthor": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-02-08T10:33:23.000+0000", "updated": "2012-02-08T10:33:23.000+0000" }, { "id": "182400", "author": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "body": "Need more information on #3. When the app hangs does it hang forever or print a stack trace? How long does the app have to be used before the hang?", "updateAuthor": { "name": "opiecyrus", "key": "opiecyrus", "displayName": "Opie Cyrus", "active": true, "timeZone": "America/Chicago" }, "created": "2012-02-08T11:55:29.000+0000", "updated": "2012-02-08T11:55:29.000+0000" }, { "id": "182473", "author": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This issue has been resolved as part of another memory leak fix TIMOB-7409.", "updateAuthor": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-02-08T15:33:08.000+0000", "updated": "2012-02-08T15:33:08.000+0000" }, { "id": "182784", "author": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing issue\r\n\r\nTested with Ti Studio build 1.0.8.201201262211\r\nTi Mob SDK 1.9.0.v20120209183134\r\nOSX Lion 10.7.3\r\nNexus S OS 2.3.6\r\n\r\nVerified that adding a class name to table view row creation causes this issue to not exist", "updateAuthor": { "name": "mpettiford", "key": "mpettiford", "displayName": "Michael Pettiford", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-02-10T12:51:26.000+0000", "updated": "2012-02-10T12:51:26.000+0000" } ], "maxResults": 7, "total": 7, "startAt": 0 } } }