You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2017/06/22 05:25:20 UTC
[19/38] lucenenet git commit: API:
Lucene.Net.Search.ReferenceManager: Implemented proper dispose pattern.
API: Lucene.Net.Search.ReferenceManager: Implemented proper dispose pattern.
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/8d6fb691
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/8d6fb691
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/8d6fb691
Branch: refs/heads/master
Commit: 8d6fb69158d1f31f58e7fdd6ad1b9b925b6554ce
Parents: 56025d3
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Sat Jun 17 15:30:45 2017 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Sat Jun 17 15:37:29 2017 +0700
----------------------------------------------------------------------
.../Search/TestSearcherManager.cs | 2 +-
src/Lucene.Net/Search/ReferenceManager.cs | 19 ++++++++++---------
2 files changed, 11 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/8d6fb691/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/Search/TestSearcherManager.cs b/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
index 243e421..550adb8 100644
--- a/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
+++ b/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
@@ -431,7 +431,7 @@ namespace Lucene.Net.Search
{
// test that we can close SM twice (per IDisposable's contract).
Directory dir = NewDirectory();
- (new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, null))).Dispose();
+ using (var iw = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, null))) { }
SearcherManager sm = new SearcherManager(dir, null);
sm.Dispose();
sm.Dispose();
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/8d6fb691/src/Lucene.Net/Search/ReferenceManager.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net/Search/ReferenceManager.cs b/src/Lucene.Net/Search/ReferenceManager.cs
index 8cc4174..0d58f11 100644
--- a/src/Lucene.Net/Search/ReferenceManager.cs
+++ b/src/Lucene.Net/Search/ReferenceManager.cs
@@ -159,14 +159,8 @@ namespace Lucene.Net.Search
{
lock (this)
{
- if (current != null)
- {
- // make sure we can call this more than once
- // closeable javadoc says:
- // if this is already closed then invoking this method has no effect.
- SwapReference(null);
- AfterClose();
- }
+ Dispose(true);
+ GC.SuppressFinalize(this);
}
}
@@ -179,8 +173,15 @@ namespace Lucene.Net.Search
/// Called after <see cref="Dispose()"/>, so subclass can free any resources. </summary>
/// <exception cref="System.IO.IOException"> if the after dispose operation in a sub-class throws an <see cref="System.IO.IOException"/>
/// </exception>
- protected virtual void AfterClose() // LUCENENET TODO: API: Rename AfterDispose() ? Or perhaps just use dispose pattern.
+ protected virtual void Dispose(bool disposing)
{
+ if (disposing && current != null)
+ {
+ // make sure we can call this more than once
+ // closeable javadoc says:
+ // if this is already closed then invoking this method has no effect.
+ SwapReference(null);
+ }
}
private void DoMaybeRefresh()