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);
}
}