AW: Help: getting NPE at ObjectStoreGraphDiff.preprocess

From: Peter Schröder (Peter.Schroede..reenet-ag.de)
Date: Wed Mar 07 2007 - 02:19:42 EST

  • Next message: Peter Schröder: "AW: How do I query on null or blank field?"

    i am not quite sure, but i think that you have to use

    context.createAndRegister(MyType.class);

    instead of

    context.newObject(MyType.class);

    -----Ursprüngliche Nachricht-----
    Von: Eric Floehr [mailto:efloeh..oxicom.com]
    Gesendet: Dienstag, 6. März 2007 19:37
    An: use..ayenne.apache.org
    Betreff: Help: getting NPE at ObjectStoreGraphDiff.preprocess

    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 - 02:20:56 EST