{ "id": "62949", "key": "TIMOB-2317", "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": "11357", "description": "Mobile 1.8.0 M04", "name": "Sprint 2011-25", "archived": true, "released": true, "releaseDate": "2011-06-27" }, { "id": "11570", "description": "", "name": "Release 1.7.2", "archived": true, "released": true, "releaseDate": "2011-07-21" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2011-06-23T14:57:23.000+0000", "created": "2011-04-15T03:16:32.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "address", "contacts", "crash", "defect", "email", "ios", "rplist" ], "versions": [ { "id": "11233", "name": "Release 1.6.0", "archived": true, "released": true, "releaseDate": "2011-02-23" } ], "issuelinks": [], "assignee": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2011-07-08T17:10:58.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": "{html}

Using the following code:

\r\n
\r\n  Ti.Contacts.showContacts({\r\n    fields: ['email'],\r\n    selectedProperty: function(e) {\r\n      Ti.API.info('property selected');\r\n    }\r\n  });\r\n
\r\n

This will crash the Contacts Picker if an email is selected when\r\nusing a physical iphone. I think it has something to do with the\r\nfact that that the email labels are all \"email\" versus on the\r\nsimulator, they are \"home\", \"work\", and \"other\". Here is the error\r\nthat appears in the debugger at the time of the crash:

\r\n
\r\n[ERROR] The application has crashed with an unhandled exception. Stack trace:\r\n\r\n0   CoreFoundation                      0x30897ec1 __exceptionPreprocess + 96\r\n1   libobjc.A.dylib                     0x3002f811 objc_exception_throw + 24\r\n2   CoreFoundation                      0x308290bd -[__NSArrayI objectAtIndex:] + 160\r\n3   Scratcher                           0x00067567 -[ContactsModule peoplePickerNavigationController:shouldContinueAfterSelectingPerson:property:identifier:] + 354\r\n4   AddressBookUI                       0x338a8d97 -[ABPeoplePickerNavigationController personViewController:shouldPerformDefaultActionForPerson:property:identifier:withMemberCell:] + 158\r\n5   AddressBookUI                       0x338b1b35 -[ABPersonViewControllerHelper personTableViewDataSource:selectedPropertyAtIndex:inPropertyGroup:withMemberCell:forEditing:] + 228\r\n6   AddressBookUI                       0x338c06ab -[ABPersonTableViewDataSource valueAtIndex:selectedForPropertyGroup:withMemberCell:forEditing:] + 46\r\n7   AddressBookUI                       0x338bf101 -[ABPersonTableViewDataSource tableView:didSelectRowAtIndexPath:] + 360\r\n8   UIKit                               0x31f7ae6f -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 662\r\n9   UIKit                               0x31f772af -[UITableView _userSelectRowAtIndexPath:] + 130\r\n10  Foundation                          0x349c7e8d __NSFireDelayedPerform + 368\r\n11  CoreFoundation                      0x3084e7fb __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14\r\n12  CoreFoundation                      0x3084e2ad __CFRunLoopDoTimer + 860\r\n13  CoreFoundation                      0x3081f7a5 __CFRunLoopRun + 1088\r\n14  CoreFoundation                      0x3081f277 CFRunLoopRunSpecific + 230\r\n15  CoreFoundation                      0x3081f17f CFRunLoopRunInMode + 58\r\n16  GraphicsServices                    0x31e445f3 GSEventRunModal + 114\r\n17  GraphicsServices                    0x31e4469f GSEventRun + 62\r\n18  UIKit                               0x31e51123 -[UIApplication _run] + 402\r\n19  UIKit                               0x31e4f12f UIApplicationMain + 670\r\n20  Scratcher                           0x00003c8b main + 42\r\n21  Scratcher                           0x0000384c start + 40\r\n\r\n\r\n2010-11-09 18:34:47.455 Scratcher[383:307] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSArray objectAtIndex:]: index 0 beyond bounds for empty array'\r\n*** Call stack at first throw:\r\n(\r\n    0   CoreFoundation                      0x30897ed3 __exceptionPreprocess + 114\r\n    1   libobjc.A.dylib                     0x3002f811 objc_exception_throw + 24\r\n    2   CoreFoundation                      0x308290bd -[__NSArrayI objectAtIndex:] + 160\r\n    3   Scratcher                           0x00067567 -[ContactsModule peoplePickerNavigationController:shouldContinueAfterSelectingPerson:property:identifier:] + 354\r\n    4   AddressBookUI                       0x338a8d97 -[ABPeoplePickerNavigationController personViewController:shouldPerformDefaultActionForPerson:property:identifier:withMemberCell:] + 158\r\n    5   AddressBookUI                       0x338b1b35 -[ABPersonViewControllerHelper personTableViewDataSource:selectedPropertyAtIndex:inPropertyGroup:withMemberCell:forEditing:] + 228\r\n    6   AddressBookUI                       0x338c06ab -[ABPersonTableViewDataSource valueAtIndex:selectedForPropertyGroup:withMemberCell:forEditing:] + 46\r\n    7   AddressBookUI                       0x338bf101 -[ABPersonTableViewDataSource tableView:didSelectRowAtIndexPath:] + 360\r\n    8   UIKit                               0x31f7ae6f -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 662\r\n    9   UIKit                               0x31f772af -[UITableView _userSelectRowAtIndexPath:] + 130\r\n    10  Foundation                          0x349c7e8d __NSFireDelayedPerform + 368\r\n    11  CoreFoundation                      0x3084e7fb __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14\r\n    12  CoreFoundation                      0x3084e2ad __CFRunLoopDoTimer + 860\r\n    13  CoreFoundation                      0x3081f7a5 __CFRunLoopRun + 1088\r\n    14  CoreFoundation                      0x3081f277 CFRunLoopRunSpecific + 230\r\n    15  CoreFoundation                      0x3081f17f CFRunLoopRunInMode + 58\r\n    16  GraphicsServices                    0x31e445f3 GSEventRunModal + 114\r\n    17  GraphicsServices                    0x31e4469f GSEventRun + 62\r\n    18  UIKit                               0x31e51123 -[UIApplication _run] + 402\r\n    19  UIKit                               0x31e4f12f UIApplicationMain + 670\r\n    20  Scratcher                           0x00003c8b main + 42\r\n    21  Scratcher                           0x0000384c start + 40\r\n)\r\nterminate called after throwing an instance of 'NSException'\r\n
\r\n

I also tried using the selectedPerson callback:

\r\n
\r\n  Ti.Contacts.showContacts({\r\n    selectedPerson: function(e) { \r\n      var person = e.person;\r\n      var emails = person.email;\r\n    }\r\n  });\r\n
\r\n

But that crashed as well with a different error:

\r\n
\r\n[ERROR] The application has crashed with an unhandled exception. Stack trace:\r\n\r\n0   CoreFoundation                      0x30897ec1 __exceptionPreprocess + 96\r\n1   libobjc.A.dylib                     0x3002f811 objc_exception_throw + 24\r\n2   CoreFoundation                      0x30897d15 +[NSException raise:format:arguments:] + 68\r\n3   CoreFoundation                      0x30897d4f +[NSException raise:format:] + 34\r\n4   CoreFoundation                      0x3081bbd5 -[__NSCFDictionary setObject:forKey:] + 244\r\n5   Foundation                          0x349b9b91 -[NSMutableDictionary(NSKeyValueCoding) setValue:forKey:] + 16\r\n6   Scratcher                           0x00056035 -[TiContactsPerson dictionaryFromMultiValue:] + 208\r\n7   Scratcher                           0x00056b33 -[TiContactsPerson valueForUndefinedKey:] + 298\r\n8   CoreFoundation                      0x308362eb -[NSObject(NSObject) performSelector:withObject:] + 22\r\n9   Foundation                          0x349c7825 __NSThreadPerformPerform + 268\r\n10  CoreFoundation                      0x3084df25 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12\r\n11  CoreFoundation                      0x3081fba7 __CFRunLoopDoSources0 + 382\r\n12  CoreFoundation                      0x3081f44b __CFRunLoopRun + 230\r\n13  CoreFoundation                      0x3081f277 CFRunLoopRunSpecific + 230\r\n14  CoreFoundation                      0x3081f17f CFRunLoopRunInMode + 58\r\n15  GraphicsServices                    0x31e445f3 GSEventRunModal + 114\r\n16  GraphicsServices                    0x31e4469f GSEventRun + 62\r\n17  UIKit                               0x31e51123 -[UIApplication _run] + 402\r\n18  UIKit                               0x31e4f12f UIApplicationMain + 670\r\n19  Scratcher                           0x00003bb7 main + 42\r\n20  Scratcher                           0x00003778 start + 40\r\n\r\n\r\n2010-11-09 20:21:26.424 Scratcher[828:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil key'\r\n*** Call stack at first throw:\r\n(\r\n    0   CoreFoundation                      0x30897ed3 __exceptionPreprocess + 114\r\n    1   libobjc.A.dylib                     0x3002f811 objc_exception_throw + 24\r\n    2   CoreFoundation                      0x30897d15 +[NSException raise:format:arguments:] + 68\r\n    3   CoreFoundation                      0x30897d4f +[NSException raise:format:] + 34\r\n    4   CoreFoundation                      0x3081bbd5 -[__NSCFDictionary setObject:forKey:] + 244\r\n    5   Foundation                          0x349b9b91 -[NSMutableDictionary(NSKeyValueCoding) setValue:forKey:] + 16\r\n    6   Scratcher                           0x00056035 -[TiContactsPerson dictionaryFromMultiValue:] + 208\r\n    7   Scratcher                           0x00056b33 -[TiContactsPerson valueForUndefinedKey:] + 298\r\n    8   CoreFoundation                      0x308362eb -[NSObject(NSObject) performSelector:withObject:] + 22\r\n    9   Foundation                          0x349c7825 __NSThreadPerformPerform + 268\r\n    10  CoreFoundation                      0x3084df25 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12\r\n    11  CoreFoundation                      0x3081fba7 __CFRunLoopDoSources0 + 382\r\n    12  CoreFoundation                      0x3081f44b __CFRunLoopRun + 230\r\n    13  CoreFoundation                      0x3081f277 CFRunLoopRunSpecific + 230\r\n    14  CoreFoundation                      0x3081f17f CFRunLoopRunInMode + 58\r\n    15  GraphicsServices                    0x31e445f3 GSEventRunModal + 114\r\n    16  GraphicsServices                    0x31e4469f GSEventRun + 62\r\n    17  UIKit                               0x31e51123 -[UIApplication _run] + 402\r\n    18  UIKit                               0x31e4f12f UIApplicationMain + 670\r\n    19  Scratcher                           0x00003bb7 main + 42\r\n    20  Scratcher                           0x00003778 start + 40\r\n)\r\nterminate called after throwing an instance of 'NSException'\r\n
{html}", "attachment": [ { "id": "20994", "filename": "gmailContactsCrashLog.log", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-06-08T08:02:30.000+0000", "size": 9999, "mimeType": "text/plain" } ], "flagged": false, "summary": "Contact Picker crashes when selecting an email", "creator": { "name": "dcpedit", "key": "dcpedit", "displayName": "dcpedit", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "dcpedit", "key": "dcpedit", "displayName": "dcpedit", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "128145", "author": { "name": "dcpedit", "key": "dcpedit", "displayName": "dcpedit", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

This is probably not the \"correct\" fix, but I was able to\nprevent it from crashing and return the correct email address with\nthe following change:
\nContactsModule.m line 378

\n
\n\n      if (CFlabel) {\n        label = [NSString stringWithString:[[[TiContactsPerson multiValueLabels] allKeysForObject:(NSString*)CFlabel] objectAtIndex:0]];\n        CFRelease(CFlabel);\n      }\n      else {\n        label = @\"none\";\n      }\n
{html}", "updateAuthor": { "name": "dcpedit", "key": "dcpedit", "displayName": "dcpedit", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:33.000+0000", "updated": "2011-04-15T03:16:33.000+0000" }, { "id": "128146", "author": { "name": "guillaume", "key": "guillaume", "displayName": "Guillaume", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Hi,
\nI have exactly the same problem. As you said, this comes from the\n'email' label.
\nI think this is when you synchronise your contacts with other\nsystems like google for instance. All my contacts have 'email'\nlabels instead of 'home', 'work' or 'other'.
\nThe ones that are directly created on the iPhone work well.

\n

One question: I would like to use your workaround but what is\nCFlabel ?

\n

Thanks !

{html}", "updateAuthor": { "name": "guillaume", "key": "guillaume", "displayName": "Guillaume", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:33.000+0000", "updated": "2011-04-15T03:16:33.000+0000" }, { "id": "128147", "author": { "name": "guillaume", "key": "guillaume", "displayName": "Guillaume", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Sorry, I understood after that you modified directly the\nContactModule class file.

\n

This still does not work for me.
\nWhat's the process then ? I compiled directly in xcode with Device\nand Release. But then the only new directory was\nRelease-iphonesimulator. I then took the app from this directly to\nload on my device. Is that the correct way to proceed ?

\n

Would be great if a fix was directly integrated in Titanium for\nnext release.

{html}", "updateAuthor": { "name": "guillaume", "key": "guillaume", "displayName": "Guillaume", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:34.000+0000", "updated": "2011-04-15T03:16:34.000+0000" }, { "id": "128148", "author": { "name": "guillaume", "key": "guillaume", "displayName": "Guillaume", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

I am still trying to find a solution for this issue.
\nI feel that the problem is similar to this one (#1342), which has\nbeen resolved in 1.5. The difference is that instead of having\ncustom labels, we have a kind of default label 'email'.
\nAny clue on how to fix that ? I did not manage to fix it with the\nsolution provided.

{html}", "updateAuthor": { "name": "guillaume", "key": "guillaume", "displayName": "Guillaume", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:34.000+0000", "updated": "2011-04-15T03:16:34.000+0000" }, { "id": "128149", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

OK, this has been reported often enough that I can't dismiss it\nas user error any more. Also, there's sample code now.

{html}", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:34.000+0000", "updated": "2011-04-15T03:16:34.000+0000" }, { "id": "128150", "author": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

We are having the same issue with address. It seems that any\ncontact created from the iOS Maps App does not set the label on\naddress. To test, using the following code on device. Click 'Test\nContacts' and see if it crashes. If it does, look in the console to\nsee what the last contact was. If it doesn't, do a maps search for\nany business, add as a contact, and then run again. Built with 1.6\nrunning on 4.2, this consistently crashed the app. Then, change the\nnew contacts address to 'other' and try again.

\n
\nvar win = Titanium.UI.createWindow();\nvar button = Ti.UI.createButton({\nwidth:150,\nheight:50,\ntitle:'Test Contacts'\n});\nwin.add(button);\nbutton.addEventListener('click', function(){\nvar people = Titanium.Contacts.getAllPeople();\n    for (var i = 0, all = people.length; i < all; i++) \n    {\n        Ti.API.info('Working on contact '+i+', '+people[i].fullName);\n        for (var label in people[i].email) {\n            var addrs = people[i].email[label];\n        Ti.API.info(\"Email: \"+people[i].email[label]);\n        }\n        for (var label in people[i].address) {\n            var addrs = people[i].address[label];\n            for (var ii = 0; ii < addrs.length; ii++) \n            {\n                if (addrs[ii].Street != undefined && addrs[ii].Street.length > 1)\n                {\n                    Ti.API.info(\"  address[\"+label+\"]: \"+addrs[ii].Street);\n                }\n            }\n        }\n    }\n    alert('Contacts Successfully Tested');\n});\nwin.open();\n
\n

Ticket Reference: http://developer.appcelerator.com/helpdesk/view/76124

{html}", "updateAuthor": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:35.000+0000", "updated": "2011-04-15T03:16:35.000+0000" }, { "id": "128151", "author": { "name": "johnvpataki", "key": "johnvpataki", "displayName": "johnvpataki", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{html}

This issue needs to be resolved for us to release our app.
\nWe are still working on some other items to make the app ready but\nwe need to know this is going to get some attention soon.

\n

Is there a plan or is this scheduled as a priority?

{html}", "updateAuthor": { "name": "johnvpataki", "key": "johnvpataki", "displayName": "johnvpataki", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:35.000+0000", "updated": "2011-04-15T03:16:35.000+0000" }, { "id": "128152", "author": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{html}

(from [42a8c3893133671e0d98d55ab556ff24966d888f])\n[#2317 state:fixed-in-qa\nmilestone:\"Sprint-2011-11\"][#1849 state:fixed-in-qa\nmilestone:Sprint-2011-11][#1958 state:fixed-in-qa\nmilestone:Sprint-2011-11] Numerous fixes for crashers in Contacts.\n\nhttps://github.com/appcelerator/titanium_mobile/commit/42a8c3893133...

{html}", "updateAuthor": { "name": "jhaynie", "key": "jhaynie", "displayName": "Jeff Haynie", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:35.000+0000", "updated": "2011-04-15T03:16:35.000+0000" }, { "id": "128153", "author": { "name": "johnvpataki", "key": "johnvpataki", "displayName": "johnvpataki", "active": false, "timeZone": "America/Los_Angeles" }, "body": "{html}

Awesome - glad to see this has a resolution path!

\n

How can I relate milestones to builds available via the\ncontinuous builds page to know if a particular build includes the\nfix?

{html}", "updateAuthor": { "name": "johnvpataki", "key": "johnvpataki", "displayName": "johnvpataki", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:35.000+0000", "updated": "2011-04-15T03:16:35.000+0000" }, { "id": "128154", "author": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "{html}

Tested with Titanium SDK version: 1.7.0 (03/18/11 12:00 19be393)\non
\nSimulator 4.0
\niPad2 4.3

{html}", "updateAuthor": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-04-15T03:16:36.000+0000", "updated": "2011-04-15T03:16:36.000+0000" }, { "id": "133082", "author": { "name": "john8675309", "key": "john8675309", "displayName": "John Hass", "active": true, "timeZone": "America/Los_Angeles" }, "body": "This bug is still not fixed... Here is a link to the youtube video, I don't really have any way to prove it other then a video.\n\nhttp://www.youtube.com/watch?v=xL2CX-UbX00\n\n", "updateAuthor": { "name": "john8675309", "key": "john8675309", "displayName": "John Hass", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-05-03T09:01:01.000+0000", "updated": "2011-05-03T09:01:01.000+0000" }, { "id": "133126", "author": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "body": "h3. Regression\n\nh3. Test code\n{code:javascript}\nvar win = Ti.UI.createWindow();\n\nvar values = {\n\tselectedProperty: function(e){\n\t\talert(e.value);\n\t}\n};\n\nvar button = Ti.UI.createButton({\n\ttitle: 'Open',\n\theight: 60,\n\twidth: 200\n});\nbutton.addEventListener('click', function(e){\n\tTi.Contacts.showContacts(values);\n});\n\nwin.add(button);\nwin.open();\n{code}\n\nh3. Tested on\niPhone4 4.3.1, TiSDK 1.7.0 (May 3 2011 15:12 r05b7ea37)\n\n", "updateAuthor": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-05-03T16:30:15.000+0000", "updated": "2011-05-03T16:30:15.000+0000" }, { "id": "133340", "author": { "name": "tom", "key": "tom", "displayName": "tom quas", "active": true, "timeZone": "Europe/Berlin" }, "body": "we're still seeing this issue on 1.6.2 when accessing multi-value fields:\n\nGNU gdb 6.3.50-20050815 (Apple version gdb-1518) (Sat Feb 12 02:52:12 UTC 2011)\nCopyright 2004 Free Software Foundation, Inc.\nGDB is free software, covered by the GNU General Public License, and you are\nwelcome to change it and/or distribute copies of it under certain conditions.\nType \"show copying\" to see the conditions.\nThere is absolutely no warranty for GDB. Type \"show warranty\" for details.\nThis GDB was configured as \"x86_64-apple-darwin\".Setting environment variable \"KR_ORIG_DYLD_LIBRARY_PATH\" to null value.\nSetting environment variable \"KR_ORIG_DYLD_FRAMEWORK_PATH\" to null value.\nAttaching to process 1202.\n\n[INFO] get all contacts\n[INFO] find all()\n[INFO] getAllPeople()\n[INFO] reloaded contacts\n[INFO] 20 contacts via all\n[INFO] found all()\n[INFO] total contacts: 20\n[DEBUG] fire app event: sync.progress.init with {\n max = 20;\n stage = 0;\n}\n[INFO] [object TiContactsPerson]\n[ERROR] The application has crashed with an unhandled exception. Stack trace:\n\n0 CoreFoundation 0x0238358c __exceptionPreprocess + 156\n1 libobjc.A.dylib 0x024d7313 objc_exception_throw + 44\n2 CoreFoundation 0x0233bef8 +[NSException raise:format:arguments:] + 136\n3 CoreFoundation 0x0233be6a +[NSException raise:format:] + 58\n4 CoreFoundation 0x02381e15 -[__NSCFDictionary setObject:forKey:] + 293\n5 app 0x000b50d0 -[TiContactsPerson valueForUndefinedKey:] + 928\n6 Foundation 0x0066c94e __NSThreadPerformPerform + 251\n7 CoreFoundation 0x023648ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15\n8 CoreFoundation 0x022c288b __CFRunLoopDoSources0 + 571\n9 CoreFoundation 0x022c1d86 __CFRunLoopRun + 470\n10 CoreFoundation 0x022c1840 CFRunLoopRunSpecific + 208\n11 CoreFoundation 0x022c1761 CFRunLoopRunInMode + 97\n12 GraphicsServices 0x041891c4 GSEventRunModal + 217\n13 GraphicsServices 0x04189289 GSEventRun + 115\n14 UIKit 0x008fbc93 UIApplicationMain + 1160\n15 app 0x00003d9e main + 104\n16 app 0x00002cc5 start + 53\n\n\n2011-05-10 14:42:44.770 app[1202:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: id)'\n*** Call stack at first throw:\n(\n\t0 CoreFoundation 0x023835a9 __exceptionPreprocess + 185\n\t1 libobjc.A.dylib 0x024d7313 objc_exception_throw + 44\n\t2 CoreFoundation 0x0233bef8 +[NSException raise:format:arguments:] + 136\n\t3 CoreFoundation 0x0233be6a +[NSException raise:format:] + 58\n\t4 CoreFoundation 0x02381e15 -[__NSCFDictionary setObject:forKey:] + 293\n\t5 app 0x000b50d0 -[TiContactsPerson valueForUndefinedKey:] + 928\n\t6 Foundation 0x0066c94e __NSThreadPerformPerform + 251\n\t7 CoreFoundation 0x023648ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15\n\t8 CoreFoundation 0x022c288b __CFRunLoopDoSources0 + 571\n\t9 CoreFoundation 0x022c1d86 __CFRunLoopRun + 470\n\t10 CoreFoundation 0x022c1840 CFRunLoopRunSpecific + 208\n\t11 CoreFoundation 0x022c1761 CFRunLoopRunInMode + 97\n\t12 GraphicsServices 0x041891c4 GSEventRunModal + 217\n\t13 GraphicsServices 0x04189289 GSEventRun + 115\n\t14 UIKit 0x008fbc93 UIApplicationMain + 1160\n\t15 app 0x00003d9e main + 104\n\t16 app 0x00002cc5 start + 53\n)\nterminate called after throwing an instance of 'NSException'\nsharedlibrary apply-load-rules all\nCurrent language: auto; currently objective-c", "updateAuthor": { "name": "tom", "key": "tom", "displayName": "tom quas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-05-10T05:58:28.000+0000", "updated": "2011-05-10T06:10:53.000+0000" }, { "id": "133341", "author": { "name": "tom", "key": "tom", "displayName": "tom quas", "active": true, "timeZone": "Europe/Berlin" }, "body": "can we raise the priority to a reasonable level?", "updateAuthor": { "name": "tom", "key": "tom", "displayName": "tom quas", "active": true, "timeZone": "Europe/Berlin" }, "created": "2011-05-10T06:00:04.000+0000", "updated": "2011-05-10T06:00:04.000+0000" }, { "id": "133855", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Finally put this to bed. Technically an Apple bug, but they'd never fix it.", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-05-17T17:24:44.000+0000", "updated": "2011-05-17T17:24:44.000+0000" }, { "id": "134196", "author": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "body": "closing against verizon iphone4 (4.2.8) and iphone3 (3.1.3) [INFO] Titanium SDK version: 1.7.0 (05/24/11 00:41 3982f4e...)\n", "updateAuthor": { "name": "thomashuelbert", "key": "thomashuelbert", "displayName": "Thomas Huelbert", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-05-24T16:09:41.000+0000", "updated": "2011-05-24T16:09:41.000+0000" }, { "id": "155720", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "This still seems to be happening with contacts synced with gmail. I've attached \"gmailContactsCrashLog.log\".", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-06-08T08:01:44.000+0000", "updated": "2011-06-08T08:03:01.000+0000" }, { "id": "156347", "author": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "body": "h3. Additional Notes from Customer\r\nGmail assigns them the label of 'email' and this crashes the app. However when you manually assign a contact a new email address and give it the custom field of 'email' it works. This makes me think that gmail is adding in additional blank fields or such not just 'email'.", "updateAuthor": { "name": "dtoth", "key": "dtoth", "displayName": "Dawson Toth", "active": true, "timeZone": "America/New_York" }, "created": "2011-06-09T11:45:39.000+0000", "updated": "2011-06-09T11:45:39.000+0000" }, { "id": "157294", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Finally closing this bug for good will involve testing every single possible email/contacts configuration available on iOS. Will need QA's assistance to resolve.", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-06-21T11:11:58.000+0000", "updated": "2011-06-21T11:11:58.000+0000" }, { "id": "157335", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Time includes budgeting for some, but not all, testing. We're going to have to be very rigorous.", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-06-21T16:37:16.000+0000", "updated": "2011-06-21T16:37:16.000+0000" }, { "id": "158986", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Could not reproduce with Jon Alter's test code above. Will try additional scenarios to best ensure the fix.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-07-07T18:13:28.000+0000", "updated": "2011-07-07T18:13:28.000+0000" }, { "id": "159079", "author": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Tested with iPad 2 4.3.3 with 1.7.2.v20110706211037 with Exchange mail and device contact, did not encounter the crash", "updateAuthor": { "name": "nhuynh", "key": "nhuynh", "displayName": "Natalie Huynh", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-07-08T15:56:42.000+0000", "updated": "2011-07-08T15:56:42.000+0000" }, { "id": "159087", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the following: exchange account listings, gmail account contact listings with multi-value-fields, local contacts with multi-value fields including custom and default. Verified on iPhone 4, 4.3.3, iPad 2 4.3.3, iPhone 3G 3.1.3.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2011-07-08T17:10:58.000+0000", "updated": "2011-07-08T17:10:58.000+0000" } ], "maxResults": 23, "total": 23, "startAt": 0 } } }