Index: src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java =================================================================== --- src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java (revision 1037097) +++ src/java/org/apache/jdo/tck/mapping/AbstractRelationshipTest.java (working copy) @@ -18,12 +18,15 @@ package org.apache.jdo.tck.mapping; import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; import java.util.List; import org.apache.jdo.tck.AbstractReaderTest; import org.apache.jdo.tck.pc.company.CompanyFactoryRegistry; import org.apache.jdo.tck.pc.company.CompanyModelReader; +import org.apache.jdo.tck.pc.company.Employee; +import org.apache.jdo.tck.pc.company.Project; /* * Abstract class for managed relationship tests @@ -72,4 +75,22 @@ } } + protected boolean containsEmployee(Collection employees, long empid) { + for (Employee emp: employees) { + if (emp.getPersonid() == empid) { + return true; + } + } + return false; + } + + protected boolean containsProject(Collection projects, long projid) { + for (Project project: projects) { + if (project.getProjid() == projid) { + return true; + } + } + return false; + } + } Index: src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java =================================================================== --- src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java (revision 1037097) +++ src/java/org/apache/jdo/tck/mapping/Relationship1ToManyAllRelationships.java (working copy) @@ -409,21 +409,14 @@ public void testDeleteFromMappedSide() { testMethod = "testDeleteFromMappedSide"; if (isTestToBePerformed) { + // remember id + long emp1Id = emp1.getPersonid(); // Set relationship pm.deletePersistent(emp1); pm.flush(); // Postcondition - boolean contained = false; - Iterator iter = dept1.getEmployees().iterator(); - while (iter.hasNext()) { - Object elem = iter.next(); - if (JDOHelper.getObjectId(elem).equals(emp1)) { - contained = true; - break; - } - } - deferredAssertTrue(!contained, + deferredAssertTrue(!containsEmployee(dept1.getEmployees(), emp1Id), ASSERTION_FAILED + testMethod, "Postcondition is false; " + "other side of relationship not set on flush"); @@ -434,7 +427,7 @@ pm.currentTransaction().begin(); dept1 = (Department)pm.getObjectById(dept1Oid); deferredAssertTrue( - !dept1.getEmployees().contains(emp1), + !containsEmployee(dept1.getEmployees(), emp1Id), ASSERTION_FAILED + testMethod, "In new transaction, postcondition is false; " + "other side of relationship is not set."); Index: src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java =================================================================== --- src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java (revision 1037097) +++ src/java/org/apache/jdo/tck/mapping/RelationshipManyToManyAllRelationships.java (working copy) @@ -162,7 +162,7 @@ IEmployee empNew = new FullTimeEmployee(100, "Jerry", "Valentine", "Brown", new Date(500L), new Date(10000L), 125000); pm.makePersistent(empNew); - Set members = new HashSet(); + Set members = new HashSet(); members.add(empNew); proj1.setMembers(members); Object empNewOid = pm.getObjectId((Object)empNew); @@ -201,7 +201,7 @@ IProject projNew = new Project(99L, "Skunkworks", new BigDecimal(10000.35)); pm.makePersistent(projNew); - Set projects = new HashSet(); + Set projects = new HashSet(); projects.add(projNew); emp1.setProjects(projects); Object projNewOid = pm.getObjectId((Object)projNew); @@ -438,12 +438,14 @@ public void testDeleteFromMappedSide() { testMethod = "testDeleteFromMappedSide"; if (isTestToBePerformed) { + // remember id + long proj1Id = proj1.getProjid(); // Set relationship pm.deletePersistent(proj1); pm.flush(); // Postcondition - deferredAssertTrue(!emp1.getProjects().contains(proj1), + deferredAssertTrue(!containsProject(emp1.getProjects(), proj1Id), ASSERTION_FAILED + testMethod, "Postcondition is false; " + "other side of relationship not set on flush"); @@ -454,7 +456,7 @@ pm.currentTransaction().begin(); emp1 = (Employee)pm.getObjectById(emp1Oid); deferredAssertTrue( - !emp1.getProjects().contains(proj1), + !containsProject(emp1.getProjects(), proj1Id), ASSERTION_FAILED + testMethod, "In new transaction, postcondition is false; " + "other side of relationship is not set."); @@ -468,13 +470,14 @@ public void testDeleteFromMappedbySide() { testMethod = "testDeleteFromMappedbySide"; if (isTestToBePerformed) { - + // remember id + long emp1Id = emp1.getPersonid(); // Set relationship pm.deletePersistent(emp1); pm.flush(); // Postcondition - deferredAssertTrue(!proj1.getMembers().contains(emp1), + deferredAssertTrue(!containsEmployee(proj1.getMembers(), emp1Id), ASSERTION_FAILED + testMethod, "Postcondition is false; " + "other side of relationship not set on flush"); @@ -485,7 +488,7 @@ pm.currentTransaction().begin(); proj1 = (Project)pm.getObjectById(proj1Oid); deferredAssertTrue( - !proj1.getMembers().contains(emp1), + !containsEmployee(proj1.getMembers(), emp1Id), ASSERTION_FAILED + testMethod, "In new transaction, postcondition is false; " + "other side of relationship is not set.");