close merge readers before checkpoint, so IFD can delete the files

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1236357 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Michael McCandless 2012-01-26 19:30:17 +00:00
parent 51c97efbe8
commit 961f3f1dff

View File

@ -3183,6 +3183,11 @@ public class IndexWriter implements Closeable, TwoPhaseCommit {
}
}
// 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 Closeable, TwoPhaseCommit {
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 Closeable, TwoPhaseCommit {
/** @lucene.internal */
public synchronized String segString(SegmentInfo info) throws IOException {
StringBuilder buffer = new StringBuilder();
return info.toString(info.dir, numDeletedDocs(info) - info.getDelCount());
}