From 543f3dd6233bfae7bc18aed6cb15cad96de599b7 Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Fri, 11 Apr 2014 14:53:04 +1000 Subject: [PATCH] Ensure that EntityManagers are closed in tests --- .../org/zanata/util/SampleProjectProfile.java | 28 +++++++++++-------- .../org/zanata/ZanataGroovyJpaTest.groovy | 3 ++ .../java/org/zanata/provider/JPAProvider.java | 3 ++ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/functional-test/src/main/java/org/zanata/util/SampleProjectProfile.java b/functional-test/src/main/java/org/zanata/util/SampleProjectProfile.java index 7ac46e64bb..35f38462e6 100644 --- a/functional-test/src/main/java/org/zanata/util/SampleProjectProfile.java +++ b/functional-test/src/main/java/org/zanata/util/SampleProjectProfile.java @@ -6,7 +6,8 @@ import org.hibernate.Session; import org.hibernate.search.FullTextSession; -import org.hibernate.search.Search; +import org.hibernate.search.jpa.FullTextEntityManager; +import org.hibernate.search.jpa.Search; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.In; @@ -104,17 +105,20 @@ public void deleteExceptEssentialData() { } private void purgeLuceneIndexes() { - FullTextSession fullTextSession = - Search.getFullTextSession((Session) entityManagerFactory - .createEntityManager().getDelegate()); - - fullTextSession.purgeAll(HAccount.class); - fullTextSession.purgeAll(HGlossaryEntry.class); - fullTextSession.purgeAll(HGlossaryTerm.class); - fullTextSession.purgeAll(HProject.class); - fullTextSession.purgeAll(HProjectIteration.class); - fullTextSession.purgeAll(TransMemoryUnit.class); - fullTextSession.purgeAll(HTextFlowTarget.class); + FullTextEntityManager em = + Search.getFullTextEntityManager( + entityManagerFactory.createEntityManager()); + try { + em.purgeAll(HAccount.class); + em.purgeAll(HGlossaryEntry.class); + em.purgeAll(HGlossaryTerm.class); + em.purgeAll(HProject.class); + em.purgeAll(HProjectIteration.class); + em.purgeAll(TransMemoryUnit.class); + em.purgeAll(HTextFlowTarget.class); + } finally { + em.close(); + } } public void makeSampleLanguages() { diff --git a/zanata-war/src/test/groovy/org/zanata/ZanataGroovyJpaTest.groovy b/zanata-war/src/test/groovy/org/zanata/ZanataGroovyJpaTest.groovy index fe7eca48fe..a7d2c905c4 100644 --- a/zanata-war/src/test/groovy/org/zanata/ZanataGroovyJpaTest.groovy +++ b/zanata-war/src/test/groovy/org/zanata/ZanataGroovyJpaTest.groovy @@ -76,6 +76,9 @@ abstract class ZanataGroovyJpaTest { public void shutdownEM() { log.debug("Shutting down EM"); em.getTransaction().rollback(); + if (em.isOpen()) { + em.close(); + } em = null; } diff --git a/zanata-war/src/test/java/org/zanata/provider/JPAProvider.java b/zanata-war/src/test/java/org/zanata/provider/JPAProvider.java index 66c8c663ea..cc354751de 100644 --- a/zanata-war/src/test/java/org/zanata/provider/JPAProvider.java +++ b/zanata-war/src/test/java/org/zanata/provider/JPAProvider.java @@ -52,6 +52,9 @@ public void shutdownEM() { log.debug("Shutting down EM"); clearHibernateSecondLevelCache(); em.getTransaction().rollback(); + if (em.isOpen()) { + em.close(); + } em = null; }