thank you for hints 2009/11/3 Chuck Hill <ch...@global-village.net>: > Start here: > http://wiki.objectstyle.org/confluence/display/WO/EOF-Using+EOF-Breaking+EOF > > Then > http://www.google.com/search?q=llegalStateException+rowDiffsForAttributes+snapshot > > > Chuck > > > On Nov 3, 2009, at 2:02 AM, Gennady Kushnir wrote: > >> Hello list! >> I have an occasionally occurring problem which I can not reproduce but >> regularly meet in usage logs. >> Editing context fails to save changes and reports: >> >> java.lang.IllegalStateException: rowDiffsForAttributes: snapshot in >> com.webobjects.eoaccess.EODatabaseOperation {_dbSnapshot = {}; ..... } >> does not contain value for attribute named colorNoWeight with snapshot >> key: colorNoWeight >> >> it also happens for different objects mentioning another attributes, >> but as I see a common situation is that _dbSnapshot value is empty >> dictionary so no matter what attribute is mentioned. Why could this >> happen? >> Object in question was surely in database, not just created or deleted. >> >> Also sometimes I get NullPointerException when accessing attributes >> described as not null, so it seems like object was not initialized on >> fetch. >> >> May it be because these objects were fetched or created and saved in >> child editing context and after that used (with >> EOUtilities.localInstanceOfObject() ) in parent ? >> >> Once I got reproducible malfunction working with temporary >> EOEditingContext. >> EOUtilities.localInstanceOfObject(ec, this) was returning an objects >> with all attributes set to null whereas original object was fine and >> was stored in database even before app launch. >> >> try { >> boolean cache = ec.hasChanges() >> if(cache) { >> ec = new EOEditingContext(); >> ec.lock(); >> AutoItog ai = >> (AutoItog)EOUtilities.localInstanceOfObject(ec, this); >> course = >> (EduCourse)EOUtilities.localInstanceOfObject(ec, course); >> result = >> calculator().collectRelated(course, ai, >> >> !namedFlags().flagForKey("runningTotal"),true); >> } else { >> ec.lock(); >> result = >> calculator().collectRelated(course, this, >> >> !namedFlags().flagForKey("runningTotal"),true); >> } >> ec.saveChanges(); >> if(cache) >> result = >> EOUtilities.localInstancesOfObjects(editingContext(), result); >> } catch (RuntimeException e) { >> logger.log(LogLevel.WARNING,"Error >> collecting related", new >> Object[] {this,e}); >> } finally { >> ec.unlock(); >> } >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >> Help/Unsubscribe/Update your Subscription: >> >> http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net >> >> This email sent to ch...@global-village.net > > -- > Chuck Hill Senior Consultant / VP Development > > Practical WebObjects - for developers who want to increase their overall > knowledge of WebObjects or who are trying to solve specific problems. > http://www.global-village.net/products/practical_webobjects > > > > > > > > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to arch...@mail-archive.com