protected override void DoSearching(TaskScheduler es, DateTime stopTime) { bool anyOpenDelFiles = false; DirectoryReader r = DirectoryReader.Open(Writer, true); while (DateTime.UtcNow < stopTime && !Failed.Get()) { if (Random().NextBoolean()) { if (VERBOSE) { Console.WriteLine("TEST: now reopen r=" + r); } DirectoryReader r2 = DirectoryReader.OpenIfChanged(r); if (r2 != null) { r.Dispose(); r = r2; } } else { if (VERBOSE) { Console.WriteLine("TEST: now close reader=" + r); } r.Dispose(); Writer.Commit(); ISet <string> openDeletedFiles = ((MockDirectoryWrapper)Dir).OpenDeletedFiles; if (openDeletedFiles.Count > 0) { Console.WriteLine("OBD files: " + openDeletedFiles); } anyOpenDelFiles |= openDeletedFiles.Count > 0; //Assert.AreEqual("open but deleted: " + openDeletedFiles, 0, openDeletedFiles.Size()); if (VERBOSE) { Console.WriteLine("TEST: now open"); } r = DirectoryReader.Open(Writer, true); } if (VERBOSE) { Console.WriteLine("TEST: got new reader=" + r); } //System.out.println("numDocs=" + r.NumDocs + " //openDelFileCount=" + dir.openDeleteFileCount()); if (r.NumDocs > 0) { FixedSearcher = new IndexSearcher(r, es); SmokeTestSearcher(FixedSearcher); RunSearchThreads(DateTime.UtcNow.AddMilliseconds(500)); } } r.Dispose(); //System.out.println("numDocs=" + r.NumDocs + " openDelFileCount=" + dir.openDeleteFileCount()); ISet <string> openDeletedFiles_ = ((MockDirectoryWrapper)Dir).OpenDeletedFiles; if (openDeletedFiles_.Count > 0) { Console.WriteLine("OBD files: " + openDeletedFiles_); } anyOpenDelFiles |= openDeletedFiles_.Count > 0; Assert.IsFalse(anyOpenDelFiles, "saw non-zero open-but-deleted count"); }