Re: Exception in saveChanges(): rowDiffsForAttributes - snapshot does not contain value
Re: Exception in saveChanges(): rowDiffsForAttributes - snapshot does not contain value
- Subject: Re: Exception in saveChanges(): rowDiffsForAttributes - snapshot does not contain value
- From: Chuck Hill <email@hidden>
- Date: Thu, 22 Feb 2007 09:01:23 -0800
On Feb 22, 2007, at 7:51 AM, Mike Schrag wrote:
I don't know that I am seeing snapshots invalidated. When this
happens, I can log out editingContext().committedSnapshotForObject
(eo) and see that the values are not null. But the snapshot that
the EODatabaseOperation gets is empty. At this point I am only
guessing at how that might be happening.
committedSnapshotForObject returns the EO's clone of the
EODatabaseContext snapshot, I think, so definitely if things aren't
locked exactly right you can end up with a race condition where
EODatabaseContext clears its snapshot but the notifications haven't
gone out to everyone to clear theirs. I'm also not exactly sure of
the behavior of an EO invalidation with respect to
eo.__originalSnapshot(). I don't know if that actually hangs
around or not (meaning, maybe that's actually expected behavior
when an EO has been invalidated? I've just never tested that
particular case).
I am really not sure what is going on. My original theory seems
wrong. I created a test case with two threads, one that created and
updated and refreshed the object and one that just kept refreshing
it. I just could not reproduce the error.
One other thing I tried in the app was to catch the
IllegalStateException and just Thread.sleep(250) instead of
invalidating the eo. This did not fix it, it just went into an
infinite loop. It seems that once this happens, only invalidating
the object can recover from it.
Chuck
--
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 (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden