On Apr 21, 2006, at 3:42 PM, Jesus Cea wrote: > That is: > > 1. Client A fetch object X. > 2. Client B modifies and commits a new version of X. > 3. Client A, using data in cached object X, modifies an object Y. > 4. Client A commits an stale Y. Step 4 raises a ConflictError. Client A can either crash or catch the exception. Usually, we want it to catch the exception and call abort(), so that the changes to Y are erased, and then start again at step 1.