I'm attempting to use Lucene.Net v2.9.2.2 in a Visual Studio 2005 (.NET
2.0) environment.  We had a piece of software that WAS working.  I'm not
sure what has changed however, the following code results in a memory leak
in the Lucene.Net component (or a failure to clean up used memory).

The code in issue is here:

 private void SaveFileToFileInfo(Lucene.Net.Index.IndexWriter iw, bool
delayCommit, string sDataPath)
{
   Document doc = getFileInfoDoc(sDataPath);
   Analyzer analyzer = clsLuceneFunctions.getAnalyzer();
   if (this.FileID == 0)
   {
      string s = "";
   }
   iw.UpdateDocument(new Lucene.Net.Index.Term("FileId",
this.fileID.ToString("000000000")), doc, analyzer);

   analyzer = null;
   doc = null;
   if (!delayCommit)
                iw.Commit();
}

Commenting out the line iw.UpdateDocument resulted in no memory increase.
I also tried replacing it with a deleteDocument and  AddDocument and the
memory increased the same as using the UpdateDocument function

The getAnalyzer() function returns a ExtendedStandardAnalyzer, but it's the
UpdateDocument line specifically that gives me the issue.

Any assistance would be greatly appreciated.

Trevor Watson

Reply via email to