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 2016/10/11 18:35:15 UTC

[30/47] lucenenet git commit: Fixed infinite recursion bug in TestFramework.Index.BaseTermVectorsTestCase.RandomDocument.

Fixed infinite recursion bug in TestFramework.Index.BaseTermVectorsTestCase.RandomDocument.


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

Branch: refs/heads/master
Commit: 6d50af125870adb383f451604c868022e53d346c
Parents: c574b75
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Mon Oct 10 18:23:10 2016 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Tue Oct 11 00:26:26 2016 +0700

----------------------------------------------------------------------
 .../Index/BaseTermVectorsFormatTestCase.cs              | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/6d50af12/src/Lucene.Net.TestFramework/Index/BaseTermVectorsFormatTestCase.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/Index/BaseTermVectorsFormatTestCase.cs b/src/Lucene.Net.TestFramework/Index/BaseTermVectorsFormatTestCase.cs
index 97b9e59..85207ad 100644
--- a/src/Lucene.Net.TestFramework/Index/BaseTermVectorsFormatTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Index/BaseTermVectorsFormatTestCase.cs
@@ -421,10 +421,14 @@ namespace Lucene.Net.Index
                 HashSet<string> usedFileNames = new HashSet<string>();
                 for (int i = 0; i < fieldCount; ++i)
                 {
-                    do
-                    {
-                        this.FieldNames[i] = RandomInts.RandomFrom(Random(), fieldNames);
-                    } while (usedFileNames.Contains(this.FieldNames[i]));
+                    // LUCENENET NOTE: Using a simple Linq query to filter rather than using brute force makes this a lot
+                    // faster (and won't infinitely retry due to poor random distribution).
+                    this.FieldNames[i] = RandomInts.RandomFrom(Random(), fieldNames.Except(usedFileNames).ToArray());
+                    //do
+                    //{
+                    //    this.FieldNames[i] = RandomInts.RandomFrom(Random(), fieldNames);
+                    //} while (usedFileNames.Contains(this.FieldNames[i]));
+
                     usedFileNames.Add(this.FieldNames[i]);
                     TokenStreams[i] = new RandomTokenStream(outerInstance, TestUtil.NextInt(Random(), 1, maxTermCount), sampleTerms, sampleTermBytes);
                 }