Hi Erik,
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
P.S. A good JDO? O, Gasp!