Index: src/java/org/apache/jdo/tck/query/jdoql/subqueries/NonCorrelatedSubqueries.java =================================================================== --- src/java/org/apache/jdo/tck/query/jdoql/subqueries/NonCorrelatedSubqueries.java (Revision 614545) +++ src/java/org/apache/jdo/tck/query/jdoql/subqueries/NonCorrelatedSubqueries.java (Arbeitskopie) @@ -86,7 +86,7 @@ false, null, expectedResult, true); // API query against memory model - List allEmployees = (List)pm.newQuery(Employee.class).execute(); + List allEmployees = getAllEmployees(pm); apiQuery.setCandidates(allEmployees); executeJDOQuery(ASSERTION_FAILED, apiQuery, singleStringJDOQL, false, null, expectedResult, true); @@ -123,7 +123,7 @@ false, new Object[]{hired}, expectedResult, true); // API query against memory model - List allEmployees = (List)pm.newQuery(Employee.class).execute(); + List allEmployees = getAllEmployees(pm); apiQuery.setCandidates(allEmployees); executeJDOQuery(ASSERTION_FAILED, apiQuery, singleStringJDOQL, false, null, expectedResult, true); Index: src/java/org/apache/jdo/tck/query/jdoql/subqueries/SubqueriesTest.java =================================================================== --- src/java/org/apache/jdo/tck/query/jdoql/subqueries/SubqueriesTest.java (Revision 614545) +++ src/java/org/apache/jdo/tck/query/jdoql/subqueries/SubqueriesTest.java (Arbeitskopie) @@ -17,7 +17,13 @@ package org.apache.jdo.tck.query.jdoql.subqueries; +import java.util.List; + +import javax.jdo.PersistenceManager; +import javax.jdo.Transaction; + import org.apache.jdo.tck.query.QueryTest; +import org.apache.jdo.tck.pc.company.Employee; /** * Superclass for all subquery test classes. @@ -35,4 +41,23 @@ protected String getCompanyTestDataResource() { return SUBQUERIES_TEST_COMPANY_TESTDATA; } + + /** + * Helper method retuning all Employee instances. + * @param pm the PersistenceManager + * @return a List including all persistent Employee instances + */ + protected List getAllEmployees(PersistenceManager pm) { + Transaction tx = pm.currentTransaction(); + try { + tx.begin(); + List allEmployees = (List)pm.newQuery(Employee.class).execute(); + tx.commit(); + return allEmployees; + } finally { + if ((tx != null) && tx.isActive()) { + tx.rollback(); + } + } + } } Index: src/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueries.java =================================================================== --- src/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueries.java (Revision 614545) +++ src/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueries.java (Arbeitskopie) @@ -78,7 +78,7 @@ false, null, expectedResult, true); // API query against memory model - List allEmployees = (List)pm.newQuery(Employee.class).execute(); + List allEmployees = getAllEmployees(pm); apiQuery.setCandidates(allEmployees); executeJDOQuery(ASSERTION_FAILED, apiQuery, singleStringJDOQL, false, null, expectedResult, true); Index: src/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueriesWithParameters.java =================================================================== --- src/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueriesWithParameters.java (Revision 614545) +++ src/java/org/apache/jdo/tck/query/jdoql/subqueries/CorrelatedSubqueriesWithParameters.java (Arbeitskopie) @@ -92,7 +92,7 @@ false, null, expectedResult, true); // API query against memory model - List allEmployees = (List)pm.newQuery(Employee.class).execute(); + List allEmployees = getAllEmployees(pm); apiQuery.setCandidates(allEmployees); executeJDOQuery(ASSERTION_FAILED, apiQuery, singleStringJDOQL, false, null, expectedResult, true); @@ -130,7 +130,7 @@ false, new Object[] {hired}, expectedResult, true); // API query against memory model - List allEmployees = (List)pm.newQuery(Employee.class).execute(); + List allEmployees = getAllEmployees(pm); apiQuery.setCandidates(allEmployees); executeJDOQuery(ASSERTION_FAILED, apiQuery, singleStringJDOQL, false, null, expectedResult, true); @@ -163,7 +163,7 @@ false, null, expectedResult, true); // API query against memory model - List allEmployees = (List)pm.newQuery(Employee.class).execute(); + List allEmployees = getAllEmployees(pm); apiQuery.setCandidates(allEmployees); executeJDOQuery(ASSERTION_FAILED, apiQuery, singleStringJDOQL, false, null, expectedResult, true);