Index: lucene/src/java/org/apache/lucene/index/DocumentsWriter.java =================================================================== --- lucene/src/java/org/apache/lucene/index/DocumentsWriter.java (revision 1196227) +++ lucene/src/java/org/apache/lucene/index/DocumentsWriter.java (working copy) @@ -252,8 +252,14 @@ } boolean anyChanges() { - return numDocsInRAM.get() != 0 || anyDeletions(); + return numDocsInRAM.get() != 0 || anyDeletions() || !isFlushQueueEmpty(); } + + private boolean isFlushQueueEmpty() { + synchronized(ticketQueue) { + return ticketQueue.isEmpty(); + } + } public int getBufferedDeleteTermsSize() { return deleteQueue.getBufferedDeleteTermsSize(); @@ -470,8 +476,8 @@ // Keep publishing eligible flushed segments: final FlushTicket head = ticketQueue.peek(); if (head != null && head.canPublish()) { - ticketQueue.poll(); finishFlush(head.segment, head.frozenDeletes); + ticketQueue.poll(); } else { break; }