Author: dwoods
Date: Wed Oct 13 16:06:14 2010
New Revision: 1022161
URL: http://svn.apache.org/viewvc?rev=1022161&view=rev
Log:
add closeEM() helper which handles open transactions before closing the EM
Modified:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
Modified:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java?rev=1022161&r1=1022160&r2=1022161&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
(original)
+++
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AbstractPersistenceTestCase.java
Wed Oct 13 16:06:14 2010
@@ -239,6 +239,23 @@ public abstract class AbstractPersistenc
}
/**
+ * Safely close the given EM
+ *
+ * @param em
+ * @return
+ */
+ protected boolean closeEM(EntityManager em) {
+ if (em == null || !em.isOpen()) {
+ return false;
+ }
+ if (em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
+ em.close();
+ return true;
+ }
+
+ /**
* Closes all open entity managers after first rolling back any open
transactions.
*/
protected void closeAllOpenEMs(EntityManagerFactory emf) {
@@ -249,10 +266,7 @@ public abstract class AbstractPersistenc
for (Broker b : ((AbstractBrokerFactory)
JPAFacadeHelper.toBrokerFactory(emf)).getOpenBrokers()) {
if (b != null && !b.isClosed()) {
EntityManager em = JPAFacadeHelper.toEntityManager(b);
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
+ closeEM(em);
}
}
}
@@ -327,10 +341,7 @@ public abstract class AbstractPersistenc
} catch (Exception e) {
// ignore
} finally {
- if (em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- em.close();
+ closeEM(em);
}
}