db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From e...@jpox.org
Subject Re: jdoPreClear on deleted instances
Date Mon, 18 Jul 2005 09:40:42 GMT

The NullPointException is happening on a collection field, which is lazy loaded
by JPOX, but at this time, the field was not loaded.

The JDO spec states the access to fields is not allowed, but the TCK test does
in the jdoPreClear. If I'm correct, this situation is not determined by the
spec, and we may have any kind of problems, from returning undetermined values
to the user or raising exceptions to returning the correct value.


Quoting Craig Russell <Craig.Russell@Sun.COM>:

> Hi Erik,
> On Jul 17, 2005, at 2:15 AM, erik@jpox.org wrote:
> > TCK: org.apache.jdo.tck.api.instancecallbacks.CallingJdoPreclear -
> > JIRA #70
> >
> > During commit jdoPreClear is called in p-deleted instances.
> > jdoPreClear is not
> > enhanced, and access to persistent fields is not allowed on p-deleted
> > instances, but the TCK does. Should jdoPreClear be called on p-deleted
> > instances?
> Yes. The idea is that jdoPreClear cannot affect the persistent state
> of instances because it's called during afterCompletion. And the
> method is not enhanced so no one will ever know. The job of
> jdoPreClear is to do any cleanup of the instance that might be needed
> before it transitions to transient.
> Access to persistent fields (except for identity fields which can
> always be accessed) of deleted instances is detected by enhanced code
> that ends up calling the StateManager. While in jdoPreDelete, nothing
> that the method does is mediated, which is why it cannot call other
> methods that are enhanced!
> Craig
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!

View raw message