Re: Help: getting NPE at ObjectStoreGraphDiff.preprocess

From: Mike Kienenberger (mkienen..mail.com)
Date: Wed Mar 07 2007 - 11:09:54 EST

  • Next message: Andrus Adamchik: "Re: Improvement ? code generation (templates)"

    Eric,

    A good first step would be to get the Cayenne 2.0.2 source, and post
    the relevent line numbers. Maybe it'll be obvious once we see what's
    null.

    On 3/6/07, Eric Floehr <efloeh..oxicom.com> wrote:
    > Hi!
    >
    >
    >
    > I am new to Cayenne, and am having some problems. I have been able to
    > populate some DB records, but when I try to set up a relationship, I get
    > an NPE on the commit. I am using Cayenne 2.0.2.
    >
    >
    >
    > Here is the essential code (with some names changed to protect the
    > innocent):
    >
    >
    >
    > MyType type = (MyType) context.newObject(MyType.class);
    >
    > type.setObjectId(new ObjectId(MyType.class.getSimpleName(),
    > MyType.MYTYPE_ID_PK_COLUMN, 1));
    >
    > type.setName("MyName");
    >
    > MyCategory category = (MyCategory)DataObjectUtils.objectForPK(context,
    > MyCategory.class, 1);
    >
    > type.setMyCategory(category);
    >
    > context.commitChanges();
    >
    >
    >
    > The MyType table has fields mytype_id (the primary key), name, and a
    > mycategory_id (foreign key to the mycategory table). I am creating a
    > new "MyType" object with a mytype_id of 1, name of "MyName", and
    > pointing to a Category object, that is already in the database, with a
    > primary key of 1.
    >
    >
    >
    > When commitChanges() runs, I get:
    >
    >
    >
    > Exception in thread "main" java.lang.NullPointerException
    >
    > at
    > org.apache.cayenne.access.ObjectStoreGraphDiff.preprocess(ObjectStoreGra
    > phDiff.java:184)
    >
    > at
    > org.apache.cayenne.access.ObjectStoreGraphDiff.<init>(ObjectStoreGraphDi
    > ff.java:53)
    >
    > at
    > org.apache.cayenne.access.ObjectStore.getChanges(ObjectStore.java:496)
    >
    > at
    > org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:120
    > 8)
    >
    > at
    > org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:113
    > 0)
    >
    > at
    > com.boxicom.server.db.CreateDb.testStreamTypeAdd(CreateDb.java:96)
    >
    > at com.boxicom.server.db.CreateDb.main(CreateDb.java:105)
    >
    >
    >
    > Can anyone help me determine what is going wrong?
    >
    >
    >
    > Thanks much!
    >
    > Eric
    >
    >
    >
    >



    This archive was generated by hypermail 2.0.0 : Wed Mar 07 2007 - 11:11:27 EST