You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2008/03/28 20:24:11 UTC
svn commit: r642341 -
/lucene/java/branches/lucene_2_3/src/java/org/apache/lucene/store/FSDirectory.java
Author: mikemccand
Date: Fri Mar 28 12:24:06 2008
New Revision: 642341
URL: http://svn.apache.org/viewvc?rev=642341&view=rev
Log:
LUCENE-1251: be sure to close the descriptor even if super.close() hits an exception, in FSIndexOutput.close
Modified:
lucene/java/branches/lucene_2_3/src/java/org/apache/lucene/store/FSDirectory.java
Modified: lucene/java/branches/lucene_2_3/src/java/org/apache/lucene/store/FSDirectory.java
URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_3/src/java/org/apache/lucene/store/FSDirectory.java?rev=642341&r1=642340&r2=642341&view=diff
==============================================================================
--- lucene/java/branches/lucene_2_3/src/java/org/apache/lucene/store/FSDirectory.java (original)
+++ lucene/java/branches/lucene_2_3/src/java/org/apache/lucene/store/FSDirectory.java Fri Mar 28 12:24:06 2008
@@ -601,9 +601,21 @@
public void close() throws IOException {
// only close the file if it has not been closed yet
if (isOpen) {
- super.close();
- file.close();
- isOpen = false;
+ boolean success = false;
+ try {
+ super.close();
+ success = true;
+ } finally {
+ isOpen = false;
+ if (!success) {
+ try {
+ file.close();
+ } catch (Throwable t) {
+ // Suppress so we don't mask original exception
+ }
+ } else
+ file.close();
+ }
}
}