cat /System/Library/Frameworks/JavaWebObjects.framework/Resources/version.plist
Comes back 5.3.3 for me:
<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>BuildVersion</key> <string>1</string> <key>CFBundleShortVersionString</key> <string>5.3.3</string> <key>ProjectName</key> <string>JavaWebObjects</string> <key>SourceVersion</key> <string>9550200</string> </dict> </plist>
I've ruled out a couple of more issues. I took out creating EOs through plain old java introspection (although I assume EOUtilities.createAndInsertInstance uses introspection to create an EO if it just has the string, and I'm still using that). Also, I ruled out that it is the way I'm doing locking with the nested editing context. I took everything out of session, turned on autolocking in Project Wonder, and created the nested editing context at the page level rather than at the session level. I don't do any explicit locking of anything anywhere, but PWO appears to be handling that perfectly. However, I'm still getting the exception, and in fact, I'm getting more of these warnings now before actually throwing the exception:
DEBUG NSLog - decrementSnapshotCountForGlobalID: com.webobjects.eoaccess.EODatabase com.webobjects.eoaccess.EODatabase@6eb235 -- is unable to decrement snapshot count for object with global ID _EOIntegralKeyGlobalID[KitQuantity (java.lang.Integer)1346] - count is already 0 or this snapshot doesn't exist
This might just be a coincidence though.
I'm interested in the possibility of peer editing contexts mentioned by Mike and Chuck rather than using nested editing contexts. That's going to be my next attempt. If the editing context is at the component level, there shouldn't be a problem if someone leaves the page with the EOs in the EC in a half-finished state. I can't think of any other issues. Are there any gotchas there I should be aware of? I'll post the results as soon as I know them...
Mark |