From e398f4e930978b42d8edde852cb890bf14304f26 Mon Sep 17 00:00:00 2001 From: Michael McCandless Date: Thu, 4 Sep 2008 11:14:04 +0000 Subject: [PATCH] LUCENE-1376: catch BG merge exceptions even if all merges finish before FG thread (running optimize) advances to while loop git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@691964 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/lucene/index/IndexWriter.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/java/org/apache/lucene/index/IndexWriter.java b/src/java/org/apache/lucene/index/IndexWriter.java index 7e1bf262d6f..fc88fd49c40 100644 --- a/src/java/org/apache/lucene/index/IndexWriter.java +++ b/src/java/org/apache/lucene/index/IndexWriter.java @@ -2333,9 +2333,7 @@ public class IndexWriter { if (doWait) { synchronized(this) { - while(optimizeMergesPending()) { - doWait(); - + while(true) { if (mergeExceptions.size() > 0) { // Forward any exceptions in background merge // threads to the current thread: @@ -2351,6 +2349,11 @@ public class IndexWriter { } } } + + if (optimizeMergesPending()) + doWait(); + else + break; } }