protected internal 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");
}