You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2013/12/20 17:04:55 UTC

svn commit: r1552710 - in /lucene/dev/trunk/lucene: CHANGES.txt core/src/java/org/apache/lucene/index/IndexWriter.java

Author: simonw
Date: Fri Dec 20 16:04:55 2013
New Revision: 1552710

URL: http://svn.apache.org/r1552710
Log:
LUCENE-5374: Call IW#processEvents before IndexWriter is closed

Modified:
    lucene/dev/trunk/lucene/CHANGES.txt
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java

Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1552710&r1=1552709&r2=1552710&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Fri Dec 20 16:04:55 2013
@@ -104,6 +104,12 @@ Bug fixes
 * LUCENE-5285: Improved highlighting of multi-valued fields with
   FastVectorHighlighter. (Nik Everett via Adrien Grand)
 
+* LUCENE-5374: IndexWriter processes internal events after the it
+  closed itself internally. This rare condition can happen if an
+  IndexWriter has internal changes that were not fully applied yet
+  like when index / flush requests happen concurrently to the close or
+  rollback call. (Simon Willnauer)
+
 Changes in Runtime Behavior
 
 * LUCENE-5362: IndexReader and SegmentCoreReaders now throw 

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1552710&r1=1552709&r2=1552710&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Fri Dec 20 16:04:55 2013
@@ -1028,7 +1028,7 @@ public class IndexWriter implements Clos
       if (doFlush) {
         commitInternal();
       }
-
+      processEvents(false, true);
       synchronized(this) {
         // commitInternal calls ReaderPool.commit, which
         // writes any pending liveDocs from ReaderPool, so
@@ -1063,7 +1063,6 @@ public class IndexWriter implements Clos
       }
       // finally, restore interrupt status:
       if (interrupted) Thread.currentThread().interrupt();
-      processEvents(false, true);
     }
   }