You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by di...@apache.org on 2010/04/16 17:36:00 UTC
svn commit: r934965 - in /lucene/lucene.net/trunk/C#/src/Lucene.Net:
Analysis/Tokenizer.cs Index/DocInverterPerField.cs
Author: digy
Date: Fri Apr 16 15:36:00 2010
New Revision: 934965
URL: http://svn.apache.org/viewvc?rev=934965&view=rev
Log:
LUCENENET-355 [LUCENE-2387] IndexWriter retains references to Readers used in Fields (memory leak)
Modified:
lucene/lucene.net/trunk/C#/src/Lucene.Net/Analysis/Tokenizer.cs
lucene/lucene.net/trunk/C#/src/Lucene.Net/Index/DocInverterPerField.cs
Modified: lucene/lucene.net/trunk/C#/src/Lucene.Net/Analysis/Tokenizer.cs
URL: http://svn.apache.org/viewvc/lucene/lucene.net/trunk/C%23/src/Lucene.Net/Analysis/Tokenizer.cs?rev=934965&r1=934964&r2=934965&view=diff
==============================================================================
--- lucene/lucene.net/trunk/C#/src/Lucene.Net/Analysis/Tokenizer.cs (original)
+++ lucene/lucene.net/trunk/C#/src/Lucene.Net/Analysis/Tokenizer.cs Fri Apr 16 15:36:00 2010
@@ -73,7 +73,13 @@ namespace Lucene.Net.Analysis
/// <summary>By default, closes the input Reader. </summary>
public override void Close()
{
- input.Close();
+ if (input != null) {
+ input.Close();
+ // LUCENE-2387: don't hold onto Reader after close, so
+ // GC can reclaim
+ input = null;
+ }
+
}
/// <summary>Return the corrected offset. If {@link #input} is a {@link CharStream} subclass
Modified: lucene/lucene.net/trunk/C#/src/Lucene.Net/Index/DocInverterPerField.cs
URL: http://svn.apache.org/viewvc/lucene/lucene.net/trunk/C%23/src/Lucene.Net/Index/DocInverterPerField.cs?rev=934965&r1=934964&r2=934965&view=diff
==============================================================================
--- lucene/lucene.net/trunk/C#/src/Lucene.Net/Index/DocInverterPerField.cs (original)
+++ lucene/lucene.net/trunk/C#/src/Lucene.Net/Index/DocInverterPerField.cs Fri Apr 16 15:36:00 2010
@@ -227,6 +227,10 @@ namespace Lucene.Net.Index
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();