[ 
https://issues.apache.org/jira/browse/JDO-460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12474011
 ] 

Craig Russell commented on JDO-460:
-----------------------------------

>OK. I have tried to fix this but come across the issue of the object state 
>being passed in to this operation being incorrect. In the 
>StateTransitions.java when creating objects HOLLOW and P_NONTRANS are treated 
>the same in general. This leads to a P_NONTRANS being passed in to part 1 
>above, and HOLLOW being passed in to part 2 above. Going backwards 
>getHollowInstance() will sometimes return a P_NONTRANS, and 
>getPersistentNontransactionalInstance() will sometimes return a HOLLOW ... 
>which upsets things a little when there is different expected behaviour 
>between these two.

Right. The spec was updated so that detachCopy with either HOLLOW or P_NONTRANS 
should transition to P_CLEAN. The rationale is that detaching instances causes 
their fields to be read, which should cause a transition to P_CLEAN with a 
datastore transaction. 

I also agree that the test case does not reliably create HOLLOW or P_NONTRANS 
instances. I've checked in a fix for the methods.

> StateTransitions test fails on detachCopy operation
> ---------------------------------------------------
>
>                 Key: JDO-460
>                 URL: https://issues.apache.org/jira/browse/JDO-460
>             Project: JDO
>          Issue Type: Bug
>          Components: tck2
>            Reporter: Michelle Caisse
>         Assigned To: Andy Jefferson
>             Fix For: JDO 2 maintenance release 1
>
>
> StateTransitions fails on three cases for the detachCopy operation. These 
> transitions are newly specified for JDO 2.1.  See JDO-456. 
>    [java] There was 1 failure:
>     [java] 1) 
> test(org.apache.jdo.tck.lifecycle.StateTransitions)junit.framework.AssertionFailedError:
>     [java] Assertions A5.9-1 through A5.9-190 (StateTransitions) failed:
>     [java] StateTransitions: datastore transaction; current state hollow
>     [java] detachCopy with active datastore tx transitioned instance to 
> invalid state hollow; expected state persistent-clean
>     [java] Assertions A5.9-1 through A5.9-190 (StateTransitions) failed:
>     [java] StateTransitions: no transaction; current state hollow
>     [java] detachCopy outside tx with NontransactionalRead=false; 
> JDOUserException should have been thrown
>     [java] Assertions A5.9-1 through A5.9-190 (StateTransitions) failed:
>     [java] StateTransitions: no transaction; current state 
> persistent-nontransactional
>     [java] detachCopy outside tx with NontransactionalRead=false; 
> JDOUserException should have been thrown
>     [java]
>     [java]      at org.apache.jdo.tck.JDO_Test.failOnError(JDO_Test.java:1103)
>     [java]      at 
> org.apache.jdo.tck.lifecycle.StateTransitions.test(StateTransitions.java:414)
>     [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:254)
>     [java]      at 
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:108)
>     [java]      at 
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:148)
>     [java]      at 
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to