[
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.