You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2011/05/29 04:53:45 UTC

svn commit: r1128810 - in /lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index: ./ codecs/

Author: simonw
Date: Sun May 29 02:53:45 2011
New Revision: 1128810

URL: http://svn.apache.org/viewvc?rev=1128810&view=rev
Log:
LUCENE-3147: remove @Override when inherit from Interface & fixed leaking file descriptors when exception is thrown through abort

Modified:
    lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java
    lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java
    lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
    lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/FixedGapTermsIndexWriter.java
    lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/VariableGapTermsIndexWriter.java

Modified: lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java?rev=1128810&r1=1128809&r2=1128810&view=diff
==============================================================================
--- lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java (original)
+++ lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriter.java Sun May 29 02:53:45 2011
@@ -228,14 +228,19 @@ final class DocumentsWriter {
       }
 
       final Iterator<ThreadState> threadsIterator = perThreadPool.getActivePerThreadsIterator();
-
       while (threadsIterator.hasNext()) {
-        ThreadState perThread = threadsIterator.next();
+        final ThreadState perThread = threadsIterator.next();
         perThread.lock();
         try {
           if (perThread.isActive()) { // we might be closed
-            perThread.perThread.abort();
-            perThread.perThread.checkAndResetHasAborted();
+            try {
+              perThread.perThread.abort();
+            } catch (IOException ex) {
+              // continue
+            } finally {
+              perThread.perThread.checkAndResetHasAborted();
+              flushControl.doOnAbort(perThread);
+            }
           } else {
             assert closed;
           }
@@ -243,7 +248,6 @@ final class DocumentsWriter {
           perThread.unlock();
         }
       }
-
       success = true;
     } finally {
       if (infoStream != null) {

Modified: lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java?rev=1128810&r1=1128809&r2=1128810&view=diff
==============================================================================
--- lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java (original)
+++ lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterFlushControl.java Sun May 29 02:53:45 2011
@@ -16,6 +16,7 @@ package org.apache.lucene.index;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -204,7 +205,7 @@ public final class DocumentsWriterFlushC
     } // don't assert on numDocs since we could hit an abort excp. while selecting that dwpt for flushing
     
   }
-
+  
   synchronized void doOnAbort(ThreadState state) {
     try {
       if (state.flushPending) {
@@ -449,10 +450,21 @@ public final class DocumentsWriterFlushC
     try {
       for (DocumentsWriterPerThread dwpt : flushQueue) {
         doAfterFlush(dwpt);
+        try {
+          dwpt.abort();
+        } catch (IOException ex) {
+          // continue
+        }
       }
       for (BlockedFlush blockedFlush : blockedFlushes) {
-        flushingWriters.put(blockedFlush.dwpt, Long.valueOf(blockedFlush.bytes));
+        flushingWriters
+            .put(blockedFlush.dwpt, Long.valueOf(blockedFlush.bytes));
         doAfterFlush(blockedFlush.dwpt);
+        try {
+          blockedFlush.dwpt.abort();
+        } catch (IOException ex) {
+          // continue
+        }
       }
     } finally {
       fullFlush = false;
@@ -511,4 +523,4 @@ public final class DocumentsWriterFlushC
     return stallControl.anyStalledThreads();
   }
  
-}
\ No newline at end of file
+}

Modified: lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java?rev=1128810&r1=1128809&r2=1128810&view=diff
==============================================================================
--- lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java (original)
+++ lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/DocumentsWriterPerThread.java Sun May 29 02:53:45 2011
@@ -177,7 +177,7 @@ public class DocumentsWriterPerThread {
     this.parent = parent;
     this.fieldInfos = fieldInfos;
     this.writer = parent.indexWriter;
-    this.infoStream = parent.indexWriter.getInfoStream();
+    this.infoStream = parent.infoStream;
     this.docState = new DocState(this);
     this.docState.similarityProvider = parent.indexWriter.getConfig()
         .getSimilarityProvider();

Modified: lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/FixedGapTermsIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/FixedGapTermsIndexWriter.java?rev=1128810&r1=1128809&r2=1128810&view=diff
==============================================================================
--- lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/FixedGapTermsIndexWriter.java (original)
+++ lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/FixedGapTermsIndexWriter.java Sun May 29 02:53:45 2011
@@ -211,7 +211,6 @@ public class FixedGapTermsIndexWriter ex
     }
   }
 
-  @Override
   public void close() throws IOException {
     boolean success = false;
     try {

Modified: lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/VariableGapTermsIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/VariableGapTermsIndexWriter.java?rev=1128810&r1=1128809&r2=1128810&view=diff
==============================================================================
--- lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/VariableGapTermsIndexWriter.java (original)
+++ lucene/dev/branches/leaky3147/lucene/src/java/org/apache/lucene/index/codecs/VariableGapTermsIndexWriter.java Sun May 29 02:53:45 2011
@@ -274,7 +274,6 @@ public class VariableGapTermsIndexWriter
     }
   }
 
-  @Override
   public void close() throws IOException {
     try {
     final long dirStart = out.getFilePointer();