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