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 2011/03/25 11:45:24 UTC
[Lucene.Net] svn commit: r1085312 - in /incubator/lucene.net/trunk/C#/src:
Lucene.Net/Index/ Lucene.Net/Search/ Lucene.Net/Store/ Test/ Test/Index/
Test/Search/ Test/Store/
Author: digy
Date: Fri Mar 25 10:45:23 2011
New Revision: 1085312
URL: http://svn.apache.org/viewvc?rev=1085312&view=rev
Log:
[LUCENENET-399] [LUCENENET-378] Added IDisposable for IndexWriter,IndexReader,Searcher,Directory and other subclasses of them.
Modified:
incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/CompoundFileReader.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/IndexReader.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/IndexWriter.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/IndexSearcher.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/MultiSearcher.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/Searcher.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/Directory.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/FSDirectory.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/FileSwitchDirectory.cs
incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/RAMDirectory.cs
incubator/lucene.net/trunk/C#/src/Test/Index/TestFieldsReader.cs
incubator/lucene.net/trunk/C#/src/Test/Search/JustCompileSearch.cs
incubator/lucene.net/trunk/C#/src/Test/Store/TestBufferedIndexInput.cs
incubator/lucene.net/trunk/C#/src/Test/TestSupportClass.cs
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/CompoundFileReader.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Index/CompoundFileReader.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/CompoundFileReader.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/CompoundFileReader.cs Fri Mar 25 10:45:23 2011
@@ -135,6 +135,14 @@ namespace Lucene.Net.Index
stream = null;
}
}
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
public override IndexInput OpenInput(System.String id)
{
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/IndexReader.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Index/IndexReader.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/IndexReader.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/IndexReader.cs Fri Mar 25 10:45:23 2011
@@ -66,7 +66,7 @@ namespace Lucene.Net.Index
/// </summary>
/// <version> $Id: IndexReader.java 826049 2009-10-16 19:28:55Z mikemccand $
/// </version>
- public abstract class IndexReader : System.ICloneable
+ public abstract class IndexReader : System.ICloneable, System.IDisposable
{
private class AnonymousClassFindSegmentsFile:SegmentInfos.FindSegmentsFile
{
@@ -1548,6 +1548,14 @@ namespace Lucene.Net.Index
}
}
}
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public void Dispose()
+ {
+ Close();
+ }
/// <summary>Implements close. </summary>
protected internal abstract void DoClose();
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/IndexWriter.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Index/IndexWriter.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/IndexWriter.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Index/IndexWriter.cs Fri Mar 25 10:45:23 2011
@@ -200,7 +200,7 @@ namespace Lucene.Net.Index
* referenced by the "front" of the index). For this, IndexFileDeleter
* keeps track of the last non commit checkpoint.
*/
- public class IndexWriter
+ public class IndexWriter : System.IDisposable
{
private void InitBlock()
{
@@ -2471,6 +2471,14 @@ namespace Lucene.Net.Index
{
Close(true);
}
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public virtual void Dispose()
+ {
+ Close();
+ }
/// <summary> Closes the index with or without waiting for currently
/// running merges to finish. This is only meaningful when
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/IndexSearcher.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Search/IndexSearcher.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/IndexSearcher.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/IndexSearcher.cs Fri Mar 25 10:45:23 2011
@@ -152,6 +152,14 @@ namespace Lucene.Net.Search
if (closeReader)
reader.Close();
}
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
// inherit javadoc
public override int DocFreq(Term term)
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/MultiSearcher.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Search/MultiSearcher.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/MultiSearcher.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/MultiSearcher.cs Fri Mar 25 10:45:23 2011
@@ -133,6 +133,14 @@ namespace Lucene.Net.Search
{
throw new System.NotSupportedException();
}
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
public override Document Doc(int i)
{
@@ -200,7 +208,15 @@ namespace Lucene.Net.Search
for (int i = 0; i < searchables.Length; i++)
searchables[i].Close();
}
-
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
+
public override int DocFreq(Term term)
{
int docFreq = 0;
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/Searcher.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Search/Searcher.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/Searcher.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Search/Searcher.cs Fri Mar 25 10:45:23 2011
@@ -31,7 +31,7 @@ namespace Lucene.Net.Search
/// Note that you can only access hits from a Searcher as long as it is not yet
/// closed, otherwise an IOException will be thrown.
/// </summary>
- public abstract class Searcher : System.MarshalByRefObject, Searchable
+ public abstract class Searcher : System.MarshalByRefObject, Searchable, System.IDisposable
{
public Searcher()
{
@@ -283,6 +283,7 @@ namespace Lucene.Net.Search
}
abstract public void Search(Weight weight, Filter filter, Collector results);
abstract public void Close();
+ abstract public void Dispose();
abstract public int DocFreq(Term term);
abstract public int MaxDoc();
abstract public TopDocs Search(Weight weight, Filter filter, int n);
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/Directory.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Store/Directory.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/Directory.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/Directory.cs Fri Mar 25 10:45:23 2011
@@ -39,7 +39,7 @@ namespace Lucene.Net.Store
///
/// </summary>
[Serializable]
- public abstract class Directory
+ public abstract class Directory : System.IDisposable
{
protected internal volatile bool isOpen = true;
@@ -150,6 +150,8 @@ namespace Lucene.Net.Store
/// <summary>Closes the store. </summary>
public abstract void Close();
+
+ public abstract void Dispose();
/// <summary> Set the LockFactory that this Directory instance should
/// use for its locking implementation. Each * instance of
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/FSDirectory.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Store/FSDirectory.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/FSDirectory.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/FSDirectory.cs Fri Mar 25 10:45:23 2011
@@ -936,6 +936,14 @@ namespace Lucene.Net.Store
}
}
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
+
[System.Obsolete("A DirectoryInfo is more appropriate, however this is here for backwards compatibility. This will be removed in the 3.0 release")]
public virtual System.IO.FileInfo GetFile()
{
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/FileSwitchDirectory.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Store/FileSwitchDirectory.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/FileSwitchDirectory.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/FileSwitchDirectory.cs Fri Mar 25 10:45:23 2011
@@ -75,6 +75,14 @@ namespace Lucene.Net.Store
doClose = false;
}
}
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
public override System.String[] ListAll()
{
Modified: incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/RAMDirectory.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Lucene.Net/Store/RAMDirectory.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/RAMDirectory.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Lucene.Net/Store/RAMDirectory.cs Fri Mar 25 10:45:23 2011
@@ -309,6 +309,14 @@ namespace Lucene.Net.Store
fileMap = null;
}
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
+
public System.Collections.Hashtable fileMap_ForNUnit
{
get { return fileMap; }
Modified: incubator/lucene.net/trunk/C#/src/Test/Index/TestFieldsReader.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Test/Index/TestFieldsReader.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Test/Index/TestFieldsReader.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Test/Index/TestFieldsReader.cs Fri Mar 25 10:45:23 2011
@@ -415,6 +415,11 @@ namespace Lucene.Net.Index
{
fsDir.Close();
}
+
+ public override void Dispose()
+ {
+ this.Close();
+ }
}
private class FaultyIndexInput:BufferedIndexInput, System.ICloneable
Modified: incubator/lucene.net/trunk/C#/src/Test/Search/JustCompileSearch.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Test/Search/JustCompileSearch.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Test/Search/JustCompileSearch.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Test/Search/JustCompileSearch.cs Fri Mar 25 10:45:23 2011
@@ -53,6 +53,14 @@ namespace Lucene.Net.Search
{
throw new System.NotSupportedException(Lucene.Net.Search.JustCompileSearch.UNSUPPORTED_MSG);
}
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
public override Document Doc(int i)
{
Modified: incubator/lucene.net/trunk/C#/src/Test/Store/TestBufferedIndexInput.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Test/Store/TestBufferedIndexInput.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Test/Store/TestBufferedIndexInput.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Test/Store/TestBufferedIndexInput.cs Fri Mar 25 10:45:23 2011
@@ -386,6 +386,14 @@ namespace Lucene.Net.Store
{
dir.Close();
}
+
+ /// <summary>
+ /// .NET
+ /// </summary>
+ public override void Dispose()
+ {
+ Close();
+ }
public override void DeleteFile(System.String name)
{
Modified: incubator/lucene.net/trunk/C#/src/Test/TestSupportClass.cs
URL: http://svn.apache.org/viewvc/incubator/lucene.net/trunk/C%23/src/Test/TestSupportClass.cs?rev=1085312&r1=1085311&r2=1085312&view=diff
==============================================================================
--- incubator/lucene.net/trunk/C#/src/Test/TestSupportClass.cs (original)
+++ incubator/lucene.net/trunk/C#/src/Test/TestSupportClass.cs Fri Mar 25 10:45:23 2011
@@ -727,6 +727,57 @@ namespace Lucene.Net._SupportClass
}
}
+ [TestFixture]
+ public class TestIDisposable
+ {
+ [Test]
+ public void TestReadersWriters()
+ {
+ Directory dir;
+
+ using(dir = new RAMDirectory())
+ {
+ Document doc;
+ IndexWriter writer;
+ IndexReader reader;
+
+ using (writer = new IndexWriter(dir, new WhitespaceAnalyzer(), true))
+ {
+ Field field = new Field("name", "value", Field.Store.YES,Field.Index.ANALYZED);
+ doc = new Document();
+ doc.Add(field);
+ writer.AddDocument(doc);
+ writer.Commit();
+
+ using (reader = writer.GetReader())
+ {
+ IndexReader r1 = reader.Reopen();
+ }
+
+ try
+ {
+ IndexReader r2 = reader.Reopen();
+ Assert.Fail("IndexReader shouldn't be open here");
+ }
+ catch (AlreadyClosedException)
+ {
+ }
+ }
+ try
+ {
+ writer.AddDocument(doc);
+ Assert.Fail("IndexWriter shouldn't be open here");
+ }
+ catch (AlreadyClosedException)
+ {
+ }
+
+ Assert.IsTrue(dir.isOpen_ForNUnit, "RAMDirectory");
+ }
+ Assert.IsFalse(dir.isOpen_ForNUnit, "RAMDirectory");
+ }
+ }
+
internal class BigObject
{
public int i = 0;