|
[
Permlink
| « Hide
]
Craig Russell added a comment - 19/Oct/05 12:54 AM
This appears to be a JPOX bug.
Actually was an issue in InstanceCallbacks and not InstanceLifecycleListener. JPOX CVS now uses the objects the other way around on the postAttach and that part of the test passes. The issue about
[java] Sequence verification failed for PRE_ATTACH_CALLBACK; expected: <2> actual: <0> [java] [java] Sequence verification failed for POST_ATTACH_LISTENER; expected: <3> actual: <2> remains. This seems to be down to the TCK test assuming something about ordering. What is the issue here ? JPOX CVS is now updated to match Craigs' proposed spec change
<proposed> package javax.jdo.listener; public interface AttachLifecycleListener extends InstanceLifecycleListener { A12.15-13 [void preAttach(InstanceLifecycleEvent event); } This method is called before a detached instance is attached. The source instance is the detached instance. This method is called before the corresponding jdoPreAttach on the detached instance]. A12.15-14 [void postAttach(InstanceLifecycleEvent event); } This method is called after a detached instance is attached. The source instance is the corresponding persistent instance in the cache; the target instance is the detached instance. This method is called after the corresponding jdoPostAttach on the persistent instance.] </proposed> but the test still fails. The issue is that in the test it does pm.makePersistent(pc); detachedPc = pm.detachCopy(pc); pm.attachCopy(detachedPc); but the "detachedPc" has no "listener" field set (it was set on the "pc", but the detached is created using the default constructor and so has no listener object) and so the callback is received but not registered with the listener object. The test should be changed to be pm.makePersistent(pc); detachedPc = pm.detachCopy(pc); detachedPc.listener = listener; pm.attachCopy(detachedPc); and then the test passes. Andy's analysis is correct. The patch adds the listener to the detached instance and the test now passes.
Checked in version 328080. Reopened to set the Fix Version/s field to JDO 2 beta.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||