[hibernate-commits] Hibernate SVN: r19290 - search/trunk/hibernate-search/src/main/java/org/hibernate/search/backend/impl/lucene.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Sun Apr 25 06:49:37 EDT 2010


Author: sannegrinovero
Date: 2010-04-25 06:49:36 -0400 (Sun, 25 Apr 2010)
New Revision: 19290

Modified:
   search/trunk/hibernate-search/src/main/java/org/hibernate/search/backend/impl/lucene/PerDPResources.java
Log:
HSEARCH-516 Lucene Directories might be closed before the backend finished all tasks on shutdown

Modified: search/trunk/hibernate-search/src/main/java/org/hibernate/search/backend/impl/lucene/PerDPResources.java
===================================================================
--- search/trunk/hibernate-search/src/main/java/org/hibernate/search/backend/impl/lucene/PerDPResources.java	2010-04-24 10:08:27 UTC (rev 19289)
+++ search/trunk/hibernate-search/src/main/java/org/hibernate/search/backend/impl/lucene/PerDPResources.java	2010-04-25 10:49:36 UTC (rev 19290)
@@ -30,8 +30,11 @@
 import org.hibernate.search.engine.SearchFactoryImplementor;
 import org.hibernate.search.exception.ErrorHandler;
 import org.hibernate.search.store.DirectoryProvider;
+import org.hibernate.search.util.LoggerFactory;
+import org.slf4j.Logger;
 
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
 
 /**
  * Collects all resources needed to apply changes to one index,
@@ -41,6 +44,8 @@
  */
 class PerDPResources {
 	
+	private static final Logger log = LoggerFactory.make();
+	
 	private final ExecutorService executor;
 	private final LuceneWorkVisitor visitor;
 	private final Workspace workspace;
@@ -77,6 +82,12 @@
 			executor.execute( new CloseIndexRunnable( workspace ) );
 		}
 		executor.shutdown();
+		try {
+			executor.awaitTermination( Long.MAX_VALUE, TimeUnit.SECONDS );
+		}
+		catch (InterruptedException e) {
+			log.warn( "Was interrupted while waiting for index activity to finish. Index might be inconsistent or have a stale lock" );
+		}
 	}
 
 	public ErrorHandler getErrorHandler() {



More information about the hibernate-commits mailing list