Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/NonpersistentSuperClass.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/NonpersistentSuperClass.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/NonpersistentSuperClass.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/NonpersistentSuperClass.java Mon Jun 27 15:49:40 2005 @@ -24,6 +24,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.inheritance.Constants; import org.apache.jdo.tck.pc.inheritance.TopNonPersistH; import org.apache.jdo.tck.util.BatchTestRunner; @@ -55,6 +56,13 @@ BatchTestRunner.run(NonpersistentSuperClass.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(TopNonPersistH.class); + } + /** */ public void test() { pm = getPM(); @@ -72,9 +80,6 @@ try { t.setRestoreValues(true); - t.begin(); - removeAllInstances(pm); // always start fresh with no instances - t.commit(); t.begin(); TopNonPersistH refa = new TopNonPersistH(Constants.intA_V[1], Constants.doubleB_V[1], Constants.intB_V[1], Constants.charC_V[1], Constants.booleanD_V[1], Constants.floatE_V[1], Constants.shortF_V[1], Constants.shortG_V[1], Constants.intH_V[1]); pm.makePersistent(refa); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/PersistenceCapableFlexibilityInInheritanceHierarchy.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/PersistenceCapableFlexibilityInInheritanceHierarchy.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/PersistenceCapableFlexibilityInInheritanceHierarchy.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/PersistenceCapableFlexibilityInInheritanceHierarchy.java Mon Jun 27 15:49:40 2005 @@ -24,8 +24,8 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.inheritance.Constants; -import org.apache.jdo.tck.pc.inheritance.TopNonPersistH; import org.apache.jdo.tck.pc.inheritance.TopPersistH; import org.apache.jdo.tck.util.BatchTestRunner; @@ -59,6 +59,13 @@ BatchTestRunner.run(PersistenceCapableFlexibilityInInheritanceHierarchy.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(TopPersistH.class); + } + /** */ public void test() { pm = getPM(); @@ -77,9 +84,6 @@ t.setRestoreValues(true); t.begin(); - removeAllInstances(pm); // always start fresh with no instances - t.commit(); - t.begin(); TopPersistH refa = new TopPersistH(Constants.intA_V[1], Constants.doubleB_V[1], Constants.intB_V[1], Constants.charC_V[1], Constants.booleanD_V[1], Constants.floatE_V[1], Constants.shortF_V[1], Constants.shortG_V[1], Constants.intH_V[1]); pm.makePersistent(refa); Object objPtrA = pm.getObjectId(refa); @@ -218,7 +222,7 @@ void removeAllInstances(PersistenceManager pm) { - Extent e = pm.getExtent(TopNonPersistH.class, true); + Extent e = pm.getExtent(TopPersistH.class, true); Iterator i = e.iterator(); while( i.hasNext() ){ pm.deletePersistent(i.next()); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/PersistentFieldsArePersistentInSubClasses.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/PersistentFieldsArePersistentInSubClasses.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/PersistentFieldsArePersistentInSubClasses.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/PersistentFieldsArePersistentInSubClasses.java Mon Jun 27 15:49:40 2005 @@ -24,6 +24,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.inheritance.AllPersist4; import org.apache.jdo.tck.pc.inheritance.Constants; import org.apache.jdo.tck.util.BatchTestRunner; @@ -56,6 +57,13 @@ BatchTestRunner.run(PersistentFieldsArePersistentInSubClasses.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(AllPersist4.class); + } + /** */ public void test() { pm = getPM(); @@ -73,9 +81,6 @@ try { t.setRestoreValues(true); - t.begin(); - removeAllInstances(pm); // always start fresh with no instances - t.commit(); t.begin(); AllPersist4 refa = new AllPersist4(Constants.intA_V[1], Constants.doubleB_V[1], Constants.intB_V[1], Constants.charC_V[1], Constants.booleanD_V[1], Constants.floatE_V[1], Constants.shortF_V[1], Constants.shortG_V[1], Constants.intH_V[1]); pm.makePersistent(refa); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/TransactionalFieldsAreTransactionalInSubclasses.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/TransactionalFieldsAreTransactionalInSubclasses.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/TransactionalFieldsAreTransactionalInSubclasses.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/models/inheritance/TransactionalFieldsAreTransactionalInSubclasses.java Mon Jun 27 15:49:40 2005 @@ -23,6 +23,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.inheritance.AllPersist4; import org.apache.jdo.tck.pc.inheritance.Constants; import org.apache.jdo.tck.util.BatchTestRunner; @@ -55,6 +56,13 @@ BatchTestRunner.run(TransactionalFieldsAreTransactionalInSubclasses.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(AllPersist4.class); + } + /** */ public void test() { pm = getPM(); @@ -72,9 +80,6 @@ try { t.setRestoreValues(true); - t.begin(); - removeAllInstances(pm); // always start fresh with no instances - t.commit(); t.begin(); // create new objects and make persistent AllPersist4 c = new AllPersist4(Constants.intA_V[8], Constants.doubleB_V[8], Constants.intB_V[8], Constants.charC_V[8], Constants.booleanD_V[8], Constants.floatE_V[8], Constants.shortF_V[8], Constants.shortG_V[8], Constants.intH_V[8]); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/pc/company/CompanyModelReader.java Mon Jun 27 15:49:40 2005 @@ -44,7 +44,16 @@ Address.class, Company.class, DentalInsurance.class, Department.class, Employee.class, FullTimeEmployee.class, Insurance.class, - MedicalInsurance.class, Person.class, Project.class + MedicalInsurance.class, PartTimeEmployee.class, Person.class, + Project.class + }; + + /** All classes in the model + */ + private static final Class[] tearDownClasses = new Class[] { + DentalInsurance.class, MedicalInsurance.class, + Person.class, Employee.class, PartTimeEmployee.class, FullTimeEmployee.class, + Project.class, Department.class, Company.class }; /** @@ -225,5 +234,11 @@ return allClasses; } + /** + * @return Returns the tearDownClasses. + */ + public Class[] getTearDownClasses() { + return tearDownClasses; + } } Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/IgnoreCacheFalse.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/IgnoreCacheFalse.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/IgnoreCacheFalse.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/IgnoreCacheFalse.java Mon Jun 27 15:49:40 2005 @@ -23,6 +23,7 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; +import org.apache.jdo.tck.JDO_Test; import org.apache.jdo.tck.pc.mylib.PrimitiveTypes; import org.apache.jdo.tck.util.BatchTestRunner; @@ -60,6 +61,14 @@ BatchTestRunner.run(IgnoreCacheFalse.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + super.localSetUp(); + addTearDownClass(PrimitiveTypes.class); + } + /** */ public void test() { pm = getPM(); @@ -73,7 +82,6 @@ runTestModifiedInstance(pm); } finally { - cleanupDatabase(pm, PrimitiveTypes.class); pm.close(); pm = null; } Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/QueryTest.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/QueryTest.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/QueryTest.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/query/QueryTest.java Mon Jun 27 15:49:40 2005 @@ -25,9 +25,9 @@ import java.util.List; import java.util.Map; -import javax.jdo.PersistenceManager; import javax.jdo.Extent; import javax.jdo.JDOFatalInternalException; +import javax.jdo.PersistenceManager; import javax.jdo.Query; import javax.jdo.Transaction; @@ -53,6 +53,13 @@ protected List inserted = new ArrayList(); // Helper methods to create persistent PCPoint instances + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } /** */ public void initDatabase(PersistenceManager pm, Class cls){ Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/AfterCompletionMethodCalledWhenCommitted.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/AfterCompletionMethodCalledWhenCommitted.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/AfterCompletionMethodCalledWhenCommitted.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/AfterCompletionMethodCalledWhenCommitted.java Mon Jun 27 15:49:40 2005 @@ -18,7 +18,6 @@ import javax.jdo.PersistenceManager; import javax.jdo.Transaction; - import javax.transaction.Status; import javax.transaction.Synchronization; @@ -66,6 +65,13 @@ public static void main(String[] args) { BatchTestRunner.run(AfterCompletionMethodCalledWhenCommitted.class); } + + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } /** */ public void test() { Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/AfterCompletionMethodCalledWhenRolledback.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/AfterCompletionMethodCalledWhenRolledback.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/AfterCompletionMethodCalledWhenRolledback.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/AfterCompletionMethodCalledWhenRolledback.java Mon Jun 27 15:49:40 2005 @@ -67,6 +67,13 @@ BatchTestRunner.run(AfterCompletionMethodCalledWhenRolledback.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } + /** */ public void test() { pm = getPM(); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/BeforeCompletionMethodCalled.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/BeforeCompletionMethodCalled.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/BeforeCompletionMethodCalled.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/BeforeCompletionMethodCalled.java Mon Jun 27 15:49:40 2005 @@ -68,6 +68,13 @@ BatchTestRunner.run(BeforeCompletionMethodCalled.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } + /** */ public void test() { pm = getPM(); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/BeforeCompletionMethodNotCalledBeforeRollback.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/BeforeCompletionMethodNotCalledBeforeRollback.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/BeforeCompletionMethodNotCalledBeforeRollback.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/BeforeCompletionMethodNotCalledBeforeRollback.java Mon Jun 27 15:49:40 2005 @@ -64,6 +64,13 @@ BatchTestRunner.run(BeforeCompletionMethodNotCalledBeforeRollback.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } + /** */ public void test() { pm = getPM(); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/Commit.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/Commit.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/Commit.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/Commit.java Mon Jun 27 15:49:40 2005 @@ -75,6 +75,13 @@ BatchTestRunner.run(Commit.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } + /** */ public void test() { pm = getPM(); @@ -110,7 +117,6 @@ try { tx.begin(); PCPoint p1 = new PCPoint(1,3); - addTearDownInstance((Object)p1); pm.makePersistent(p1); if (!JDOHelper.isDirty(p1)) { fail(ASSERTION_FAILED, Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/GetPersistenceManager.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/GetPersistenceManager.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/GetPersistenceManager.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/GetPersistenceManager.java Mon Jun 27 15:49:40 2005 @@ -59,6 +59,13 @@ BatchTestRunner.run(GetPersistenceManager.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } + /** */ public void test() { pm = getPM(); @@ -75,7 +82,6 @@ try { tx.begin(); PCPoint p1 = new PCPoint(1,3); - addTearDownInstance((Object)p1); pm.makePersistent(p1); PersistenceManager pm1 = tx.getPersistenceManager(); tx.commit(); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/GetSynchronization.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/GetSynchronization.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/GetSynchronization.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/GetSynchronization.java Mon Jun 27 15:49:40 2005 @@ -64,6 +64,13 @@ BatchTestRunner.run(GetSynchronization.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } + /** */ public void beforeCompletion(){ try { @@ -106,7 +113,6 @@ try { tx.begin(); PCPoint p1 = new PCPoint(1,3); - addTearDownInstance((Object)p1); pm.makePersistent(p1); tx.setSynchronization(this); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/IsActiveUntilAfterCompletionMethodCalled.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/IsActiveUntilAfterCompletionMethodCalled.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/IsActiveUntilAfterCompletionMethodCalled.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/IsActiveUntilAfterCompletionMethodCalled.java Mon Jun 27 15:49:40 2005 @@ -63,6 +63,13 @@ BatchTestRunner.run(IsActiveUntilAfterCompletionMethodCalled.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } + /** */ public void beforeCompletion() { try { @@ -107,7 +114,6 @@ try { tx.begin(); PCPoint p1 = new PCPoint(1,3); - addTearDownInstance((Object)p1); pm.makePersistent(p1); tx.setSynchronization(this); if (!tx.isActive()) { Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/Rollback.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/Rollback.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/Rollback.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/Rollback.java Mon Jun 27 15:49:40 2005 @@ -76,6 +76,13 @@ BatchTestRunner.run(BoundParameterCheck.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(PCPoint.class); + } + /** */ public void beforeCompletion(){ beforeCompletionCalled = true; @@ -111,7 +118,6 @@ try { tx.begin(); PCPoint p1 = new PCPoint(1,3); - addTearDownInstance((Object)p1); pm.makePersistent(p1); tx.commit(); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/SetNontransactionalRead.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/SetNontransactionalRead.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/SetNontransactionalRead.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/SetNontransactionalRead.java Mon Jun 27 15:49:40 2005 @@ -67,6 +67,14 @@ BatchTestRunner.run(SetNontransactionalRead.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(Department.class); + addTearDownClass(Company.class); + } + /** */ public void test() { pm = getPM(); @@ -91,8 +99,6 @@ tx.begin(); Company c = new Company(1L, "MyCompany", new Date(), null); Department d = new Department(999, "MyDepartment", c); - addTearDownInstance((Object)c); - addTearDownInstance((Object)d); pm.makePersistent(c); pm.makePersistent(d); Object oid = pm.getObjectId(d); Modified: incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/WhenNontransactionalReadIsFalse.java URL: http://svn.apache.org/viewcvs/incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/WhenNontransactionalReadIsFalse.java?rev=202089&r1=202088&r2=202089&view=diff ============================================================================== --- incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/WhenNontransactionalReadIsFalse.java (original) +++ incubator/jdo/trunk/tck20/test/java/org/apache/jdo/tck/transactions/WhenNontransactionalReadIsFalse.java Mon Jun 27 15:49:40 2005 @@ -65,6 +65,14 @@ BatchTestRunner.run(WhenNontransactionalReadIsFalse.class); } + /** + * @see JDO_Test#localSetUp() + */ + protected void localSetUp() { + addTearDownClass(Department.class); + addTearDownClass(Company.class); + } + /** */ public void test() { pm = getPM(); @@ -83,8 +91,6 @@ tx.begin(); Company c = new Company(1L, "MyCompany", new Date(), null); Department d = new Department(999, "MyDepartment", c); - addTearDownInstance((Object)c); - addTearDownInstance((Object)d); pm.makePersistent(c); pm.makePersistent(d);