db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andy Jefferson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (JDO-186) Attach lifecycle listeners are incorrectly implemented
Date Sat, 22 Oct 2005 20:25:03 GMT
    [ http://issues.apache.org/jira/browse/JDO-186?page=comments#action_12332876 ] 

Andy Jefferson commented on JDO-186:
------------------------------------

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.

> Attach lifecycle listeners are incorrectly implemented
> ------------------------------------------------------
>
>          Key: JDO-186
>          URL: http://issues.apache.org/jira/browse/JDO-186
>      Project: JDO
>         Type: Bug
>   Components: tck20
>  Environment: JPOX
>     Reporter: Craig Russell
>     Assignee: Craig Russell

>
> The InstanceLifecycleListenerAttach test case fails with these errors.
>     [java]  testAttach(org.apache.jdo.tck.api.instancecallbacks.InstanceLifecycleListenerAttach)junit.framework.AssertionFailedError:
Assertion A12.15-13 (TestInstanceLifecycleListener) failed: 
>     [java] Assertion A12.15-14 (TestInstanceLifecycleListener) failed: in postAttach,
source object should be persistent.
>     [java] Assertion A12.15-14 (TestInstanceLifecycleListener) failed: in postAttach,
target expected <org.apache.jdo.tck.api.instancecallbacks.InstanceLifecycleListenerAttach$PC@9ff7c0>,
actual <null>
>     [java] 
>     [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>
>     [java] 
>     [java]      at org.apache.jdo.tck.api.instancecallbacks.AbstractInstanceLifecycleListener$InstanceLifecycleListenerImpl.verifyCallbacks(AbstractInstanceLifecycleListener.java:464)
>     [java]      at org.apache.jdo.tck.api.instancecallbacks.InstanceLifecycleListenerAttach.testAttach(InstanceLifecycleListenerAttach.java:111)
>     [java]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     [java]      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>     [java]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>     [java]      at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204)
>     [java]      at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:120)
>     [java]      at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:95)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message