You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by bu...@apache.org on 2011/02/23 08:29:02 UTC

svn commit: r1073625 - /lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java

Author: buschmi
Date: Wed Feb 23 07:29:02 2011
New Revision: 1073625

URL: http://svn.apache.org/viewvc?rev=1073625&view=rev
Log:
fix silly bug that crept in during last trunk merge

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

Modified: lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java?rev=1073625&r1=1073624&r2=1073625&view=diff
==============================================================================
--- lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/dev/branches/realtime_search/lucene/src/java/org/apache/lucene/index/IndexWriter.java Wed Feb 23 07:29:02 2011
@@ -2085,12 +2085,12 @@ public class IndexWriter implements Clos
 
     setDiagnostics(newSegment, "flush");
 
-    if (useCompoundFile(newSegment)) {
-      String compoundFileName = IndexFileNames.segmentFileName(newSegment.name, "", IndexFileNames.COMPOUND_FILE_EXTENSION);
-      message("creating compound file " + compoundFileName);
+    boolean success = false;
+    try {
+      if (useCompoundFile(newSegment)) {
+        String compoundFileName = IndexFileNames.segmentFileName(newSegment.name, "", IndexFileNames.COMPOUND_FILE_EXTENSION);
+        message("creating compound file " + compoundFileName);
       // Now build compound file
-      boolean success = false;
-      try {
         CompoundFileWriter cfsWriter = new CompoundFileWriter(directory, compoundFileName);
         for(String fileName : newSegment.files()) {
           cfsWriter.addFile(fileName);
@@ -2103,56 +2103,55 @@ public class IndexWriter implements Clos
         }
 
         newSegment.setUseCompoundFile(true);
+      }
 
-        // Must write deleted docs after the CFS so we don't
-        // slurp the del file into CFS:
-        if (deletedDocs != null) {
-          final int delCount = deletedDocs.count();
-          assert delCount > 0;
-          newSegment.setDelCount(delCount);
-          newSegment.advanceDelGen();
-          final String delFileName = newSegment.getDelFileName();
-          if (infoStream != null) {
-            message("flush: write " + delCount + " deletes to " + delFileName);
-          }
-          boolean success2 = false;
-          try {
-            // TODO: in the NRT case it'd be better to hand
-            // this del vector over to the
-            // shortly-to-be-opened SegmentReader and let it
-            // carry the changes; there's no reason to use
-            // filesystem as intermediary here.
-            deletedDocs.write(directory, delFileName);
-            success2 = true;
-          } finally {
-            if (!success2) {
-              try {
-                directory.deleteFile(delFileName);
-              } catch (Throwable t) {
-                // suppress this so we keep throwing the
-                // original exception
-              }
+      // Must write deleted docs after the CFS so we don't
+      // slurp the del file into CFS:
+      if (deletedDocs != null) {
+        final int delCount = deletedDocs.count();
+        assert delCount > 0;
+        newSegment.setDelCount(delCount);
+        newSegment.advanceDelGen();
+        final String delFileName = newSegment.getDelFileName();
+        if (infoStream != null) {
+          message("flush: write " + delCount + " deletes to " + delFileName);
+        }
+        boolean success2 = false;
+        try {
+          // TODO: in the NRT case it'd be better to hand
+          // this del vector over to the
+          // shortly-to-be-opened SegmentReader and let it
+          // carry the changes; there's no reason to use
+          // filesystem as intermediary here.
+          deletedDocs.write(directory, delFileName);
+          success2 = true;
+        } finally {
+          if (!success2) {
+            try {
+              directory.deleteFile(delFileName);
+            } catch (Throwable t) {
+              // suppress this so we keep throwing the
+              // original exception
             }
           }
         }
+      }
 
-        success = true;
-      } finally {
-        if (!success) {
-          if (infoStream != null) {
-            message("hit exception " +
-                "reating compound file for newly flushed segment " + newSegment.name);
-          }
+      success = true;
+    } finally {
+      if (!success) {
+        if (infoStream != null) {
+          message("hit exception " +
+              "reating compound file for newly flushed segment " + newSegment.name);
+        }
 
-          synchronized(this) {
-            deleter.refresh(newSegment.name);
-          }
+        synchronized(this) {
+          deleter.refresh(newSegment.name);
         }
       }
-
-
     }
 
+
     synchronized(this) {
       segmentInfos.add(newSegment);
       checkpoint();