Re: Default/Initial values && post validation delegates etc

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Sep 12 2006 - 09:25:07 EDT

  • Next message: Andrus Adamchik: "Re: NullPointerException when using shared cache"

    Hi Lachlan,

    On Sep 11, 2006, at 10:08 PM, Lachlan Deck wrote:
    > Okay - that's good to know.
    >
    > After looking at the source for CayenneContext.newObject (and non-
    > public CayenneContext.createNewObject) it seems to me that
    > overriding setPersistentState (as suggested: http://
    > cwiki.apache.org/confluence/display/CAY/Setting+Initial+Values) is
    > a bad idea, esp for new objects. i.e., at the point of being NEW
    > the object's ValueHolder vars have not yet been initiated, it
    > doesn't yet have a handle on the context, it's global id has not
    > been set, and it's not been registered with the graph manager etc.
    > Simply put, bad stuff happens when messing with the objects
    > ValueHolder vars prior to all of this.

    Hmm... This information on Wiki was posted in pre-remote-object-
    persistence days, referring to DataContext. Comparing the code with
    the same method in DataContext, the order of initialization is
    different between DataContext and CayenneContext. I'd say this is a
    bug in Cayenne - let's log it in Jira.

    > Last effort question is: does the following call within
    > createNewObject(ObjectId) create some sort of event that might
    > provide a hook-in point for when the object has been properly
    > created and inserted into a context? "graphManager.nodeCreated
    > (object.getObjectId());"

    no, but aside from my comment above, you can always subclass a context.

    Andrus



    This archive was generated by hypermail 2.0.0 : Tue Sep 12 2006 - 09:25:16 EDT