Beware: trivially reproducible NSPersistentDocument crash when saving
Beware: trivially reproducible NSPersistentDocument crash when saving
- Subject: Beware: trivially reproducible NSPersistentDocument crash when saving
- From: "Sean McBride" <email@hidden>
- Date: Tue, 25 Aug 2009 17:37:19 -0400
- Organization: Rogue Research Inc.
Hi all,
A warning to NSPersistentDocument users....
Let's say you have an NSPersistentDocument-based app-- you do some work
and you save successfully. Now let's say the app has a bug where its UI
allows the user to set a value outside the allowable range of one of
your NSManagedObjects. When you try to save, the OS will give a message like:
"The document "Untitled" could not be saved as "Untitled". attribute is
too large."
The user is confused and panics. He tries to "Save As" under a
different name instead. Similar error message. He messes around in the
UI but cannot make the document 'conform'. He then tries "Save" again.
Poof, it crashes!
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x000000005b14c4a3
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x9240e688 objc_msgSend + 24
1 com.apple.AppKit 0x96ba8070 -[NSDocument
_willPresentSavingError:forOperation:url:] + 88
2 com.apple.AppKit 0x96a759f2 -[NSDocument
_saveToURL:ofType:forSaveOperation:de
legate:didSaveSelector:contextInfo:] + 611
3 com.apple.AppKit 0x96a75787 -[NSDocument
saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:] + 860
4 com.apple.AppKit 0x96aab8a1 -[NSDocument
_saveDocumentWithDelegate:didSaveSelector:contextInfo:] + 810
5 com.apple.AppKit 0x96aab56f -[NSDocument
saveDocumentWithDelegate:didSaveSelector:contextInfo:] + 366
6 com.apple.AppKit 0x96aab3f8 -[NSDocument saveDocument:] + 58
This repros with a trivial test app in both 10.5.8 and, um, newer.
<http://www.rogue-research.com/EpicSaveFail7169032.zip>
<rdar://problem/7169032>
So be sure to fix all your validation errors, because the frameworks are
not forgiving! :(
--
____________________________________________________________
Sean McBride, B. Eng email@hidden
Rogue Research www.rogue-research.com
Mac Software Developer Montréal, Québec, Canada
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden