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,