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 2011/05/28 20:31:47 UTC

svn commit: r1128733 - /lucene/dev/branches/leaky3147/lucene/src/test-framework/org/apache/lucene/index/codecs/preflexrw/TermInfosWriter.java

Author: mikemccand
Date: Sat May 28 18:31:47 2011
New Revision: 1128733

URL: http://svn.apache.org/viewvc?rev=1128733&view=rev
Log:
LUCENE-3147: fix another open file leak

Modified:
    lucene/dev/branches/leaky3147/lucene/src/test-framework/org/apache/lucene/index/codecs/preflexrw/TermInfosWriter.java

Modified: lucene/dev/branches/leaky3147/lucene/src/test-framework/org/apache/lucene/index/codecs/preflexrw/TermInfosWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/leaky3147/lucene/src/test-framework/org/apache/lucene/index/codecs/preflexrw/TermInfosWriter.java?rev=1128733&r1=1128732&r2=1128733&view=diff
==============================================================================
--- lucene/dev/branches/leaky3147/lucene/src/test-framework/org/apache/lucene/index/codecs/preflexrw/TermInfosWriter.java (original)
+++ lucene/dev/branches/leaky3147/lucene/src/test-framework/org/apache/lucene/index/codecs/preflexrw/TermInfosWriter.java Sat May 28 18:31:47 2011
@@ -87,8 +87,26 @@ final class TermInfosWriter implements C
                   int interval)
        throws IOException {
     initialize(directory, segment, fis, interval, false);
+    boolean success = false;
+    try {
     other = new TermInfosWriter(directory, segment, fis, interval, true);
     other.other = this;
+      success = true;
+    } finally {
+      if (!success) {
+        try {
+          IOUtils.closeSafely(true, output);
+        } catch (IOException e) {
+          // cannot happen since we suppress exceptions
+          throw new RuntimeException(e);
+        }
+
+        try {
+          directory.deleteFile(segment + (isIndex ? ".tii" : ".tis"));
+        } catch (IOException ignored) {
+        }
+      }
+    }
   }
 
   private TermInfosWriter(Directory directory, String segment, FieldInfos fis,