views:

15

answers:

1

Hi all,

In my application I have taken certain table views, their data gets refreshed in background thread if a user makes and save changes.

Problem is-

when user is making some edit to a table row and its data gets refreshed in background, due to changes done by some other user, then the application crashes.

Can anyone suggest me some solution for it?

Below is the portion of crash report :

Process:         RCS [153]

Path:            /Applications/RCS.app/Contents/MacOS/RCS
Identifier:      com.tprf.RCS

Version:         1.5.10 build-0212 (1.5.10)
Code Type:       X86 (Native)
Parent Process:  launchd [96]

Date/Time:       2010-10-07 11:40:15.595 -0700
OS Version:      Mac OS X 10.6.4 (10F569)
Report Version:  6

Interval Since Last Report:          297915 sec
Crashes Since Last Report:           2
Per-App Interval Since Last Report:  213604 sec
Per-App Crashes Since Last Report:   1
Anonymous UUID:                      4037E18D-81EF-461F-95D5-9E7D7C5701A6

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x00000000c0e9bb1a
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Application Specific Information:
objc_msgSend() selector name: objectForKey:


Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libobjc.A.dylib                 0x97a4aedb objc_msgSend + 27
1   com.apple.AppKit                0x90c558ec -[NSTableView _delegateWillDisplayCell:forColumn:row:] + 62
2   com.apple.AppKit                0x90bd29f5 -[NSTableView preparedCellAtColumn:row:] + 1362
3   com.apple.AppKit                0x90becacc -[NSTableView _drawContentsAtRow:column:withCellFrame:] + 56
4   com.apple.AppKit                0x90bebb3a -[NSTableView drawRow:clipRect:] + 1131
5   com.apple.AppKit                0x90beb572 -[NSTableView drawRowIndexes:clipRect:] + 360
6   com.apple.AppKit                0x90be9f4b -[NSTableView drawRect:] + 1144
7   com.apple.AppKit                0x90bdfa36 -[NSView _drawRect:clip:] + 3510
8   com.apple.AppKit                0x90bde6d4 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 1600
9   com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
10  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
11  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
12  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
13  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
14  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
15  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
16  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
17  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
18  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
19  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
20  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
21  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
22  com.apple.AppKit                0x90bdea09 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:] + 2421
23  com.apple.AppKit                0x90bdcbf3 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 711
24  com.apple.AppKit                0x90bdc767 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:] + 265
25  com.apple.AppKit                0x90bd90ae -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:] + 3309
26  com.apple.AppKit                0x90b39d3f -[NSView displayIfNeeded] + 818
27  com.apple.AppKit                0x90b03050 -[NSWindow displayIfNeeded] + 204
28  com.apple.AppKit                0x90b34572 _handleWindowNeedsDisplay + 696
29  com.apple.CoreFoundation        0x996812c2 __CFRunLoopDoObservers + 1186
30  com.apple.CoreFoundation        0x9963d9bd __CFRunLoopRun + 557
31  com.apple.CoreFoundation        0x9963d094 CFRunLoopRunSpecific + 452
32  com.apple.CoreFoundation        0x9963cec1 CFRunLoopRunInMode + 97
33  com.apple.HIToolbox             0x905ecf9c RunCurrentEventLoopInMode + 392
34  com.apple.HIToolbox             0x905ecc8d ReceiveNextEventCommon + 158
35  com.apple.HIToolbox             0x905ecbd6 BlockUntilNextEventMatchingListInMode + 81
36  com.apple.AppKit                0x90b0aa89 _DPSNextEvent + 847
37  com.apple.AppKit                0x90b0a2ca -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
38  com.apple.AppKit                0x90acc55b -[NSApplication run] + 821
39  com.apple.AppKit                0x90ac45ed NSApplicationMain + 574

Thanks,

Miraaj

+1  A: 

The crash log says:

Application Specific Information:
objc_msgSend() selector name: objectForKey:

This means that you crashed while trying to send an objectForKey: message.

It's not clear from the crash log whether this is your implementation of tableView:willDisplayCell:forTableColumn:row: that is crashing, or NSTableView looking something up in order to send that delegate message. If it's the former, then you're probably not retaining or copying a dictionary where you should. If it's the latter, then you're probably not retaining the object that is the table view's delegate where you should.

Either way, the Zombies template in Instruments will tell you what object it was trying to send a message to, and what release and autorelease messages the object received. From there, you can work out which release or autorelease message was the undue one (if any), or which object that should be retaining the object isn't.

Peter Hosey