You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cayenne.apache.org by "Michael Gentry (JIRA)" <de...@cayenne.apache.org> on 2007/10/04 20:21:51 UTC

[JIRA] Created: (CAY-872) Potential bug deleting uncommited objects from a nested DataContext

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.