This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 668069e039ed3e47d1fe691a4b7da842c50aac1b
Author: Shad Storhaug <[email protected]>
AuthorDate: Wed Feb 17 21:40:38 2021 +0700

    BREAKING: Lucene.Net.TestFramework.Util.LuceneTestCase: Removed 
ConcurrentMergeSchedulerFactories class from the public API and its use from 
all tests (see #354)
---
 .../Util/LuceneTestCase.cs                         | 28 -------
 .../Index/Test2BBinaryDocValues.cs                 | 10 +--
 .../Index/Test2BNumericDocValues.cs                | 13 ++-
 src/Lucene.Net.Tests/Index/Test2BPositions.cs      | 13 ++-
 src/Lucene.Net.Tests/Index/Test2BPostings.cs       |  6 +-
 src/Lucene.Net.Tests/Index/Test2BPostingsBytes.cs  |  6 +-
 .../Index/Test2BSortedDocValues.cs                 | 10 +--
 src/Lucene.Net.Tests/Index/Test2BTerms.cs          |  6 +-
 src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs  |  6 +-
 src/Lucene.Net.Tests/Index/TestCrash.cs            | 41 ++++-----
 src/Lucene.Net.Tests/Index/TestIndexWriter.cs      |  5 +-
 .../Index/TestIndexWriterDelete.cs                 | 16 ++--
 .../Index/TestIndexWriterExceptions.cs             | 51 ++++--------
 .../Index/TestIndexWriterForceMerge.cs             |  6 +-
 .../Index/TestIndexWriterMergePolicy.cs            |  6 +-
 .../Index/TestIndexWriterOnDiskFull.cs             |  6 +-
 .../Index/TestIndexWriterReader.cs                 | 10 +--
 .../Index/TestIndexWriterWithThreads.cs            | 96 ++++++++++------------
 src/Lucene.Net.Tests/Index/TestStressIndexing.cs   |  6 +-
 src/Lucene.Net.Tests/Index/TestTransactions.cs     | 25 ++----
 src/Lucene.Net.Tests/Search/TestSearcherManager.cs |  8 +-
 21 files changed, 156 insertions(+), 218 deletions(-)

diff --git a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs 
b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
index 6a458a4..85679d3 100644
--- a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
@@ -3549,34 +3549,6 @@ namespace Lucene.Net.Util
             }
         }
 
-        /// <summary>
-        /// Contains a list of the Func&lt;IConcurrentMergeSchedulers&gt; to 
be tested.
-        /// Delegate method allows them to be created on their target thread 
instead of the test thread
-        /// and also ensures a separate instance is created in each case 
(which can affect the result of the test).
-        /// <para/>
-        /// The <see cref="TaskMergeScheduler"/> is only rarely included.
-        /// <para/>
-        /// LUCENENET specific for injection into tests (i.e. using 
NUnit.Framework.ValueSourceAttribute)
-        /// </summary>
-        public static class ConcurrentMergeSchedulerFactories
-        {
-            public static IList<Func<IConcurrentMergeScheduler>> Values
-            {
-                get
-                {
-                    var schedulerFactories = new 
List<Func<IConcurrentMergeScheduler>>();
-#if FEATURE_CONCURRENTMERGESCHEDULER
-                    schedulerFactories.Add(() => new 
ConcurrentMergeScheduler());
-                    //if (Rarely())
-                    //    schedulerFactories.Add(() => new 
TaskMergeScheduler());
-#else
-                    schedulerFactories.Add(() => new TaskMergeScheduler());
-#endif
-                    return schedulerFactories;
-                }
-            }
-        }
-
         internal static void LogNativeFSFactoryDebugInfo()
         {
             // LUCENENET specific - log the current locking strategy used and 
HResult values
diff --git a/src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs 
b/src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs
index 9d2ef61..f400c47 100644
--- a/src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Documents;
+using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
@@ -42,7 +42,7 @@ namespace Lucene.Net.Index
     {
         // indexes Integer.MAX_VALUE docs with a fixed binary field
         [Test]
-        public virtual void 
TestFixedBinary([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestFixedBinary()
         {
             BaseDirectoryWrapper dir = 
NewFSDirectory(CreateTempDir("2BFixedBinary"));
             if (dir is MockDirectoryWrapper)
@@ -52,7 +52,7 @@ namespace Lucene.Net.Index
             var config = new IndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
                             .SetRAMBufferSizeMB(256.0)
-                            .SetMergeScheduler(newScheduler())
+                            .SetMergeScheduler(new ConcurrentMergeScheduler())
                             .SetMergePolicy(NewLogMergePolicy(false, 10))
                             .SetOpenMode(OpenMode.CREATE);
             IndexWriter w = new IndexWriter(dir, config);
@@ -108,7 +108,7 @@ namespace Lucene.Net.Index
 
         // indexes Integer.MAX_VALUE docs with a variable binary field
         [Test]
-        public virtual void 
TestVariableBinary([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestVariableBinary()
         {
             BaseDirectoryWrapper dir = 
NewFSDirectory(CreateTempDir("2BVariableBinary"));
             if (dir is MockDirectoryWrapper)
@@ -119,7 +119,7 @@ namespace Lucene.Net.Index
             var config = new IndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
                             .SetRAMBufferSizeMB(256.0)
-                            .SetMergeScheduler(newScheduler())
+                            .SetMergeScheduler(new ConcurrentMergeScheduler())
                             .SetMergePolicy(NewLogMergePolicy(false, 10))
                             .SetOpenMode(OpenMode.CREATE);
             IndexWriter w = new IndexWriter(dir, config);
diff --git a/src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs 
b/src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs
index 252b31f..6458705 100644
--- a/src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Documents;
+using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
@@ -40,7 +40,7 @@ namespace Lucene.Net.Index
     {
         // indexes Integer.MAX_VALUE docs with an increasing dv field
         [Test]
-        public virtual void 
TestNumerics([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestNumerics()
         {
             BaseDirectoryWrapper dir = 
NewFSDirectory(CreateTempDir("2BNumerics"));
             if (dir is MockDirectoryWrapper)
@@ -48,8 +48,13 @@ namespace Lucene.Net.Index
                 ((MockDirectoryWrapper)dir).Throttling = Throttling.NEVER;
             }
 
-            IndexWriter w = new IndexWriter(dir, new 
IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random))
-           
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH).SetRAMBufferSizeMB(256.0).SetMergeScheduler(newScheduler()).SetMergePolicy(NewLogMergePolicy(false,
 10)).SetOpenMode(OpenMode.CREATE));
+            IndexWriter w = new IndexWriter(dir,
+                new IndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
+                .SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
+                .SetRAMBufferSizeMB(256.0)
+                .SetMergeScheduler(new ConcurrentMergeScheduler())
+                .SetMergePolicy(NewLogMergePolicy(false, 10))
+                .SetOpenMode(OpenMode.CREATE));
 
             Document doc = new Document();
             NumericDocValuesField dvField = new NumericDocValuesField("dv", 0);
diff --git a/src/Lucene.Net.Tests/Index/Test2BPositions.cs 
b/src/Lucene.Net.Tests/Index/Test2BPositions.cs
index f56a056..aeed283 100644
--- a/src/Lucene.Net.Tests/Index/Test2BPositions.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BPositions.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Analysis.TokenAttributes;
+using Lucene.Net.Analysis.TokenAttributes;
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
@@ -46,7 +46,7 @@ namespace Lucene.Net.Index
     {
         [Ignore("Very slow. Enable manually by removing Ignore.")]
         [Test]
-        public virtual void 
Test([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void Test()
         {
             BaseDirectoryWrapper dir = 
NewFSDirectory(CreateTempDir("2BPositions"));
             if (dir is MockDirectoryWrapper)
@@ -54,8 +54,13 @@ namespace Lucene.Net.Index
                 ((MockDirectoryWrapper)dir).Throttling = Throttling.NEVER;
             }
 
-            IndexWriter w = new IndexWriter(dir, new 
IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random))
-           
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH).SetRAMBufferSizeMB(256.0).SetMergeScheduler(newScheduler()).SetMergePolicy(NewLogMergePolicy(false,
 10)).SetOpenMode(OpenMode.CREATE));
+            IndexWriter w = new IndexWriter(dir,
+                new IndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
+                .SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
+                .SetRAMBufferSizeMB(256.0)
+                .SetMergeScheduler(new ConcurrentMergeScheduler())
+                .SetMergePolicy(NewLogMergePolicy(false, 10))
+                .SetOpenMode(OpenMode.CREATE));
 
             MergePolicy mp = w.Config.MergePolicy;
             if (mp is LogByteSizeMergePolicy)
diff --git a/src/Lucene.Net.Tests/Index/Test2BPostings.cs 
b/src/Lucene.Net.Tests/Index/Test2BPostings.cs
index 09a6fe5..19640a9 100644
--- a/src/Lucene.Net.Tests/Index/Test2BPostings.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BPostings.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Analysis.TokenAttributes;
+using Lucene.Net.Analysis.TokenAttributes;
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
@@ -46,7 +46,7 @@ namespace Lucene.Net.Index
         [Test]
         [Nightly]
         [Ignore("LUCENENET specific - takes too long to run on Azure DevOps")]
-        public virtual void 
Test([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void Test()
         {
             BaseDirectoryWrapper dir = 
NewFSDirectory(CreateTempDir("2BPostings"));
             if (dir is MockDirectoryWrapper)
@@ -57,7 +57,7 @@ namespace Lucene.Net.Index
             var config = new IndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
                             .SetRAMBufferSizeMB(256.0)
-                            .SetMergeScheduler(newScheduler())
+                            .SetMergeScheduler(new ConcurrentMergeScheduler())
                             .SetMergePolicy(NewLogMergePolicy(false, 10))
                             .SetOpenMode(OpenMode.CREATE);
 
diff --git a/src/Lucene.Net.Tests/Index/Test2BPostingsBytes.cs 
b/src/Lucene.Net.Tests/Index/Test2BPostingsBytes.cs
index cdad4d6..ee3cd39 100644
--- a/src/Lucene.Net.Tests/Index/Test2BPostingsBytes.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BPostingsBytes.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Analysis.TokenAttributes;
+using Lucene.Net.Analysis.TokenAttributes;
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
@@ -50,7 +50,7 @@ namespace Lucene.Net.Index
     {
         [Ignore("Very slow. Enable manually by removing Ignore.")]
         [Test]
-        public virtual void 
Test([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void Test()
         {
             BaseDirectoryWrapper dir = 
NewFSDirectory(CreateTempDir("2BPostingsBytes1"));
             if (dir is MockDirectoryWrapper)
@@ -61,7 +61,7 @@ namespace Lucene.Net.Index
             var config = new IndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
                             .SetRAMBufferSizeMB(256.0)
-                            .SetMergeScheduler(newScheduler())
+                            .SetMergeScheduler(new ConcurrentMergeScheduler())
                             .SetMergePolicy(NewLogMergePolicy(false, 10))
                             .SetOpenMode(OpenMode.CREATE);
             IndexWriter w = new IndexWriter(dir, config);
diff --git a/src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs 
b/src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs
index 881a4f8..5af76e5 100644
--- a/src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Documents;
+using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
@@ -40,7 +40,7 @@ namespace Lucene.Net.Index
     {
         // indexes Integer.MAX_VALUE docs with a fixed binary field
         [Test]
-        public virtual void 
TestFixedSorted([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestFixedSorted()
         {
             BaseDirectoryWrapper dir = 
NewFSDirectory(CreateTempDir("2BFixedSorted"));
             if (dir is MockDirectoryWrapper)
@@ -51,7 +51,7 @@ namespace Lucene.Net.Index
             IndexWriter w = new IndexWriter(dir, new 
IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random))
                                 
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
                                 .SetRAMBufferSizeMB(256.0)
-                                .SetMergeScheduler(newScheduler())
+                                .SetMergeScheduler(new 
ConcurrentMergeScheduler())
                                 .SetMergePolicy(NewLogMergePolicy(false, 10))
                                 .SetOpenMode(OpenMode.CREATE));
 
@@ -102,7 +102,7 @@ namespace Lucene.Net.Index
 
         // indexes Integer.MAX_VALUE docs with a fixed binary field
         [Test]
-        public virtual void 
Test2BOrds([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void Test2BOrds()
         {
             BaseDirectoryWrapper dir = NewFSDirectory(CreateTempDir("2BOrds"));
             if (dir is MockDirectoryWrapper)
@@ -113,7 +113,7 @@ namespace Lucene.Net.Index
             var config = new IndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
                             .SetRAMBufferSizeMB(256.0)
-                            .SetMergeScheduler(newScheduler())
+                            .SetMergeScheduler(new ConcurrentMergeScheduler())
                             .SetMergePolicy(NewLogMergePolicy(false, 10))
                             .SetOpenMode(OpenMode.CREATE);
             IndexWriter w = new IndexWriter(dir, config);
diff --git a/src/Lucene.Net.Tests/Index/Test2BTerms.cs 
b/src/Lucene.Net.Tests/Index/Test2BTerms.cs
index a60a541..3398ad2 100644
--- a/src/Lucene.Net.Tests/Index/Test2BTerms.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BTerms.cs
@@ -1,4 +1,4 @@
-using J2N.Collections.Generic.Extensions;
+using J2N.Collections.Generic.Extensions;
 using Lucene.Net.Analysis;
 using Lucene.Net.Analysis.TokenAttributes;
 using Lucene.Net.Documents;
@@ -164,7 +164,7 @@ namespace Lucene.Net.Index
 
         [Ignore("Very slow. Enable manually by removing Ignore.")]
         [Test]
-        public virtual void 
Test2BTerms_Mem([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void Test2BTerms_Mem()
         {
             if ("Lucene3x".Equals(Codec.Default.Name, 
StringComparison.Ordinal))
             {
@@ -190,7 +190,7 @@ namespace Lucene.Net.Index
                 IndexWriter w = new IndexWriter(dir, new 
IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random))
                                            
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
                                            .SetRAMBufferSizeMB(256.0)
-                                           .SetMergeScheduler(newScheduler())
+                                           .SetMergeScheduler(new 
ConcurrentMergeScheduler())
                                            
.SetMergePolicy(NewLogMergePolicy(false, 10))
                                            .SetOpenMode(OpenMode.CREATE));
 
diff --git a/src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs 
b/src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs
index 1a89d4c..731fcd4 100644
--- a/src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs
+++ b/src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Documents;
+using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Randomized.Generators;
 using Lucene.Net.Store;
@@ -47,7 +47,7 @@ namespace Lucene.Net.Index
         [Test]
         [Nightly]
         [Timeout(1200000)]
-        public virtual void 
Test([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void Test()
         {
             // LUCENENET specific - disable the test if not 64 bit
             AssumeTrue("This test consumes too much RAM be run on x86.", 
Constants.RUNTIME_IS_64BIT);
@@ -58,7 +58,7 @@ namespace Lucene.Net.Index
             var config = new IndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             
.SetMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH)
                             .SetRAMBufferSizeMB(256.0)
-                            .SetMergeScheduler(newScheduler())
+                            .SetMergeScheduler(new ConcurrentMergeScheduler())
                             .SetMergePolicy(NewLogMergePolicy(false, 10))
                             .SetOpenMode(OpenMode.CREATE);
             IndexWriter w = new IndexWriter(dir, config);
diff --git a/src/Lucene.Net.Tests/Index/TestCrash.cs 
b/src/Lucene.Net.Tests/Index/TestCrash.cs
index 37cd69e..e079493 100644
--- a/src/Lucene.Net.Tests/Index/TestCrash.cs
+++ b/src/Lucene.Net.Tests/Index/TestCrash.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Documents;
+using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
@@ -35,19 +35,19 @@ namespace Lucene.Net.Index
     [TestFixture]
     public class TestCrash : LuceneTestCase
     {
-        private IndexWriter InitIndex(Func<IConcurrentMergeScheduler> 
newScheduler, Random random, bool initialCommit)
+        private IndexWriter InitIndex(Random random, bool initialCommit)
         {
-            return InitIndex(newScheduler, random, NewMockDirectory(random), 
initialCommit);
+            return InitIndex(random, NewMockDirectory(random), initialCommit);
         }
 
-        private IndexWriter InitIndex(Func<IConcurrentMergeScheduler> 
newScheduler, Random random, MockDirectoryWrapper dir, bool initialCommit)
+        private IndexWriter InitIndex(Random random, MockDirectoryWrapper dir, 
bool initialCommit)
         {
             dir.SetLockFactory(NoLockFactory.GetNoLockFactory());
 
             IndexWriter writer = new IndexWriter(dir,
                 NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(random))
                 .SetMaxBufferedDocs(10)
-                .SetMergeScheduler(newScheduler()));
+                .SetMergeScheduler(new ConcurrentMergeScheduler()));
 
             IConcurrentMergeScheduler scheduler = writer.Config.MergeScheduler 
as IConcurrentMergeScheduler;
             if (scheduler != null)
@@ -82,13 +82,12 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void TestCrashWhileIndexing(
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestCrashWhileIndexing()
         {
             // this test relies on being able to open a reader before any 
commit
             // happened, so we must create an initial commit just to allow 
that, but
             // before any documents were added.
-            IndexWriter writer = InitIndex(newScheduler, Random, true);
+            IndexWriter writer = InitIndex(Random, true);
             MockDirectoryWrapper dir = (MockDirectoryWrapper)writer.Directory;
 
             // We create leftover files because merging could be
@@ -116,15 +115,13 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void TestWriterAfterCrash(
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler1,
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler2)
+        public virtual void TestWriterAfterCrash()
         {
             // this test relies on being able to open a reader before any 
commit
             // happened, so we must create an initial commit just to allow 
that, but
             // before any documents were added.
             Console.WriteLine("TEST: initIndex");
-            IndexWriter writer = InitIndex(newScheduler1, Random, true);
+            IndexWriter writer = InitIndex(Random, true);
             Console.WriteLine("TEST: done initIndex");
             MockDirectoryWrapper dir = (MockDirectoryWrapper)writer.Directory;
 
@@ -135,7 +132,7 @@ namespace Lucene.Net.Index
             dir.PreventDoubleWrite = false;
             Console.WriteLine("TEST: now crash");
             Crash(writer);
-            writer = InitIndex(newScheduler2, Random, dir, false);
+            writer = InitIndex(Random, dir, false);
             writer.Dispose();
 
             IndexReader reader = DirectoryReader.Open(dir);
@@ -157,11 +154,9 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void TestCrashAfterReopen(
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler1,
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler2)
+        public virtual void TestCrashAfterReopen()
         {
-            IndexWriter writer = InitIndex(newScheduler1, Random, false);
+            IndexWriter writer = InitIndex(Random, false);
             MockDirectoryWrapper dir = (MockDirectoryWrapper)writer.Directory;
 
             // We create leftover files because merging could be
@@ -169,7 +164,7 @@ namespace Lucene.Net.Index
             dir.AssertNoUnreferencedFilesOnClose = false;
 
             writer.Dispose();
-            writer = InitIndex(newScheduler2, Random, dir, false);
+            writer = InitIndex(Random, dir, false);
             Assert.AreEqual(314, writer.MaxDoc);
             Crash(writer);
 
@@ -201,10 +196,9 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void TestCrashAfterClose(
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestCrashAfterClose()
         {
-            IndexWriter writer = InitIndex(newScheduler, Random, false);
+            IndexWriter writer = InitIndex(Random, false);
             MockDirectoryWrapper dir = (MockDirectoryWrapper)writer.Directory;
 
             writer.Dispose();
@@ -224,10 +218,9 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void TestCrashAfterCloseNoWait(
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestCrashAfterCloseNoWait()
         {
-            IndexWriter writer = InitIndex(newScheduler, Random, false);
+            IndexWriter writer = InitIndex(Random, false);
             MockDirectoryWrapper dir = (MockDirectoryWrapper)writer.Directory;
 
             writer.Dispose(false);
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriter.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriter.cs
index dc706d8..cd80f74 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriter.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriter.cs
@@ -242,14 +242,13 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void 
TestChangesAfterClose([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestChangesAfterClose()
         {
             Directory dir = NewDirectory();
 
             IndexWriter writer = null;
 
-            var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMergeScheduler(newScheduler());
-            writer = new IndexWriter(dir, config);
+            writer = new IndexWriter(dir, 
NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random)));
             AddDoc(writer);
 
             // close
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs
index a17cd1f..8ab55c3 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs
@@ -1,4 +1,4 @@
-using J2N.Collections.Generic.Extensions;
+using J2N.Collections.Generic.Extensions;
 using J2N.Threading;
 using J2N.Threading.Atomic;
 using Lucene.Net.Analysis;
@@ -551,24 +551,22 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void TestDeletesOnDiskFull(
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestDeletesOnDiskFull()
         {
-            DoTestOperationsOnDiskFull(newScheduler, false);
+            DoTestOperationsOnDiskFull(false);
         }
 
         [Test]
-        public virtual void TestUpdatesOnDiskFull(
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestUpdatesOnDiskFull()
         {
-            DoTestOperationsOnDiskFull(newScheduler, true);
+            DoTestOperationsOnDiskFull(true);
         }
 
         /// <summary>
         /// Make sure if modifier tries to commit but hits disk full that 
modifier
         /// remains consistent and usable. Similar to 
TestIndexReader.testDiskFull().
         /// </summary>
-        private void 
DoTestOperationsOnDiskFull(Func<IConcurrentMergeScheduler> newScheduler, bool 
updates)
+        private void DoTestOperationsOnDiskFull(bool updates)
         {
             Term searchTerm = new Term("content", "aaa");
             int START_COUNT = 157;
@@ -613,7 +611,7 @@ namespace Lucene.Net.Index
                 var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random, MockTokenizer.WHITESPACE, false))
                                 .SetMaxBufferedDocs(1000)
                                 .SetMaxBufferedDeleteTerms(1000)
-                                .SetMergeScheduler(newScheduler());
+                                .SetMergeScheduler(new 
ConcurrentMergeScheduler());
 
                 IConcurrentMergeScheduler scheduler = config.MergeScheduler as 
IConcurrentMergeScheduler;
                 if (scheduler != null)
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs
index 35b944d..a597b86 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs
@@ -318,7 +318,7 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void 
TestRandomExceptions([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestRandomExceptions()
         {
             if (Verbose)
             {
@@ -329,19 +329,9 @@ namespace Lucene.Net.Index
             MockAnalyzer analyzer = new MockAnalyzer(Random);
             analyzer.EnableChecks = false; // disable workflow checking as we 
forcefully close() in exceptional cases.
 
-
-            var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, analyzer)
-                            .SetRAMBufferSizeMB(0.1)
-                            .SetMergeScheduler(newScheduler());
-
-            var scheduler = config.MergeScheduler as IConcurrentMergeScheduler;
-            if (scheduler != null)
-            {
-                scheduler.SetSuppressExceptions();
-            }
-            
-
-            IndexWriter writer = RandomIndexWriter.MockIndexWriter(dir, config 
, new TestPoint1(this));
+            IndexWriter writer = RandomIndexWriter.MockIndexWriter(dir, 
NewIndexWriterConfig(TEST_VERSION_CURRENT, analyzer)
+                .SetRAMBufferSizeMB(0.1).SetMergeScheduler(new 
ConcurrentMergeScheduler()) , new TestPoint1(this));
+            
((IConcurrentMergeScheduler)writer.Config.MergeScheduler).SetSuppressExceptions();
             //writer.SetMaxBufferedDocs(10);
             if (Verbose)
             {
@@ -386,24 +376,15 @@ namespace Lucene.Net.Index
 
         [Test]
         [Slow]
-        public virtual void 
TestRandomExceptionsThreads([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestRandomExceptionsThreads()
         {
             Directory dir = NewDirectory();
             MockAnalyzer analyzer = new MockAnalyzer(Random);
             analyzer.EnableChecks = false; // disable workflow checking as we 
forcefully close() in exceptional cases.
 
-            var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, analyzer)
-                            .SetRAMBufferSizeMB(0.2)
-                            .SetMergeScheduler(newScheduler());
-
-            IndexWriter writer = RandomIndexWriter.MockIndexWriter(dir, 
config, new TestPoint1(this));
-
-            var scheduler = config.MergeScheduler as IConcurrentMergeScheduler;
-            if (scheduler != null)
-            {
-                scheduler.SetSuppressExceptions();
-            }
-
+            IndexWriter writer = RandomIndexWriter.MockIndexWriter(dir, 
NewIndexWriterConfig(TEST_VERSION_CURRENT, analyzer)
+                .SetRAMBufferSizeMB(0.2).SetMergeScheduler(new 
ConcurrentMergeScheduler()), new TestPoint1(this));
+            
((IConcurrentMergeScheduler)writer.Config.MergeScheduler).SetSuppressExceptions();
             //writer.SetMaxBufferedDocs(10);
             writer.Commit();
 
@@ -578,15 +559,15 @@ namespace Lucene.Net.Index
 
         // LUCENE-1210
         [Test]
-        public virtual void 
TestExceptionOnMergeInit([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestExceptionOnMergeInit()
         {
             // LUCENENET specific - disable the test if asserts are not enabled
             AssumeTrue("This test requires asserts to be enabled.", 
Debugging.AssertsEnabled);
 
             Directory dir = NewDirectory();
-            IndexWriterConfig conf = 
NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMaxBufferedDocs(2).SetMergePolicy(NewLogMergePolicy());
-
-            var cms = newScheduler();
+            IndexWriterConfig conf = 
NewIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(Random))
+                .SetMaxBufferedDocs(2).SetMergePolicy(NewLogMergePolicy());
+            var cms = new ConcurrentMergeScheduler();
             cms.SetSuppressExceptions();
             conf.SetMergeScheduler(cms);
             ((LogMergePolicy)conf.MergePolicy).MergeFactor = 2;
@@ -1064,7 +1045,7 @@ namespace Lucene.Net.Index
 
         // LUCENE-1044: test exception during sync
         [Test]
-        public virtual void 
TestExceptionDuringSync([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestExceptionDuringSync()
         {
             MockDirectoryWrapper dir = NewMockDirectory();
             FailOnlyInSync failure = new FailOnlyInSync();
@@ -1072,7 +1053,7 @@ namespace Lucene.Net.Index
 
             var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             .SetMaxBufferedDocs(2)
-                            .SetMergeScheduler(newScheduler())
+                            .SetMergeScheduler(new ConcurrentMergeScheduler())
                             .SetMergePolicy(NewLogMergePolicy(5));
 
             IndexWriter writer = new IndexWriter(dir, config);
@@ -1188,7 +1169,7 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void 
TestForceMergeExceptions([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestForceMergeExceptions()
         {
             Directory startDir = NewDirectory();
             IndexWriterConfig conf = 
NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMaxBufferedDocs(2).SetMergePolicy(NewLogMergePolicy());
@@ -1208,7 +1189,7 @@ namespace Lucene.Net.Index
                     Console.WriteLine("TEST: iter " + i);
                 }
                 MockDirectoryWrapper dir = new MockDirectoryWrapper(Random, 
new RAMDirectory(startDir, NewIOContext(Random)));
-                conf = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMergeScheduler(newScheduler());
+                conf = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMergeScheduler(new ConcurrentMergeScheduler());
                 var scheduler = conf.MergeScheduler as 
IConcurrentMergeScheduler;
                 if (scheduler != null)
                 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
index f1640f6..d0c9c07 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Documents;
+using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
@@ -86,7 +86,7 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void 
TestMaxNumSegments2([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestMaxNumSegments2()
         {
             Directory dir = NewDirectory();
 
@@ -99,7 +99,7 @@ namespace Lucene.Net.Index
             var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             .SetMaxBufferedDocs(2)
                             .SetMergePolicy(ldmp)
-                            .SetMergeScheduler(newScheduler());
+                            .SetMergeScheduler(new ConcurrentMergeScheduler());
             IndexWriter writer = new IndexWriter(dir, config);
 
             for (int iter = 0; iter < 10; iter++)
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterMergePolicy.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriterMergePolicy.cs
index b25f422..c04b652 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterMergePolicy.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterMergePolicy.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Documents;
+using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
@@ -179,7 +179,7 @@ namespace Lucene.Net.Index
 
         // Test the case where a merge results in no doc at all
         [Test]
-        public virtual void 
TestMergeDocCount0([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestMergeDocCount0()
         {
             Directory dir = NewDirectory();
 
@@ -205,7 +205,7 @@ namespace Lucene.Net.Index
                 .SetOpenMode(OpenMode.APPEND)
                 .SetMaxBufferedDocs(10)
                 .SetMergePolicy(ldmp)
-                .SetMergeScheduler(newScheduler());
+                .SetMergeScheduler(new ConcurrentMergeScheduler());
             writer = new IndexWriter(dir, config);
 
             // merge factor is changed, so check invariants after all adds
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs
index 5e89cff..cbe0089 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Codecs;
+using Lucene.Net.Codecs;
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
@@ -637,12 +637,12 @@ namespace Lucene.Net.Index
         // an IndexWriter (hit during DW.ThreadState.Init()) is
         // OK:
         [Test]
-        public virtual void 
TestImmediateDiskFull([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestImmediateDiskFull()
         {
             MockDirectoryWrapper dir = NewMockDirectory();
             var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             .SetMaxBufferedDocs(2)
-                            .SetMergeScheduler(newScheduler());
+                            .SetMergeScheduler(new ConcurrentMergeScheduler());
             IndexWriter writer = new IndexWriter(dir, config);
             dir.MaxSizeInBytes = Math.Max(1, 
dir.GetRecomputedActualSizeInBytes());
             Document doc = new Document();
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs
index 34faea0..cc4a9eb 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs
@@ -1,4 +1,4 @@
-using J2N.Threading;
+using J2N.Threading;
 using J2N.Threading.Atomic;
 using Lucene.Net.Attributes;
 using Lucene.Net.Documents;
@@ -749,7 +749,7 @@ namespace Lucene.Net.Index
 
         [Test]
         [Slow]
-        public virtual void 
TestMergeWarmer([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestMergeWarmer()
         {
             Directory dir1 = GetAssertNoDeletesDirectory(NewDirectory());
             // Enroll warmer
@@ -757,7 +757,7 @@ namespace Lucene.Net.Index
             var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
                             .SetMaxBufferedDocs(2)
                             .SetMergedSegmentWarmer(warmer)
-                            .SetMergeScheduler(newScheduler())
+                            .SetMergeScheduler(new ConcurrentMergeScheduler())
                             .SetMergePolicy(NewLogMergePolicy());
             IndexWriter writer = new IndexWriter(dir1, config);
 
@@ -792,10 +792,10 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void 
TestAfterCommit([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestAfterCommit()
         {
             Directory dir1 = GetAssertNoDeletesDirectory(NewDirectory());
-            var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMergeScheduler(newScheduler());
+            var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMergeScheduler(new ConcurrentMergeScheduler());
             IndexWriter writer = new IndexWriter(dir1, config);
             writer.Commit();
 
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs 
b/src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs
index 36c2d7f..342f2d9 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs
@@ -1,4 +1,4 @@
-using J2N.Threading;
+using J2N.Threading;
 using J2N.Threading.Atomic;
 using Lucene.Net.Attributes;
 using Lucene.Net.Documents;
@@ -164,7 +164,7 @@ namespace Lucene.Net.Index
         // an IndexWriter (hit during DW.ThreadState.Init()), with
         // multiple threads, is OK:
         [Test]
-        public virtual void 
TestImmediateDiskFullWithThreads([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestImmediateDiskFullWithThreads()
         {
             int NUM_THREADS = 3;
             int numIterations = TestNightly ? 10 : 3;
@@ -175,16 +175,14 @@ namespace Lucene.Net.Index
                     Console.WriteLine("\nTEST: iter=" + iter);
                 }
                 MockDirectoryWrapper dir = NewMockDirectory();
-                var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
-                                .SetMaxBufferedDocs(2)
-                                .SetMergeScheduler(newScheduler())
-                                .SetMergePolicy(NewLogMergePolicy(4));
-                IndexWriter writer = new IndexWriter(dir, config);
-                var scheduler = config.mergeScheduler as 
IConcurrentMergeScheduler;
-                if (scheduler != null)
-                {
-                    scheduler.SetSuppressExceptions();
-                }
+                IndexWriter writer = new IndexWriter(
+                    dir,
+                    NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
+                        .SetMaxBufferedDocs(2)
+                        .SetMergeScheduler(new ConcurrentMergeScheduler())
+                        .SetMergePolicy(NewLogMergePolicy(4)));
+                
((IConcurrentMergeScheduler)writer.Config.MergeScheduler).SetSuppressExceptions();
+
                 dir.MaxSizeInBytes = 4 * 1024 + 20 * iter;
 
                 IndexerThread[] threads = new IndexerThread[NUM_THREADS];
@@ -220,7 +218,7 @@ namespace Lucene.Net.Index
         // speaking, this isn't valid us of Lucene's APIs, but we
         // still want to be robust to this case:
         [Test]
-        public virtual void 
TestCloseWithThreads([ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestCloseWithThreads()
         {
             int NUM_THREADS = 3;
             int numIterations = TestNightly ? 7 : 3;
@@ -231,16 +229,13 @@ namespace Lucene.Net.Index
                     Console.WriteLine("\nTEST: iter=" + iter);
                 }
                 Directory dir = NewDirectory();
-                var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
-                                .SetMaxBufferedDocs(10)
-                                .SetMergeScheduler(newScheduler())
-                                .SetMergePolicy(NewLogMergePolicy(4));
-                IndexWriter writer = new IndexWriter(dir, config);
-                var scheduler = config.mergeScheduler as 
IConcurrentMergeScheduler;
-                if (scheduler != null)
-                {
-                    scheduler.SetSuppressExceptions();
-                }
+                IndexWriter writer = new IndexWriter(
+                    dir,
+                    NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
+                        .SetMaxBufferedDocs(10)
+                        .SetMergeScheduler(new ConcurrentMergeScheduler())
+                        .SetMergePolicy(NewLogMergePolicy(4)));
+                
((IConcurrentMergeScheduler)writer.Config.MergeScheduler).SetSuppressExceptions();
 
                 IndexerThread[] threads = new IndexerThread[NUM_THREADS];
 
@@ -314,7 +309,7 @@ namespace Lucene.Net.Index
 
         // Runs test, with multiple threads, using the specific
         // failure to trigger an IOException
-        public virtual void 
TestMultipleThreadsFailure(Func<IConcurrentMergeScheduler> newScheduler, 
Failure failure)
+        public virtual void TestMultipleThreadsFailure(Failure failure)
         {
             int NUM_THREADS = 3;
 
@@ -325,16 +320,13 @@ namespace Lucene.Net.Index
                     Console.WriteLine("TEST: iter=" + iter);
                 }
                 MockDirectoryWrapper dir = NewMockDirectory();
-                var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
-                                .SetMaxBufferedDocs(2)
-                                .SetMergeScheduler(newScheduler())
-                                .SetMergePolicy(NewLogMergePolicy(4));
-                IndexWriter writer = new IndexWriter(dir, config);
-                var scheduler = config.mergeScheduler as 
IConcurrentMergeScheduler;
-                if (scheduler != null)
-                {
-                    scheduler.SetSuppressExceptions();
-                }
+                IndexWriter writer = new IndexWriter(
+                    dir,
+                    NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
+                        .SetMaxBufferedDocs(2)
+                        .SetMergeScheduler(new ConcurrentMergeScheduler())
+                        .SetMergePolicy(NewLogMergePolicy(4)));
+                
((IConcurrentMergeScheduler)writer.Config.MergeScheduler).SetSuppressExceptions();
 
                 IndexerThread[] threads = new IndexerThread[NUM_THREADS];
 
@@ -396,11 +388,11 @@ namespace Lucene.Net.Index
 
         // Runs test, with one thread, using the specific failure
         // to trigger an IOException
-        public virtual void 
TestSingleThreadFailure(Func<IConcurrentMergeScheduler> newScheduler, Failure 
failure)
+        public virtual void TestSingleThreadFailure(Failure failure)
         {
             MockDirectoryWrapper dir = NewMockDirectory();
 
-            IndexWriter writer = new IndexWriter(dir, 
NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMaxBufferedDocs(2).SetMergeScheduler(newScheduler()));
+            IndexWriter writer = new IndexWriter(dir, 
NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMaxBufferedDocs(2).SetMergeScheduler(new 
ConcurrentMergeScheduler()));
             Document doc = new Document();
             FieldType customType = new FieldType(TextField.TYPE_STORED);
             customType.StoreTermVectors = true;
@@ -475,33 +467,33 @@ namespace Lucene.Net.Index
         // LUCENE-1130: make sure initial IOException, and then 2nd
         // IOException during rollback(), is OK:
         [Test]
-        public virtual void 
TestIOExceptionDuringAbort([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestIOExceptionDuringAbort()
         {
-            TestSingleThreadFailure(newScheduler, new 
FailOnlyOnAbortOrFlush(false));
+            TestSingleThreadFailure(new FailOnlyOnAbortOrFlush(false));
         }
 
         // LUCENE-1130: make sure initial IOException, and then 2nd
         // IOException during rollback(), is OK:
         [Test]
-        public virtual void 
TestIOExceptionDuringAbortOnlyOnce([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestIOExceptionDuringAbortOnlyOnce()
         {
-            TestSingleThreadFailure(newScheduler, new 
FailOnlyOnAbortOrFlush(true));
+            TestSingleThreadFailure(new FailOnlyOnAbortOrFlush(true));
         }
 
         // LUCENE-1130: make sure initial IOException, and then 2nd
         // IOException during rollback(), with multiple threads, is OK:
         [Test]
-        public virtual void 
TestIOExceptionDuringAbortWithThreads([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestIOExceptionDuringAbortWithThreads()
         {
-            TestMultipleThreadsFailure(newScheduler, new 
FailOnlyOnAbortOrFlush(false));
+            TestMultipleThreadsFailure(new FailOnlyOnAbortOrFlush(false));
         }
 
         // LUCENE-1130: make sure initial IOException, and then 2nd
         // IOException during rollback(), with multiple threads, is OK:
         [Test]
-        public virtual void 
TestIOExceptionDuringAbortWithThreadsOnlyOnce([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestIOExceptionDuringAbortWithThreadsOnlyOnce()
         {
-            TestMultipleThreadsFailure(newScheduler, new 
FailOnlyOnAbortOrFlush(true));
+            TestMultipleThreadsFailure( new FailOnlyOnAbortOrFlush(true));
         }
 
         // Throws IOException during DocumentsWriter.writeSegment
@@ -536,30 +528,30 @@ namespace Lucene.Net.Index
 
         // LUCENE-1130: test IOException in writeSegment
         [Test]
-        public virtual void 
TestIOExceptionDuringWriteSegment([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestIOExceptionDuringWriteSegment()
         {
-            TestSingleThreadFailure(newScheduler, new 
FailOnlyInWriteSegment(false));
+            TestSingleThreadFailure(new FailOnlyInWriteSegment(false));
         }
 
         // LUCENE-1130: test IOException in writeSegment
         [Test]
-        public virtual void 
TestIOExceptionDuringWriteSegmentOnlyOnce([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestIOExceptionDuringWriteSegmentOnlyOnce()
         {
-            TestSingleThreadFailure(newScheduler, new 
FailOnlyInWriteSegment(true));
+            TestSingleThreadFailure(new FailOnlyInWriteSegment(true));
         }
 
         // LUCENE-1130: test IOException in writeSegment, with threads
         [Test]
-        public virtual void 
TestIOExceptionDuringWriteSegmentWithThreads([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestIOExceptionDuringWriteSegmentWithThreads()
         {
-            TestMultipleThreadsFailure(newScheduler, new 
FailOnlyInWriteSegment(false));
+            TestMultipleThreadsFailure(new FailOnlyInWriteSegment(false));
         }
 
         // LUCENE-1130: test IOException in writeSegment, with threads
         [Test]
-        public virtual void 
TestIOExceptionDuringWriteSegmentWithThreadsOnlyOnce([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void 
TestIOExceptionDuringWriteSegmentWithThreadsOnlyOnce()
         {
-            TestMultipleThreadsFailure(newScheduler, new 
FailOnlyInWriteSegment(true));
+            TestMultipleThreadsFailure(new FailOnlyInWriteSegment(true));
         }
 
         //  LUCENE-3365: Test adding two documents with the same field from 
two different IndexWriters
diff --git a/src/Lucene.Net.Tests/Index/TestStressIndexing.cs 
b/src/Lucene.Net.Tests/Index/TestStressIndexing.cs
index fb35c63..fb31695 100644
--- a/src/Lucene.Net.Tests/Index/TestStressIndexing.cs
+++ b/src/Lucene.Net.Tests/Index/TestStressIndexing.cs
@@ -1,4 +1,4 @@
-using J2N.Threading;
+using J2N.Threading;
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Search;
@@ -227,7 +227,7 @@ namespace Lucene.Net.Index
 
         [Test]
         [Slow]
-        public virtual void 
TestStressIndexAndSearching([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestStressIndexAndSearching()
         {
             Directory directory = NewDirectory();
             MockDirectoryWrapper wrapper = directory as MockDirectoryWrapper;
@@ -236,7 +236,7 @@ namespace Lucene.Net.Index
                 wrapper.AssertNoUnreferencedFilesOnClose = true;
             }
 
-            RunStressTest(directory, newScheduler());
+            RunStressTest(directory, new ConcurrentMergeScheduler());
             directory.Dispose();
         }
     }
diff --git a/src/Lucene.Net.Tests/Index/TestTransactions.cs 
b/src/Lucene.Net.Tests/Index/TestTransactions.cs
index de42270..cc93685 100644
--- a/src/Lucene.Net.Tests/Index/TestTransactions.cs
+++ b/src/Lucene.Net.Tests/Index/TestTransactions.cs
@@ -1,4 +1,4 @@
-using J2N.Threading;
+using J2N.Threading;
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
@@ -114,8 +114,6 @@ namespace Lucene.Net.Index
         private class IndexerThread : TimedThread
         {
             private readonly TestTransactions outerInstance;
-            private Func<IConcurrentMergeScheduler> newScheduler1;
-            private Func<IConcurrentMergeScheduler> newScheduler2;
             internal Directory dir1;
             internal Directory dir2;
             internal object @lock;
@@ -123,12 +121,9 @@ namespace Lucene.Net.Index
 
             public IndexerThread(TestTransactions outerInstance, object @lock, 
                 Directory dir1, Directory dir2,
-                Func<IConcurrentMergeScheduler> newScheduler1, 
Func<IConcurrentMergeScheduler> newScheduler2,
                 TimedThread[] threads)
                 : base(threads)
             {
-                this.newScheduler1 = newScheduler1;
-                this.newScheduler2 = newScheduler2;
                 this.outerInstance = outerInstance;
                 this.@lock = @lock;
                 this.dir1 = dir1;
@@ -142,9 +137,9 @@ namespace Lucene.Net.Index
                     outerInstance,
 #endif
                     TEST_VERSION_CURRENT, new MockAnalyzer(Random))
-                                .SetMaxBufferedDocs(3)
-                                .SetMergeScheduler(newScheduler1())
-                                .SetMergePolicy(NewLogMergePolicy(2));
+                        .SetMaxBufferedDocs(3)
+                        .SetMergeScheduler(new ConcurrentMergeScheduler())
+                        .SetMergePolicy(NewLogMergePolicy(2));
                 IndexWriter writer1 = new IndexWriter(dir1, config);
                 
((IConcurrentMergeScheduler)writer1.Config.MergeScheduler).SetSuppressExceptions();
 
@@ -155,9 +150,9 @@ namespace Lucene.Net.Index
                     outerInstance,
 #endif
                     TEST_VERSION_CURRENT, new MockAnalyzer(Random))
-                                .SetMaxBufferedDocs(2)
-                                .SetMergeScheduler(newScheduler2())
-                                .SetMergePolicy(NewLogMergePolicy(3));
+                        .SetMaxBufferedDocs(2)
+                        .SetMergeScheduler(new ConcurrentMergeScheduler())
+                        .SetMergePolicy(NewLogMergePolicy(3));
                 IndexWriter writer2 = new IndexWriter(dir2, config2);
                 
((IConcurrentMergeScheduler)writer2.Config.MergeScheduler).SetSuppressExceptions();
 
@@ -291,9 +286,7 @@ namespace Lucene.Net.Index
         }
 
         [Test]
-        public virtual void TestTransactions_Mem(
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler1,
-            [ValueSource(typeof(ConcurrentMergeSchedulerFactories), 
"Values")]Func<IConcurrentMergeScheduler> newScheduler2)
+        public virtual void TestTransactions_Mem()
         {
             Console.WriteLine("start test");
             // we cant use non-ramdir on windows, because this test needs to 
double-write.
@@ -317,7 +310,7 @@ namespace Lucene.Net.Index
             TimedThread[] threads = new TimedThread[3];
             int numThread = 0;
 
-            IndexerThread indexerThread = new IndexerThread(this, this, dir1, 
dir2, newScheduler1, newScheduler2, threads);
+            IndexerThread indexerThread = new IndexerThread(this, this, dir1, 
dir2, threads);
 
             threads[numThread++] = indexerThread;
             indexerThread.Start();
diff --git a/src/Lucene.Net.Tests/Search/TestSearcherManager.cs 
b/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
index e95f944..7adc3aa 100644
--- a/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
+++ b/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
@@ -1,4 +1,4 @@
-using J2N.Threading;
+using J2N.Threading;
 using J2N.Threading.Atomic;
 using Lucene.Net.Index;
 using Lucene.Net.Index.Extensions;
@@ -429,11 +429,11 @@ namespace Lucene.Net.Search
         }
 
         [Test]
-        public virtual void 
TestReferenceDecrementIllegally([ValueSource(typeof(ConcurrentMergeSchedulerFactories),
 "Values")]Func<IConcurrentMergeScheduler> newScheduler)
+        public virtual void TestReferenceDecrementIllegally()
         {
             Directory dir = NewDirectory();
-            var config = NewIndexWriterConfig(TEST_VERSION_CURRENT, new 
MockAnalyzer(Random))
-                            .SetMergeScheduler(newScheduler());
+            var config = NewIndexWriterConfig(
+                TEST_VERSION_CURRENT, new 
MockAnalyzer(Random)).SetMergeScheduler(new ConcurrentMergeScheduler());
             IndexWriter writer = new IndexWriter(dir, config);
             SearcherManager sm = new SearcherManager(writer, false, new 
SearcherFactory());
             writer.AddDocument(new Document());

Reply via email to