From d4f03f72aeea5c17b77fef0740ba7aad7ce9f6cf Mon Sep 17 00:00:00 2001 From: Tomas Eduardo Fernandez Lobbe Date: Sat, 20 Dec 2014 06:18:37 +0000 Subject: [PATCH] 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 --- .../conf/solrconfig-searcher-listeners1.xml | 2 ++ .../test/org/apache/solr/search/TestIndexSearcher.java | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-searcher-listeners1.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-searcher-listeners1.xml index 24fe6c907bf..4a5bb7d677e 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-searcher-listeners1.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-searcher-listeners1.xml @@ -42,6 +42,8 @@ + + false diff --git a/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java b/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java index 068f44f0893..8479fd3ce5e 100644 --- a/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java +++ b/solr/core/src/test/org/apache/solr/search/TestIndexSearcher.java @@ -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(); } - } }