You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by sy...@apache.org on 2015/05/18 08:22:22 UTC

lucenenet git commit: use nullable int to matche Lucene

Repository: lucenenet
Updated Branches:
  refs/heads/master e3833d6cc -> d00a4262b


use nullable int to matche Lucene


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/d00a4262
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/d00a4262
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/d00a4262

Branch: refs/heads/master
Commit: d00a4262bd7a10596cbb1fd6a62292a14f397019
Parents: e3833d6
Author: Laimonas Simutis <la...@gmail.com>
Authored: Sat May 16 22:02:53 2015 -0400
Committer: Laimonas Simutis <la...@gmail.com>
Committed: Sat May 16 22:02:53 2015 -0400

----------------------------------------------------------------------
 src/Lucene.Net.Core/Search/LiveFieldValues.cs   |  9 +++---
 .../core/Search/TestLiveFieldValues.cs          | 33 ++++++--------------
 2 files changed, 14 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/d00a4262/src/Lucene.Net.Core/Search/LiveFieldValues.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Core/Search/LiveFieldValues.cs b/src/Lucene.Net.Core/Search/LiveFieldValues.cs
index 1e3920d..277987c 100644
--- a/src/Lucene.Net.Core/Search/LiveFieldValues.cs
+++ b/src/Lucene.Net.Core/Search/LiveFieldValues.cs
@@ -36,7 +36,6 @@ namespace Lucene.Net.Search
 
     public abstract class LiveFieldValues<S, T> : ReferenceManager.RefreshListener, IDisposable
         where S : class
-        where T : struct
     {
         private volatile IDictionary<string, T> Current = new ConcurrentDictionary<string, T>();
         private volatile IDictionary<string, T> Old = new ConcurrentDictionary<string, T>();
@@ -113,26 +112,26 @@ namespace Lucene.Net.Search
             // First try to get the "live" value:
             T value;
             Current.TryGetValue(id, out value);
-            if ((object)value == (object)MissingValue)
+            if (EqualityComparer<T>.Default.Equals(value, MissingValue))
             {
                 // Deleted but the deletion is not yet reflected in
                 // the reader:
                 return default(T);
             }
-            else if ((object)value != (object)default(T))
+            else if (!EqualityComparer<T>.Default.Equals(value, default(T)))
             {
                 return value;
             }
             else
             {
                 Old.TryGetValue(id, out value);
-                if ((object)value == (object)MissingValue)
+                if (EqualityComparer<T>.Default.Equals(value, MissingValue))
                 {
                     // Deleted but the deletion is not yet reflected in
                     // the reader:
                     return default(T);
                 }
-                else if ((object)value != (object)default(T))
+                else if (!EqualityComparer<T>.Default.Equals(value, default(T)))
                 {
                     return value;
                 }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/d00a4262/src/Lucene.Net.Tests/core/Search/TestLiveFieldValues.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/core/Search/TestLiveFieldValues.cs b/src/Lucene.Net.Tests/core/Search/TestLiveFieldValues.cs
index b0b6e0d..6c3cc7d 100644
--- a/src/Lucene.Net.Tests/core/Search/TestLiveFieldValues.cs
+++ b/src/Lucene.Net.Tests/core/Search/TestLiveFieldValues.cs
@@ -50,11 +50,11 @@ namespace Lucene.Net.Search
 
             IndexWriter w = new IndexWriter(dir, iwc);
 
-            SearcherManager mgr = new SearcherManager(w, true, new SearcherFactoryAnonymousInnerClassHelper(this));
+            SearcherManager mgr = new SearcherManager(w, true, new SearcherFactoryAnonymousInnerClassHelper());
 
             const int missing = -1;
 
-            LiveFieldValues<IndexSearcher, int> rt = new LiveFieldValuesAnonymousInnerClassHelper(this, mgr, missing);
+            LiveFieldValues<IndexSearcher, int?> rt = new LiveFieldValuesAnonymousInnerClassHelper(mgr, missing);
 
             int numThreads = TestUtil.NextInt(Random(), 2, 5);
             if (VERBOSE)
@@ -76,7 +76,7 @@ namespace Lucene.Net.Search
             {
                 int threadID = t;
                 Random threadRandom = new Random(Random().Next());
-                ThreadClass thread = new ThreadAnonymousInnerClassHelper(this, w, mgr, missing, rt, startingGun, iters, idCount, reopenChance, deleteChance, addChance, t, threadID, threadRandom);
+                ThreadClass thread = new ThreadAnonymousInnerClassHelper(w, mgr, missing, rt, startingGun, iters, idCount, reopenChance, deleteChance, addChance, t, threadID, threadRandom);
                 threads.Add(thread);
                 thread.Start();
             }
@@ -98,37 +98,27 @@ namespace Lucene.Net.Search
 
         private class SearcherFactoryAnonymousInnerClassHelper : SearcherFactory
         {
-            private readonly TestLiveFieldValues OuterInstance;
-
-            public SearcherFactoryAnonymousInnerClassHelper(TestLiveFieldValues outerInstance)
-            {
-                this.OuterInstance = outerInstance;
-            }
-
             public override IndexSearcher NewSearcher(IndexReader r)
             {
                 return new IndexSearcher(r);
             }
         }
 
-        private class LiveFieldValuesAnonymousInnerClassHelper : LiveFieldValues<IndexSearcher, int>
+        private class LiveFieldValuesAnonymousInnerClassHelper : LiveFieldValues<IndexSearcher, int?>
         {
-            private readonly TestLiveFieldValues OuterInstance;
-
-            public LiveFieldValuesAnonymousInnerClassHelper(TestLiveFieldValues outerInstance, SearcherManager mgr, int missing)
+            public LiveFieldValuesAnonymousInnerClassHelper(SearcherManager mgr, int missing)
                 : base(mgr, missing)
             {
-                this.OuterInstance = outerInstance;
             }
 
-            protected override int LookupFromSearcher(IndexSearcher s, string id)
+            protected override int? LookupFromSearcher(IndexSearcher s, string id)
             {
                 TermQuery tq = new TermQuery(new Term("id", id));
                 TopDocs hits = s.Search(tq, 1);
                 Assert.IsTrue(hits.TotalHits <= 1);
                 if (hits.TotalHits == 0)
                 {
-                    return default(int);
+                    return null;
                 }
                 else
                 {
@@ -140,12 +130,10 @@ namespace Lucene.Net.Search
 
         private class ThreadAnonymousInnerClassHelper : ThreadClass
         {
-            private readonly TestLiveFieldValues OuterInstance;
-
             private IndexWriter w;
             private SearcherManager Mgr;
             private int? Missing;
-            private LiveFieldValues<IndexSearcher, int> Rt;
+            private LiveFieldValues<IndexSearcher, int?> Rt;
             private CountDownLatch StartingGun;
             private int Iters;
             private int IdCount;
@@ -156,9 +144,8 @@ namespace Lucene.Net.Search
             private int ThreadID;
             private Random ThreadRandom;
 
-            public ThreadAnonymousInnerClassHelper(TestLiveFieldValues outerInstance, IndexWriter w, SearcherManager mgr, int? missing, LiveFieldValues<IndexSearcher, int> rt, CountDownLatch startingGun, int iters, int idCount, double reopenChance, double deleteChance, double addChance, int t, int threadID, Random threadRandom)
+            public ThreadAnonymousInnerClassHelper(IndexWriter w, SearcherManager mgr, int? missing, LiveFieldValues<IndexSearcher, int?> rt, CountDownLatch startingGun, int iters, int idCount, double reopenChance, double deleteChance, double addChance, int t, int threadID, Random threadRandom)
             {
-                this.OuterInstance = outerInstance;
                 this.w = w;
                 this.Mgr = mgr;
                 this.Missing = missing;
@@ -190,7 +177,7 @@ namespace Lucene.Net.Search
                         // same time:
                         if (ThreadRandom.NextDouble() <= AddChance)
                         {
-                            string id = string.Format(CultureInfo.InvariantCulture, "%d_%04x", ThreadID, ThreadRandom.Next(IdCount));
+                            string id = string.Format(CultureInfo.InvariantCulture, "{0}_{1:X4}", ThreadID, ThreadRandom.Next(IdCount));
                             int field = ThreadRandom.Next(int.MaxValue);
                             doc.Add(new StringField("id", id, Field.Store.YES));
                             doc.Add(new IntField("field", (int)field, Field.Store.YES));