SOLR-6864: Fix test race condition, make test wait for warming in TestIndexSearcher

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1646918 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Tomas Eduardo Fernandez Lobbe 2014-12-20 06:18:37 +00:00
parent ec5364fa51
commit d4f03f72ae
2 changed files with 11 additions and 1 deletions

View File

@ -43,5 +43,7 @@
<searchComponent name="mock" class="org.apache.solr.search.TestIndexSearcher$MockSearchComponent"/>
<query><useColdSearcher>false</useColdSearcher></query>
</config>

View File

@ -19,7 +19,9 @@ package org.apache.solr.search;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.lucene.index.IndexReader;
@ -206,6 +208,7 @@ public class TestIndexSearcher extends SolrTestCaseJ4 {
// reset counters
MockSearcherListener.numberOfTimesCalled = new AtomicInteger();
MockSearcherListener.numberOfTimesCalledFirstSearcher = new AtomicInteger();
MockSearcherListener.latch = new CountDownLatch(numTimesCalled);
try {
CoreDescriptor newCd = new CoreDescriptor(cores, "core1", cd.getInstanceDir(), "config", "solrconfig-searcher-listeners1.xml");
@ -216,6 +219,10 @@ public class TestIndexSearcher extends SolrTestCaseJ4 {
assertNotNull(newCore.getSearchComponent("mock"));
assertEquals(MockSearchComponent.class, newCore.getSearchComponent("mock").getClass());
if (numTimesCalled > 0) {
MockSearcherListener.latch.await(10, TimeUnit.SECONDS);
}
assertEquals(numTimesCalled, MockSearcherListener.numberOfTimesCalled.get());
assertEquals(numTimesCalledFirstSearcher, MockSearcherListener.numberOfTimesCalledFirstSearcher.get());
@ -274,6 +281,7 @@ public class TestIndexSearcher extends SolrTestCaseJ4 {
static AtomicInteger numberOfTimesCalled;
static AtomicInteger numberOfTimesCalledFirstSearcher;
static CountDownLatch latch;
@Override
public void init(NamedList args) {}
@ -291,7 +299,7 @@ public class TestIndexSearcher extends SolrTestCaseJ4 {
if (currentSearcher == null) {
numberOfTimesCalledFirstSearcher.incrementAndGet();
}
latch.countDown();
}
}
}