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/02 21:44:03 UTC

svn commit: r1393135 - in /lucene/dev/branches/lucene4456/lucene: codecs/src/java/org/apache/lucene/codecs/simpletext/ core/src/java/org/apache/lucene/index/ test-framework/src/java/org/apache/lucene/store/

Author: mikemccand
Date: Tue Oct  2 19:44:02 2012
New Revision: 1393135

URL: http://svn.apache.org/viewvc?rev=1393135&view=rev
Log:
LUCENE-4456: delete files on exc in addIndexes

Modified:
    lucene/dev/branches/lucene4456/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesConsumer.java
    lucene/dev/branches/lucene4456/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
    lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java

Modified: lucene/dev/branches/lucene4456/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesConsumer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4456/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesConsumer.java?rev=1393135&r1=1393134&r2=1393135&view=diff
==============================================================================
--- lucene/dev/branches/lucene4456/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesConsumer.java (original)
+++ lucene/dev/branches/lucene4456/lucene/codecs/src/java/org/apache/lucene/codecs/simpletext/SimpleTextDocValuesConsumer.java Tue Oct  2 19:44:02 2012
@@ -198,6 +198,7 @@ public class SimpleTextDocValuesConsumer
         IOUtils.close(output);
       } else {
         IOUtils.closeWhileHandlingException(output);
+        dir.deleteFile(fileName);
       }
     }
   }

Modified: lucene/dev/branches/lucene4456/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4456/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java?rev=1393135&r1=1393134&r2=1393135&view=diff
==============================================================================
--- lucene/dev/branches/lucene4456/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/lucene4456/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java Tue Oct  2 19:44:02 2012
@@ -2484,12 +2484,14 @@ public class IndexWriter implements Clos
       // Now create the compound file if needed
       if (useCompoundFile) {
         Collection<String> filesToDelete = infoPerCommit.files();
-        createCompoundFile(infoStream, directory, MergeState.CheckAbort.NONE, info, context);
-
-        // delete new non cfs files directly: they were never
-        // registered with IFD
-        synchronized(this) {
-          deleter.deleteNewFiles(filesToDelete);
+        try{
+          createCompoundFile(infoStream, directory, MergeState.CheckAbort.NONE, info, context);
+        } finally {
+          // delete new non cfs files directly: they were never
+          // registered with IFD
+          synchronized(this) {
+            deleter.deleteNewFiles(filesToDelete);
+          }
         }
         info.setUseCompoundFile(true);
       }
@@ -2498,7 +2500,18 @@ public class IndexWriter implements Clos
       // creating CFS so that 1) .si isn't slurped into CFS,
       // and 2) .si reflects useCompoundFile=true change
       // above:
-      codec.segmentInfoFormat().getSegmentInfoWriter().write(trackingDir, info, mergeState.fieldInfos, context);
+      success = false;
+      try {
+        codec.segmentInfoFormat().getSegmentInfoWriter().write(trackingDir, info, mergeState.fieldInfos, context);
+        success = true;
+      } finally {
+        if (!success) {
+          synchronized(this) {
+            deleter.refresh(info.name);
+          }
+        }
+      }
+
       info.addFiles(trackingDir.getCreatedFiles());
 
       // Register the new segment

Modified: lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java?rev=1393135&r1=1393134&r2=1393135&view=diff
==============================================================================
--- lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java (original)
+++ lucene/dev/branches/lucene4456/lucene/test-framework/src/java/org/apache/lucene/store/MockDirectoryWrapper.java Tue Oct  2 19:44:02 2012
@@ -626,11 +626,11 @@ public class MockDirectoryWrapper extend
             }
 
             if (added.size() != 0) {
-              if (extras.length() != 0) {
-                extras += "\n\n";
-              }
-              extras += "These files were added (waaaaaaaaaat!): " + added;
-              extras += " These files we had previously tried to delete, but couldn't: " + pendingDeletions;
+              extras += "\n\nThese files were added (waaaaaaaaaat!): " + added;
+            }
+
+            if (pendingDeletions.size() != 0) {
+              extras += "\n\nThese files we had previously tried to delete, but couldn't: " + pendingDeletions;
             }
              
             assert false : "unreferenced files: before delete:\n    " + Arrays.toString(startFiles) + "\n  after delete:\n    " + Arrays.toString(endFiles) + extras;