You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by dw...@apache.org on 2010/10/18 22:47:43 UTC
svn commit: r1024002 -
/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractCachedEMFTestCase.java
Author: dwoods
Date: Mon Oct 18 20:47:43 2010
New Revision: 1024002
URL: http://svn.apache.org/viewvc?rev=1024002&view=rev
Log:
help testcases cleanup EMs they created but didn't close
Modified:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractCachedEMFTestCase.java
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractCachedEMFTestCase.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractCachedEMFTestCase.java?rev=1024002&r1=1024001&r2=1024002&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractCachedEMFTestCase.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractCachedEMFTestCase.java Mon Oct 18 20:47:43 2010
@@ -18,9 +18,16 @@
*/
package org.apache.openjpa.persistence.test;
+import java.lang.reflect.Modifier;
import java.util.LinkedHashMap;
import java.util.Map;
+import javax.persistence.EntityManager;
+
+import org.apache.openjpa.kernel.AbstractBrokerFactory;
+import org.apache.openjpa.kernel.Broker;
+import org.apache.openjpa.meta.ClassMetaData;
+import org.apache.openjpa.persistence.JPAFacadeHelper;
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
/**
@@ -81,6 +88,19 @@ public abstract class AbstractCachedEMFT
// if the eldest should be removed, then try to close it first
if (oemf != null && oemf.isOpen()) {
try {
+ // same code as AbstractPersistenceTestCase.closeAllOpenEMs()
+ for (Broker b:((AbstractBrokerFactory)JPAFacadeHelper.toBrokerFactory(oemf)).getOpenBrokers()) {
+ if (b != null && !b.isClosed()) {
+ EntityManager em = JPAFacadeHelper.toEntityManager(b);
+ if (em == null || !em.isOpen()) {
+ continue;
+ }
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ }
+ }
oemf.close();
} catch (Exception e) {
// no-op - eat it