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/10/08 00:39:06 UTC
svn commit: r1395403 - in
/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index:
IndexWriter.java SegmentInfos.java
Author: mikemccand
Date: Sun Oct 7 22:39:05 2012
New Revision: 1395403
URL: http://svn.apache.org/viewvc?rev=1395403&view=rev
Log:
also rollback commit if SegmentInfos.files(..) throws exc; delete segments file one exc during finishCommit
Modified:
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
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=1395403&r1=1395402&r2=1395403&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 Sun Oct 7 22:39:05 2012
@@ -4030,10 +4030,11 @@ public class IndexWriter implements Clos
}
// This call can take a long time -- 10s of seconds
- // or more. We do it without sync:
+ // or more. We do it without syncing on this:
boolean success = false;
- final Collection<String> filesToSync = toSync.files(directory, false);
+ final Collection<String> filesToSync;
try {
+ filesToSync = toSync.files(directory, false);
directory.sync(filesToSync);
success = true;
} finally {
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java?rev=1395403&r1=1395402&r2=1395403&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/SegmentInfos.java Sun Oct 7 22:39:05 2012
@@ -804,7 +804,7 @@ public final class SegmentInfos implemen
success = true;
} finally {
if (!success) {
- IOUtils.closeWhileHandlingException(pendingSegnOutput);
+ // Closes pendingSegnOutput & deletes partial segments_N:
rollbackCommit(dir);
} else {
success = false;
@@ -813,12 +813,11 @@ public final class SegmentInfos implemen
success = true;
} finally {
if (!success) {
- final String segmentFileName = IndexFileNames.fileNameFromGeneration(IndexFileNames.SEGMENTS,
- "",
- generation);
- IOUtils.deleteFilesIgnoringExceptions(dir, segmentFileName);
+ // Closes pendingSegnOutput & deletes partial segments_N:
+ rollbackCommit(dir);
+ } else {
+ pendingSegnOutput = null;
}
- pendingSegnOutput = null;
}
}
}