You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2012/01/26 20:30:17 UTC

svn commit: r1236357 - /lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java

Author: mikemccand
Date: Thu Jan 26 19:30:17 2012
New Revision: 1236357

URL: http://svn.apache.org/viewvc?rev=1236357&view=rev
Log:
close merge readers before checkpoint, so IFD can delete the files

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

Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1236357&r1=1236356&r2=1236357&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/IndexWriter.java Thu Jan 26 19:30:17 2012
@@ -3182,7 +3182,12 @@ public class IndexWriter implements Clos
         readerPool.drop(merge.info);
       }
     }
-    
+
+    // Must close before checkpoint, otherwise IFD won't be
+    // able to delete the held-open files from the merge
+    // readers:
+    closeMergeReaders(merge, false);
+
     // Must note the change to segmentInfos so any commits
     // in-flight don't lose it:
     checkpoint();
@@ -3191,8 +3196,6 @@ public class IndexWriter implements Clos
       infoStream.message("IW", "after commit: " + segString());
     }
 
-    closeMergeReaders(merge, false);
-
     if (merge.maxNumSegments != -1 && !dropSegment) {
       // cascade the forceMerge:
       if (!segmentsToMerge.containsKey(merge.info)) {
@@ -3784,7 +3787,6 @@ public class IndexWriter implements Clos
 
   /** @lucene.internal */
   public synchronized String segString(SegmentInfo info) throws IOException {
-    StringBuilder buffer = new StringBuilder();
     return info.toString(info.dir, numDeletedDocs(info) - info.getDelCount());
   }