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();