From d11a347477028904c5fb3d7541b0099098ffaf02 Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Mon, 20 Jul 2015 17:27:03 +1000 Subject: [PATCH] fix(search): rhbz1244612 close EntityManagerFactory at shutdown --- zanata-war/src/main/java/org/zanata/ZanataInit.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/zanata-war/src/main/java/org/zanata/ZanataInit.java b/zanata-war/src/main/java/org/zanata/ZanataInit.java index 42d8dfa97c..8bc0d243c9 100644 --- a/zanata-war/src/main/java/org/zanata/ZanataInit.java +++ b/zanata-war/src/main/java/org/zanata/ZanataInit.java @@ -50,6 +50,7 @@ import javax.naming.NameClassPair; import javax.naming.NamingEnumeration; import javax.naming.NamingException; +import javax.persistence.EntityManagerFactory; import javax.servlet.ServletContext; import lombok.extern.slf4j.Slf4j; @@ -58,6 +59,7 @@ import org.apache.maven.artifact.versioning.DefaultArtifactVersion; import org.jboss.seam.Component; import org.jboss.seam.ScopeType; +import org.jboss.seam.annotations.Destroy; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Observer; @@ -107,6 +109,9 @@ public class ZanataInit { @In("event") private Event startupEvent; + @In + private EntityManagerFactory entityManagerFactory; + @Observer("org.jboss.seam.postInitialization") public void initZanata() throws Exception { checkAppServerVersion(); @@ -179,6 +184,13 @@ public void initZanata() throws Exception { log.info("Started Zanata..."); } + @Destroy + private void destroy() { + // Tell Hibernate Search to clean up indexes and lock files + entityManagerFactory.close(); + } + + private void checkAppServerVersion() throws MalformedObjectNameException, AttributeNotFoundException, MBeanException, ReflectionException, InstanceNotFoundException {