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 2010/04/09 15:12:06 UTC
svn commit: r932398 - in /lucene/dev/trunk/lucene: CHANGES.txt
src/java/org/apache/lucene/analysis/Tokenizer.java
src/java/org/apache/lucene/index/DocInverterPerField.java
Author: mikemccand
Date: Fri Apr 9 13:12:06 2010
New Revision: 932398
URL: http://svn.apache.org/viewvc?rev=932398&view=rev
Log:
LUCENE-2387: don't hang onto Fieldable of last doc indexed in IW, nor to Reader in Tokenizer after close is called
Modified:
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/src/java/org/apache/lucene/analysis/Tokenizer.java
lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DocInverterPerField.java
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=932398&r1=932397&r2=932398&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Fri Apr 9 13:12:06 2010
@@ -258,6 +258,10 @@ Bug fixes
* LUCENE-2074: Reduce buffer size of lexer back to default on reset.
(Ruben Laguna, Shai Erera via Uwe Schindler)
+* LUCENE-2387: Don't hang onto Fieldables from the last doc indexed,
+ in IndexWriter, nor the Reader in Tokenizer after close is
+ called. (Ruben Laguna, Uwe Schindler, Mike McCandless)
+
New features
* LUCENE-2128: Parallelized fetching document frequencies during weight
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/analysis/Tokenizer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/analysis/Tokenizer.java?rev=932398&r1=932397&r2=932398&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/analysis/Tokenizer.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/analysis/Tokenizer.java Fri Apr 9 13:12:06 2010
@@ -67,7 +67,12 @@ public abstract class Tokenizer extends
/** By default, closes the input Reader. */
@Override
public void close() throws IOException {
- input.close();
+ if (input != null) {
+ input.close();
+ // LUCENE-2387: don't hold onto Reader after close, so
+ // GC can reclaim
+ input = null;
+ }
}
/** Return the corrected offset. If {@link #input} is a {@link CharStream} subclass
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DocInverterPerField.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DocInverterPerField.java?rev=932398&r1=932397&r2=932398&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DocInverterPerField.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/index/DocInverterPerField.java Fri Apr 9 13:12:06 2010
@@ -199,6 +199,10 @@ final class DocInverterPerField extends
fieldState.offset += docState.analyzer.getOffsetGap(field);
fieldState.boost *= field.getBoost();
}
+
+ // LUCENE-2387: don't hang onto the field, so GC can
+ // reclaim
+ fields[i] = null;
}
consumer.finish();