{ "id": "109923", "key": "TIMOB-13175", "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": "14162", "description": "Release 3.1.0", "name": "Release 3.1.0", "archived": true, "released": true, "releaseDate": "2013-04-16" }, { "id": "15396", "description": "2013 Sprint 07 Core", "name": "2013 Sprint 07 Core", "archived": true, "released": true, "releaseDate": "2013-04-08" }, { "id": "15105", "description": "2013 Sprint 07", "name": "2013 Sprint 07", "archived": true, "released": true, "releaseDate": "2013-04-08" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-03-26T17:32:09.000+0000", "created": "2013-02-20T19:12:31.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "3.0.2", "merge-3.0.3", "qe-testadded", "regression", "setdata", "tableview", "triage" ], "versions": [ { "id": "14164", "description": "Release 3.0.2", "name": "Release 3.0.2", "archived": true, "released": true, "releaseDate": "2013-02-19" } ], "issuelinks": [ { "id": "26978", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "111681", "key": "TIMOB-13206", "fields": { "summary": "searchHidden set to true breaks setData() on tableView (3.0.2 Regression)", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "25973", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "98481", "key": "TIMOB-10280", "fields": { "summary": "iOS: View: Hiding a view do not shifts all the views below, up on the screen.", "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": "mstepanov", "key": "mstepanov", "displayName": "Max Stepanov", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-10-01T08:52:05.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": "I have always used setData() to dynamically change or empty tableViews (even the ones which are not on foreground at any given time).\r\n\r\nTi 3.0.2.GA has broken this completely.\r\n\r\nFirst I always get the following error when I use setData() with no parameters or a empty list:\r\n\r\n{code}\r\n[INFO] : \b\b \b PiniOn/1.1 (3.0.2.GA.5a77fe7)\r\n[INFO] : \b\b \b 2013-02-20 16:06:11.101 PiniOn[29457:c07] *** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-2380.17/UITableView.m:909\r\n[INFO] : \b\b \b 2013-02-20 16:06:14.937 PiniOn[29457:c07] *** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-2380.17/UITableView.m:1070\r\n{code}\r\n\r\n\r\n\r\nSecond, when I issue setData() it doesn't redraw the tableView automatically anymore. It seems I have to redraw the whole screen so the new data can get rendered every time. (like reopening the window which the tableView is on again after a setData).\r\n\r\nLooking at the source changes since 3.0.0 and the Assertion failure on TiUITableView.m it looks like it is something related to sections (which I don't use in this case).\r\n\r\nI have tested this in 2 big projects I'm working on (AirportChatter / PiniOn). All tableViews that uses setData dynamically are breaking with 3.0.2 on both projects.", "attachment": [], "flagged": false, "summary": "iOS: TableView setData() is broken on 3.0.2.GA", "creator": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "subtasks": [], "reporter": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "environment": "iOS 6.1 (Simulator / iPhone 5 / iPhone 4S)\r\nXCode 4.6\r\nTitanium 3.0.2.GA", "comment": { "comments": [ { "id": "239075", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "This may be related too:\n\nhttps://github.com/appcelerator/titanium_mobile/commit/7c476f0695c0855da9b13fde034575bd59f0172e#iphone/Classes/TiUITableView.m\n\nIt seems that the way tableView data was rendered severely changed.", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-02-20T19:17:27.000+0000", "updated": "2013-02-20T19:17:27.000+0000" }, { "id": "239116", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "One suggested workaround is to try:\r\n\r\n{code}\r\nsetData( [ ] ,{animated:true}).\r\n{code}\r\n\r\nThis forces a different code path. Does this help? Also, can you please add a sample piece of code?", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-20T21:12:39.000+0000", "updated": "2013-02-20T21:15:40.000+0000" }, { "id": "239145", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I tried this sample (modified from KS), I am not seeing an issue. Sample code would be super helpful.\n{code}\nvar win = Titanium.UI.createWindow();\n\t\n\tvar data = [\n\t\t{title:'Set uno'},\n\t\t{title:'Set due'},\n\t\t{title:'Set tre'},\n\t\t{title:'Row4'},\n\t\t{title:'Row5'},\n\t\t{title:'Row6'},\n\t\t{title:'Row7'},\n\t\t{title:'Row8'},\n\t\t{title:'Row9'},\n\t\t{title:'Row10'},\n\t\t{title:'Row11'},\n\t\t{title:'Row12'},\n\t\t{title:'Row13'},\n\t\t{title:'Row14'},\n\t\t{title:'Row15'}\t\n\t];\n\tvar tableView = Titanium.UI.createTableView({data:data});\n\n\t\n\tbutton1 = Ti.UI.createButton({\n\t\ttitle: 'Empty',\n\t\twidth:80,\n\t\theight: 40,\n\t\tleft:0,\n\t\tbottom:0\n\t});\n\t\n\tbutton1.addEventListener('click', function(){\n\t\tdata = [];\n\t\ttableView.setData(data);\n\t});\n\t\n\t\tbutton2 = Ti.UI.createButton({\n\t\ttitle: 'Full',\n\t\twidth:80,\n\t\theight: 40,\n\t\tright:0,\n\t\tbottom:0\n\t});\n\t\n\tbutton2.addEventListener('click', function(){\n\t\tdata = [{title:'Set One'},\n\t\t{title:'Set two'},\n\t\t{title:'Set three'},\n\t\t{title:'Row4'},\n\t\t{title:'Row5'},\n\t\t{title:'Row6'},\n\t\t{title:'Row7'},\n\t\t{title:'Row8'},\n\t\t{title:'Row9'},\n\t\t{title:'Row10'},\n\t\t{title:'Row11'},\n\t\t{title:'Row12'},\n\t\t{title:'Row13'},\n\t\t{title:'Row14'},\n\t\t{title:'Row15'}\t];\n\t\ttableView.setData(data);\n\t});\n\t\n\twin.add(tableView);\n\twin.add(button1);\n\twin.add(button2);\n\twin.open();\n{code}\n", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-20T22:36:06.000+0000", "updated": "2013-02-20T22:36:06.000+0000" }, { "id": "239147", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Hi Eric, I don't have a simple test case except from the actual source of two already published apps... I can try to make a TC here. I think that the main reason that you're not experiencing the problem with this testcase is because you're never changing from the main window nor drilling down to another window where the tableview should be...\n\nalso in my apps I use the setData() with Ti.UI.TableViewRow objects not with simple dictionaries containing the title... this may lead to another code path...\n\nanyways... will try to reproduce in a general test case... but I guess other devs will have the same problem soon...", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-02-20T22:45:12.000+0000", "updated": "2013-02-20T22:45:12.000+0000" }, { "id": "239187", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks Ygor, let me try setting the rows and adding some windows.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-21T03:32:11.000+0000", "updated": "2013-02-21T03:32:11.000+0000" }, { "id": "239266", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "@Ygor: great apps! you did everything in Ti? even the graphs in PiniOn?\n\nAbout your assertion problem. I fixed this in my private branch. I cant really make a pull request as i rewrote a lot too much in tableviews :s\nThe problem is that numberOfRowsInSection can be called while modifying sections.\nWhat i did is use a boolean \"settingData\" that i set to true while replacing the tableview section data.\nIf settingData is true then numberOfRowsInSection return 0.\nThat should fix the assertion failure", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2013-02-21T17:13:58.000+0000", "updated": "2013-02-21T17:13:58.000+0000" }, { "id": "239274", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Hi Martin,\n\nYes, both are made 100% with Titanium :)\n\nCool, do you have the intention of promoting this fix up to the main tree? As of now I don't realy need to go to Ti 3.0.2.GA but I'm worried with the future...\n\nI think others with complex TableViews (pre-cached by events for a smoother UI/UX) may suffer with this too...", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-02-21T17:49:00.000+0000", "updated": "2013-02-21T17:49:00.000+0000" }, { "id": "239276", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Ygor and @Martin. If there is a regression we will be addressing it. But we do not yet have a good test case that demonstrates the problem.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-21T18:00:44.000+0000", "updated": "2013-02-21T18:00:44.000+0000" }, { "id": "239458", "author": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tried with another sample code (using tableViewRows too) but was not able to reproduce.\n\n\nAPP.JS file\n\n{code}\n// app.js\n\nvar openWin2 = require('win2')\n\nvar data = [];\n\nfunction createData(e) {\n\n\t\tif (!data){\n\t\t\tdata = []\n\t\t};\n\n\t\tfor (var i = 0; i < 6; i++) {\n\t\t\tvar tvr = Ti.UI.createTableViewRow({\n\t\t\t\ttitle : 'row ' + i,\n\t\t\t\thasChild : true,\n\t\t\t\tcustomProperty : e,\n\t\t\t\tbackgroundColor : 'yellow',\n\t\t\t\tleftImage : 'snoopy.png'\n\t\t\t});\n\n\t\t\ttvr.addEventListener('click', function(e) {\n\t\t\t\ttvr.customProperty.text = 'test_Changed';\n\t\t\t\te.row.backgroundColor = 'blue';\n\t\t\t\te.row.leftImage=null;\n\t\t\t\talert(JSON.stringify('Changed the properties of ' + e.row.title));\n\t\t\t});\n\t\t\tdata.push(tvr);\n\t\t}\n\t\tTi.API.info('data[] array of tableViewRows created: ' + JSON.stringify(tvr));\n\t};\n\nvar win1 = Ti.UI.createWindow({\n\ttitle : 'test',\n\tbackgroundColor : 'gray'\n});\n\nwin1.addEventListener('open', function(){\n\tcreateData('default');\n\tTi.API.info(JSON.stringify(data));\n})\n\nvar button = Ti.UI.createButton({\n\ttitle:'Open Win',\n\ttop:20\n});\nbutton.addEventListener('click', function() {\n\t\n\tvar win2 = new openWin2();\n\twin2.open();\n\n});\n\nwin1.add(button);\n\nwin1.open();\n\n{code}\n\n\n\nWIN2.JS file\n\n{code}\n// win2.js\n\nfunction openWin2() {\n\tvar win2 = Titanium.UI.createWindow({\n\t\tbackgroundColor:'gray',\n\t\ttitle:'win2'\n\t});\n\n\twin2.addEventListener('open', function(){\n\t\talert('click the rows to change TableViewRows values')\n\t});\n\t\n\tvar view = Ti.UI.createView({\n\t\ttop:0,\n\t\tbackgroundColor:'black'\n\t});\n\tvar label = Ti.UI.createLabel({\n\t\ttext:'Back',\n\t\tcolor:'white',\n\t\tfont:{\n\t\t\tfontSize:'20dp'\n\t\t},\n\t\ttop:5\n\t});\n\tview.add(label);\n\t\n\tview.addEventListener('click', function(){\n\t\twin2.close()\n\t});\n\twin2.add(view);\n\n\n\tvar tableView = Titanium.UI.createTableView({\n\t\tdata:data,\n\t\ttop: 40,\n\t\tbottom:50\n\t});\n\n\tbutton1 = Ti.UI.createButton({\n\t\ttitle : 'Empty',\n\t\twidth : 80,\n\t\theight : 40,\n\t\tleft : 0,\n\t\tbottom : 0\n\t});\n\n\tbutton1.addEventListener('click', function() {\n\t\tdata = [];\n\t\ttableView.setData(data);\n\t\tdata = null;\n\t});\n\n\tbutton2 = Ti.UI.createButton({\n\t\ttitle : 'Reset',\n\t\twidth : 80,\n\t\theight : 40,\n\t\tright : 0,\n\t\tbottom : 0\n\t});\n\n\tbutton2.addEventListener('click', function() {\n\t\tdata = null;\n\t\tcreateData({\n\t\t\ttext : 'test',\n\t\t\tcustomString : 'testCustomString',\n\t\t\tcustomNumber : 42\n\t\t});\n\t\ttableView.setData(data, {\n\t\t\tanimated : true\n\t\t});\n\t});\n\n\tbutton3 = Ti.UI.createButton({\n\t\ttitle : 'Add',\n\t\twidth : 80,\n\t\theight : 40,\n\t\tright: 100,\n\t\tbottom : 0\n\t});\n\n\tbutton3.addEventListener('click', function() {\n\t\tcreateData({\n\t\t\ttext : 'test',\n\t\t\tcustomString : 'testCustomString',\n\t\t\tcustomNumber : 79\n\t\t});\n\t\ttableView.setData(data, {\n\t\t\tanimated : false\n\t\t});\n\t});\n\n\twin2.add(tableView);\n\twin2.add(button1);\n\twin2.add(button2);\n\twin2.add(button3);\n\t\n\treturn win2;\n};\n\nmodule.exports = openWin2;\n\n{code}", "updateAuthor": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-02-22T22:42:11.000+0000", "updated": "2013-02-22T22:42:11.000+0000" }, { "id": "239525", "author": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "body": "@Federico: first i am sorry as i wont have the time to investigate it. But to me the problem has nothing to do with windows or something else, but more about the \"duration\" of the setData. AS Ingo said a simple solution to that problem is a setData([]).\nTo me if you want to reproduce it, create a tableview with something like 300 rows, custom rows, where the setData computation would be long enough for a \"numberOfRowsInSection\" to be called while setting Data.\nThat my take on this.", "updateAuthor": { "name": "farfromrefuge", "key": "farfromrefuge", "displayName": "Martin Guillon", "active": false, "timeZone": "Europe/Berlin" }, "created": "2013-02-23T10:23:48.000+0000", "updated": "2013-02-23T10:23:48.000+0000" }, { "id": "240757", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Can I give access to an appcelerator engineer on my private github project so he can see the codepath causing this error?", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-03-05T20:14:28.000+0000", "updated": "2013-03-05T20:14:28.000+0000" }, { "id": "240847", "author": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Ygor, sure. Try https://github.com/eric34 for now.", "updateAuthor": { "name": "ingo", "key": "ingo", "displayName": "Ingo Muschenetz", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-06T00:14:43.000+0000", "updated": "2013-03-06T00:14:43.000+0000" }, { "id": "241377", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "just added eric34 to my ios project so he can pull the code and read the flow... let me know if you need a walkthrough on the app flow... also, if you need more people to access it... just beware that this is production code...\n\n\nthanks!", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-03-08T19:30:01.000+0000", "updated": "2013-03-08T19:30:01.000+0000" }, { "id": "243810", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "any news on this one? Kinda worried on not being able to move forward on Ti versions due to this...", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-03-23T06:16:53.000+0000", "updated": "2013-03-23T06:16:53.000+0000" }, { "id": "243846", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "@Ygor,\nHello. I'll be working on this tomorrow morning. I'll report back.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-25T02:57:05.000+0000", "updated": "2013-03-25T02:57:05.000+0000" }, { "id": "244010", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hello all,\nThe cause of this has been discovered and dev is creating a pull request. My examples had no search feature. New sample code being created and will be incorporated in future test runs. Meu português está melhorando.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-25T21:50:31.000+0000", "updated": "2013-03-25T21:50:31.000+0000" }, { "id": "244018", "author": { "name": "mstepanov", "key": "mstepanov", "displayName": "Max Stepanov", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Reproducible test case:\n{code}\nvar win = Titanium.UI.createWindow();\n\nvar data = [\n{title:'Set uno'},\n{title:'Set due'},\n{title:'Set tre'},\n{title:'Row4'},\n{title:'Row5'},\n{title:'Row6'},\n{title:'Row7'},\n{title:'Row8'},\n{title:'Row9'},\n{title:'Row10'},\n{title:'Row11'},\n{title:'Row12'},\n{title:'Row13'},\n{title:'Row14'},\n{title:'Row15'} \n];\nvar search = Titanium.UI.createSearchBar({\n\tbarColor:'#000', \n\tshowCancel:true,\n\theight:43,\n\ttop:0,\n});\nvar tableView = Titanium.UI.createTableView({\n\tdata:data,\n\tsearch: search,\n\tsearchHidden: true,\n\thideSearchOnSelection:true,\n});\n\n\nbutton1 = Ti.UI.createButton({\n\ttitle: 'Empty',\n\twidth:80,\n\theight: 40,\n\tleft:0,\n\tbottom:0\n});\n\nbutton1.addEventListener('click', function(){\n\tdata = [];\n\ttableView.setData(data);\n});\n\nbutton2 = Ti.UI.createButton({\n\ttitle: 'Full',\n\twidth:80,\n\theight: 40,\n\tright:0,\n\tbottom:0\n});\n\nbutton2.addEventListener('click', function(){\n\tdata = [{title:'Set One'},\n\t{title:'Set two'},\n\t{title:'Set three'},\n\t{title:'Row4'},\n\t{title:'Row5'},\n\t{title:'Row6'},\n\t{title:'Row7'},\n\t{title:'Row8'},\n\t{title:'Row9'},\n\t{title:'Row10'},\n\t{title:'Row11'},\n\t{title:'Row12'},\n\t{title:'Row13'},\n\t{title:'Row14'},\n\t{title:'Row15'} ];\n\ttableView.setData(data);\n});\n\nwin.add(tableView);\nwin.add(button1);\nwin.add(button2);\nwin.open();\n{code}", "updateAuthor": { "name": "mstepanov", "key": "mstepanov", "displayName": "Max Stepanov", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-25T22:25:56.000+0000", "updated": "2013-03-25T22:25:56.000+0000" }, { "id": "244019", "author": { "name": "mstepanov", "key": "mstepanov", "displayName": "Max Stepanov", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR https://github.com/appcelerator/titanium_mobile/pull/4029", "updateAuthor": { "name": "mstepanov", "key": "mstepanov", "displayName": "Max Stepanov", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-03-25T22:27:55.000+0000", "updated": "2013-03-25T22:27:55.000+0000" }, { "id": "244486", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "@Eric Hey Eric and Max, thank you very much for solving this!!!\r\nEric, Nice that we could also improve your Portuguese in the process :)\r\n\r\nThanks!", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-03-28T16:26:10.000+0000", "updated": "2013-03-28T16:26:10.000+0000" }, { "id": "246137", "author": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Its working as per the test case given by Max.\r\nEnvironment used for verification -\r\nTitanium SDK: 3.1.0.v20130405170202\r\nTitanium  Studio:3.1.0.201304011603\r\nDevice : iPhone iOS 6.0, ipad4 iOS 6.0", "updateAuthor": { "name": "sbhadauria", "key": "sbhadauria", "displayName": "Shyam Bhadauria", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-04-06T09:19:17.000+0000", "updated": "2013-04-06T09:19:17.000+0000" } ], "maxResults": 23, "total": 23, "startAt": 0 } } }