You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by "Michelle Caisse (JIRA)" <ji...@apache.org> on 2005/09/22 00:38:28 UTC
[jira] Closed: (JDO-62) Test MakePersistentAndInstancesNotReachable fails. Instances not reachable at commit need to transition to transient.
[ http://issues.apache.org/jira/browse/JDO-62?page=all ]
Michelle Caisse closed JDO-62:
------------------------------
Resolution: Fixed
Verified fixed.
> Test MakePersistentAndInstancesNotReachable fails. Instances not reachable at commit need to transition to transient.
> ---------------------------------------------------------------------------------------------------------------------
>
> Key: JDO-62
> URL: http://issues.apache.org/jira/browse/JDO-62
> Project: JDO
> Type: Bug
> Components: tck20
> Environment: JPOX
> Reporter: Craig Russell
> Assignee: Erik Bengtson
>
> This test checks that provisionally persistent instances revert to transient if at commit they are no longer reachable from a persistent instance.
> public void test() {
> pm = getPM();
> createObjects(pm);
> runTest(pm);
> }
> /** */
> private void createObjects(PersistenceManager pm) {
> Transaction tx = pm.currentTransaction();
> tx.begin();
> Company comp = new Company(1L, "Sun Microsystems", new Date(), new Address(0,"","","","",""));
> //Add transient departments
> dep1 = new Department(1L, "Department 1");
> dep2 = new Department(2L, "Department 1");
> dep3 = new Department(3L, "Department 1");
> comp.addDepartment(dep1);
> comp.addDepartment(dep2);
> comp.addDepartment(dep3);
> pm.makePersistent(comp); //Now the transient departments should be made provisionally persistent via reachability
> int curr = currentState(dep1);
> if( curr != PERSISTENT_NEW ){
> fail(ASSERTION_FAILED, "dep1 should be persistent-new, state is " + states[curr]);
> }
> curr = currentState(dep2);
> if( curr != PERSISTENT_NEW ){
> fail(ASSERTION_FAILED, "dep2 should be persistent-new, state is " + states[curr]);
> }
> curr = currentState(dep3);
> if( curr != PERSISTENT_NEW ){
> fail(ASSERTION_FAILED, "dep3 should be persistent-new, state is " + states[curr]);
> }
> //Remove departments
> comp.removeDepartment(dep1);
> comp.removeDepartment(dep2);
> comp.removeDepartment(dep3);
> tx.commit(); //Now the removed departments should be made transient again
> }
> /** */
> void runTest(PersistenceManager pm) {
> int curr = currentState(dep1);
> if( curr != TRANSIENT ){
> fail(ASSERTION_FAILED, "dep1 should be transient, state is " + states[curr]);
> }
> curr = currentState(dep2);
> if( curr != TRANSIENT ){
> fail(ASSERTION_FAILED, "dep2 should be transient, state is " + states[curr]);
> }
> curr = currentState(dep3);
> if( curr != TRANSIENT ){
> fail(ASSERTION_FAILED, "dep3 should be transient, state is " + states[curr]);
> }
> }
> [DEBUG] tck - Free memory: 14194616
> [java] [DEBUG] tck - dep1 should be transient, state is hollow
> [java] [ERROR] tck - Exception during setUp or runtest: <junit.framework.AssertionFailedError: Assertion A12.5.7-6C (MakePersistentAndInstancesNotReachable) failed:
> [java] dep1 should be transient, state is hollow>junit.framework.AssertionFailedError: Assertion A12.5.7-6C (MakePersistentAndInstancesNotReachable) failed:
> [java] dep1 should be transient, state is hollow
> [java] at junit.framework.Assert.fail(Assert.java:47)
> [java] at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:510)
> [java] at org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable.runTest(MakePersistentAndInstancesNotReachable.java:112)
> [java] at org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable.test(MakePersistentAndInstancesNotReachable.java:73)
> [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 java.lang.reflect.Method.invoke(Method.java:324)
> [java] at junit.framework.TestCase.runTest(TestCase.java:154)
> [java] at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:181)
> [java] at junit.framework.TestResult$1.protect(TestResult.java:106)
> [java] at junit.framework.TestResult.runProtected(TestResult.java:124)
> [java] at junit.framework.TestResult.run(TestResult.java:109)
> [java] at junit.framework.TestCase.run(TestCase.java:118)
> [java] at junit.framework.TestSuite.runTest(TestSuite.java:208)
> [java] at junit.framework.TestSuite.run(TestSuite.java:203)
> [java] at junit.framework.TestSuite.runTest(TestSuite.java:208)
> [java] at junit.framework.TestSuite.run(TestSuite.java:203)
> [java] at junit.textui.TestRunner.doRun(TestRunner.java:116)
> [java] at junit.textui.TestRunner.doRun(TestRunner.java:109)
> [java] at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:112)
> [java] at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:90)
> [java]
> [java] [DEBUG] tck - Free memory: 12800800
> [java] RUN MakePersistentAndInstancesNotReachable.test FAILURE
--
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