Potential bug deleting uncommited objects from a nested DataContext
-------------------------------------------------------------------
Key: CAY-872
URL: https://issues.apache.org/cayenne/browse/CAY-872
Project: Cayenne
Issue Type: Bug
Components: Cayenne Core Library
Affects Versions: 3.0
Environment: OS X, Java 1.5
Reporter: Michael Gentry
Assignee: Andrus Adamchik
Priority: Minor
Fix For: 3.0
Attachments: ndc.tar.gz
Quoting from e-mail list:
DataContext childContext = parentContext.createChildDataContext();
I have a Master and 3 Details (1-to-many) in the parent DC (in a
committed state), and pull the Master into the nested DC using
localObject(). If I then do the following:
Master childMaster = (Master)
childContext.localObject(parentMaster.getObjectId(), null);
Detail d = (Detail) childContext.newObject(Detail.class);
d.setXXXXXXXX(...); // do sets
childMaster.addToDetails(d);
childContext.commitChangesToParent();
childContext.deleteObject(d);
childMaster.removeFromDetails(d);
childContext.commitChangesToParent();
I get an exception on the last commitChangesToParent():
Exception in thread "main" org.apache.cayenne.CayenneRuntimeException:
[v.3.0M1 Jul 16 2007 22:25:33] Can't build a query for temporary id:
<ObjectId:Detail, TEMP:000004B078EB2838>
Is this to be expected? If I change commitChangesToParent() to
commitChanges() it works ...
See attached project for full code and test harness. To run, you'll need to adjust the DB connection information and generate the schema.
-- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
This archive was generated by hypermail 2.0.0 : Thu Oct 04 2007 - 14:22:21 EDT