You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by th...@apache.org on 2020/08/28 20:09:56 UTC
[lucene-solr] 02/03: Re-enable a few client tests in impl package,
still WIP
This is an automated email from the ASF dual-hosted git repository.
thelabdude pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 4d9b4ad7ef1477141ffcc6476cda84bf71657ffe
Author: Timothy Potter <th...@gmail.com>
AuthorDate: Fri Aug 28 14:09:20 2020 -0600
Re-enable a few client tests in impl package, still WIP
---
.../client/solrj/impl/CloudHttp2SolrClient.java | 4 +-
.../solr/client/solrj/impl/LBHttpSolrClient.java | 4 +-
.../client/solrj/impl/CloudSolrClientTest.java | 4 +-
.../impl/ConcurrentUpdateHttp2SolrClientTest.java | 2 +-
.../ConcurrentUpdateSolrClientBadInputTest.java | 4 +-
...currentUpdateSolrClientMultiCollectionTest.java | 3 +-
.../solrj/impl/ConcurrentUpdateSolrClientTest.java | 30 +++---
.../impl/Http2SolrClientCompatibilityTest.java | 12 +--
.../client/solrj/impl/Http2SolrClientTest.java | 6 +-
.../solrj/impl/HttpSolrClientConPoolTest.java | 101 ++++++++++-----------
.../solrj/impl/LBHttpSolrClientBadInputTest.java | 4 +-
11 files changed, 81 insertions(+), 93 deletions(-)
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
index 4d45fe1..1f7ad8f 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudHttp2SolrClient.java
@@ -70,10 +70,10 @@ public class CloudHttp2SolrClient extends BaseCloudSolrClient {
this.clientIsInternal = builder.httpClient == null;
this.myClient = (builder.httpClient == null) ? new Http2SolrClient.Builder().withHeaders(builder.headers).build() : builder.httpClient;
if (builder.stateProvider == null) {
- if (builder.zkHosts != null && builder.solrUrls != null) {
+ if ((builder.zkHosts != null && !builder.zkHosts.isEmpty()) && builder.solrUrls != null) {
throw new IllegalArgumentException("Both zkHost(s) & solrUrl(s) have been specified. Only specify one.");
}
- if (builder.zkHosts != null) {
+ if (builder.zkHosts != null && !builder.zkHosts.isEmpty()) {
this.zkStateReader = new ZkStateReader(ZkClientClusterStateProvider.buildZkHostString(builder.zkHosts, builder.zkChroot), 40000, 15000);
this.zkStateReader.createClusterStateWatchersAndUpdate();
this.stateProvider = new ZkClientClusterStateProvider(zkStateReader, false);
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java
index 98443ff..055c0f0 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java
@@ -360,7 +360,9 @@ public class LBHttpSolrClient extends LBSolrClient {
* requires that the core is specified on all requests.
*/
public Builder withBaseSolrUrl(String baseSolrUrl) {
- this.baseSolrUrls.add(baseSolrUrl);
+ if (baseSolrUrl != null) {
+ this.baseSolrUrls.add(baseSolrUrl);
+ }
return this;
}
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java
index 6dae1b7..59e8bba 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientTest.java
@@ -88,7 +88,7 @@ import org.slf4j.LoggerFactory;
* This test would be faster if we simulated the zk state instead.
*/
@Slow
-@Ignore // nocommit debug
+@Ignore // nocommit debug, TJP WIP ...
public class CloudSolrClientTest extends SolrCloudTestCase {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -244,7 +244,7 @@ public class CloudSolrClientTest extends SolrCloudTestCase {
if (getRandomClient().isDirectUpdatesToLeadersOnly()) {
checkSingleServer(response);
}
- CloudSolrClient.RouteResponse rr = (CloudSolrClient.RouteResponse) response;
+ BaseCloudSolrClient.RouteResponse rr = (BaseCloudSolrClient.RouteResponse) response;
Map<String,LBHttpSolrClient.Req> routes = rr.getRoutes();
Iterator<Map.Entry<String,LBHttpSolrClient.Req>> it = routes.entrySet()
.iterator();
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClientTest.java
index 178f923..6d83d58 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClientTest.java
@@ -37,7 +37,7 @@ import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
-@Ignore // nocommit debug
+@Ignore // nocommit debug, TJP ~ still problematic
public class ConcurrentUpdateHttp2SolrClientTest extends SolrJettyTestBase {
private static JettySolrRunner jetty;
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientBadInputTest.java
index 68230ef..c7afbe2 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientBadInputTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientBadInputTest.java
@@ -27,12 +27,10 @@ import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.embedded.JettyConfig;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import static org.hamcrest.core.StringContains.containsString;
-@Ignore // nocommit debug
public class ConcurrentUpdateSolrClientBadInputTest extends SolrJettyTestBase {
private static final List<String> NULL_STR_LIST = null;
private static final List<String> EMPTY_STR_LIST = new ArrayList<>();
@@ -83,7 +81,7 @@ public class ConcurrentUpdateSolrClientBadInputTest extends SolrJettyTestBase {
}
}
- private void assertExceptionThrownWithMessageContaining(Class expectedType, List<String> expectedStrings, LuceneTestCase.ThrowingRunnable runnable) {
+ private void assertExceptionThrownWithMessageContaining(Class<? extends Exception> expectedType, List<String> expectedStrings, LuceneTestCase.ThrowingRunnable runnable) {
Throwable thrown = expectThrows(expectedType, runnable);
if (expectedStrings != null) {
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientMultiCollectionTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientMultiCollectionTest.java
index 255e19d..a9a3edc 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientMultiCollectionTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientMultiCollectionTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.client.solrj.impl;
+
import java.io.File;
import java.io.IOException;
@@ -29,14 +30,12 @@ import org.apache.solr.util.ExternalPaths;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
/**
* {@link ConcurrentUpdateSolrClient} reuses the same HTTP connection to send multiple requests. These tests ensure
* that this connection-reuse never results in documents being sent to the wrong collection. See SOLR-12803
*/
-@Ignore // nocommit debug
public class ConcurrentUpdateSolrClientMultiCollectionTest extends SolrCloudTestCase {
private static final String COLLECTION_ONE_NAME = "collection1";
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
index 841bf8e..50c8dfa 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientTest.java
@@ -16,6 +16,20 @@
*/
package org.apache.solr.client.solrj.impl;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.EOFException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
import org.apache.http.HttpResponse;
import org.apache.solr.SolrJettyTestBase;
import org.apache.solr.client.solrj.SolrClient;
@@ -30,24 +44,8 @@ import org.apache.solr.common.util.ExecutorUtil;
import org.apache.solr.common.util.SolrNamedThreadFactory;
import org.eclipse.jetty.servlet.ServletHolder;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-
-@Ignore // nocommit debug
public class ConcurrentUpdateSolrClientTest extends SolrJettyTestBase {
private static JettySolrRunner jetty;
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientCompatibilityTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientCompatibilityTest.java
index 9e050f7..c9f268f 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientCompatibilityTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientCompatibilityTest.java
@@ -28,15 +28,11 @@ import org.apache.solr.util.LogLevel;
import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP;
import org.eclipse.jetty.http2.client.http.HttpClientTransportOverHTTP2;
import org.eclipse.jetty.servlet.ServletHolder;
-import org.junit.Ignore;
@LogLevel("org.eclipse.jetty.client=DEBUG;org.eclipse.jetty.util=DEBUG")
@SolrTestCaseJ4.SuppressSSL
-@Ignore // nocommit flakey
public class Http2SolrClientCompatibilityTest extends SolrJettyTestBase {
- private JettySolrRunner jetty;
-
public void testSystemPropertyFlag() {
System.setProperty("solr.http1", "true");
try (Http2SolrClient client = new Http2SolrClient.Builder()
@@ -56,9 +52,9 @@ public class Http2SolrClientCompatibilityTest extends SolrJettyTestBase {
.withServlet(new ServletHolder(Http2SolrClientTest.DebugServlet.class), "/debug/*")
.useOnlyHttp1(true)
.build();
- createAndStartJetty(legacyExampleCollection1SolrHome(), jettyConfig);
+ JettySolrRunner jetty = createAndStartJetty(legacyExampleCollection1SolrHome(), jettyConfig);
- try (Http2SolrClient client = new Http2SolrClient.Builder(jetty.getBaseUrl().toString() + "/debug/foo")
+ try (Http2SolrClient client = new Http2SolrClient.Builder(jetty.getBaseUrl() + "/debug/foo")
.useHttp1_1(true)
.build()) {
assertTrue(client.getHttpClient().getTransport() instanceof HttpClientTransportOverHTTP);
@@ -76,7 +72,7 @@ public class Http2SolrClientCompatibilityTest extends SolrJettyTestBase {
.withServlet(new ServletHolder(Http2SolrClientTest.DebugServlet.class), "/debug/*")
.useOnlyHttp1(false)
.build();
- createAndStartJetty(legacyExampleCollection1SolrHome(), jettyConfig);
+ JettySolrRunner jetty = createAndStartJetty(legacyExampleCollection1SolrHome(), jettyConfig);
try (Http2SolrClient client = new Http2SolrClient.Builder(jetty.getBaseUrl().toString() + "/debug/foo")
.useHttp1_1(true)
@@ -97,7 +93,7 @@ public class Http2SolrClientCompatibilityTest extends SolrJettyTestBase {
.withServlet(new ServletHolder(Http2SolrClientTest.DebugServlet.class), "/debug/*")
.useOnlyHttp1(true)
.build();
- createAndStartJetty(legacyExampleCollection1SolrHome(), jettyConfig);
+ JettySolrRunner jetty = createAndStartJetty(legacyExampleCollection1SolrHome(), jettyConfig);
System.clearProperty("solr.http1");
try (Http2SolrClient client = new Http2SolrClient.Builder(jetty.getBaseUrl().toString() + "/debug/foo")
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientTest.java
index a42da1d..a843be8 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/Http2SolrClientTest.java
@@ -47,14 +47,12 @@ import org.apache.solr.common.util.SuppressForbidden;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
-@Ignore // nocommit debug
public class Http2SolrClientTest extends SolrJettyTestBase {
private static final String EXPECTED_USER_AGENT = "Solr[" + Http2SolrClient.class.getName() + "] 2.0";
- private JettySolrRunner jetty;
+ private static JettySolrRunner jetty;
public static class DebugServlet extends HttpServlet {
public static void clear() {
@@ -158,7 +156,7 @@ public class Http2SolrClientTest extends SolrJettyTestBase {
.withServlet(new ServletHolder(DebugServlet.class), "/debug/*")
.withSSLConfig(sslConfig.buildServerSSLConfig())
.build();
- createAndStartJetty(legacyExampleCollection1SolrHome(), jettyConfig);
+ jetty = createAndStartJetty(legacyExampleCollection1SolrHome(), jettyConfig);
}
private Http2SolrClient getHttp2SolrClient(String url, int connectionTimeOut, int socketTimeout) {
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientConPoolTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientConPoolTest.java
index 9d1e023..4926720 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientConPoolTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpSolrClientConPoolTest.java
@@ -37,25 +37,21 @@ import org.apache.solr.common.util.ExecutorUtil;
import org.apache.solr.common.util.SolrNamedThreadFactory;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.junit.Ignore;
-@Ignore // nocommit debug later
public class HttpSolrClientConPoolTest extends SolrJettyTestBase {
protected static JettySolrRunner yetty;
- private static String fooUrl;
- private static String barUrl;
+ private static String jettyUrl;
+ private static String yettyUrl;
protected static JettySolrRunner jetty;
@BeforeClass
public static void beforeTest() throws Exception {
- createAndStartJetty(legacyExampleCollection1SolrHome());
- // stealing the first made jetty
- yetty = createAndStartJetty(legacyExampleCollection1SolrHome());;
- barUrl = yetty.getBaseUrl().toString() + "/" + "collection1";
+ yetty = createAndStartJetty(legacyExampleCollection1SolrHome());
+ yettyUrl = yetty.getBaseUrl() + "/" + "collection1";
jetty = createAndStartJetty(legacyExampleCollection1SolrHome());
-
+ jettyUrl = jetty.getBaseUrl() + "/" + "collection1";
}
@AfterClass
@@ -64,54 +60,55 @@ public class HttpSolrClientConPoolTest extends SolrJettyTestBase {
yetty.stop();
yetty = null;
}
+ if (null != jetty) {
+ jetty.stop();
+ jetty = null;
+ }
}
public void testPoolSize() throws SolrServerException, IOException {
- final Http2SolrClient client1;
- final String fooUrl;
- {
- fooUrl = jetty.getBaseUrl().toString() + "/" + "collection1";
- client1 = getHttpSolrClient(fooUrl);
- }
- final String barUrl = yetty.getBaseUrl().toString() + "/" + "collection1";
-
- {
- client1.setBaseUrl(fooUrl);
+ Http2SolrClient client1 = null;
+ try {
+ client1 = getHttpSolrClient(jettyUrl);
+ client1.setBaseUrl(jettyUrl);
client1.deleteByQuery("*:*");
- client1.setBaseUrl(barUrl);
+ client1.setBaseUrl(yettyUrl);
client1.deleteByQuery("*:*");
- }
- List<String> urls = new ArrayList<>();
- for (int i = 0; i < 17; i++) {
- urls.add(fooUrl);
- }
- for (int i = 0; i < 31; i++) {
- urls.add(barUrl);
- }
+ List<String> urls = new ArrayList<>();
+ for (int i = 0; i < 17; i++) {
+ urls.add(jettyUrl);
+ }
+ for (int i = 0; i < 31; i++) {
+ urls.add(yettyUrl);
+ }
- Collections.shuffle(urls, random());
+ Collections.shuffle(urls, random());
- int i = 0;
- for (String url : urls) {
- if (!client1.getBaseURL().equals(url)) {
- client1.setBaseUrl(url);
+ int i = 0;
+ for (String url : urls) {
+ if (!client1.getBaseURL().equals(url)) {
+ client1.setBaseUrl(url);
+ }
+ client1.add(new SolrInputDocument("id", "" + (i++)));
+ }
+ client1.setBaseUrl(jettyUrl);
+ client1.commit();
+ assertEquals(17, client1.query(new SolrQuery("*:*")).getResults().getNumFound());
+
+ client1.setBaseUrl(yettyUrl);
+ client1.commit();
+ assertEquals(31, client1.query(new SolrQuery("*:*")).getResults().getNumFound());
+
+ // PoolStats stats = pool.getTotalStats();
+ //assertEquals("oh "+stats, 2, stats.getAvailable());
+ } finally {
+ if (client1 != null) {
+ client1.close();
}
- client1.add(new SolrInputDocument("id", "" + (i++)));
}
- client1.setBaseUrl(fooUrl);
- client1.commit();
- assertEquals(17, client1.query(new SolrQuery("*:*")).getResults().getNumFound());
-
- client1.setBaseUrl(barUrl);
- client1.commit();
- assertEquals(31, client1.query(new SolrQuery("*:*")).getResults().getNumFound());
-
- // PoolStats stats = pool.getTotalStats();
- //assertEquals("oh "+stats, 2, stats.getAvailable());
-
}
@@ -126,17 +123,17 @@ public class HttpSolrClientConPoolTest extends SolrJettyTestBase {
LBHttpSolrClient roundRobin = null;
try{
roundRobin = new LBHttpSolrClient.Builder().
- withBaseSolrUrl(fooUrl).
- withBaseSolrUrl(barUrl).
+ withBaseSolrUrl(jettyUrl).
+ withBaseSolrUrl(yettyUrl).
withHttpClient(httpClient)
.build();
List<ConcurrentUpdateSolrClient> concurrentClients = Arrays.asList(
- new ConcurrentUpdateSolrClient.Builder(fooUrl)
+ new ConcurrentUpdateSolrClient.Builder(jettyUrl)
.withHttpClient(httpClient).withThreadCount(threadCount)
.withQueueSize(10)
.withExecutorService(threads).build(),
- new ConcurrentUpdateSolrClient.Builder(barUrl)
+ new ConcurrentUpdateSolrClient.Builder(yettyUrl)
.withHttpClient(httpClient).withThreadCount(threadCount)
.withQueueSize(10)
.withExecutorService(threads).build());
@@ -157,7 +154,7 @@ public class HttpSolrClientConPoolTest extends SolrJettyTestBase {
} else {
final UpdateRequest updateRequest = new UpdateRequest();
updateRequest.add(doc); // here we mimic CloudSolrClient impl
- final List<String> urls = Arrays.asList(fooUrl, barUrl);
+ final List<String> urls = Arrays.asList(jettyUrl, yettyUrl);
Collections.shuffle(urls, random());
LBHttpSolrClient.Req req = new LBHttpSolrClient.Req(updateRequest,
urls);
@@ -181,7 +178,9 @@ public class HttpSolrClientConPoolTest extends SolrJettyTestBase {
}finally {
threads.shutdown();
HttpClientUtil.close(httpClient);
- roundRobin.close();
+ if (roundRobin != null) {
+ roundRobin.close();
+ }
}
}
}
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java
index 146334c..47f9c73 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/LBHttpSolrClientBadInputTest.java
@@ -27,12 +27,10 @@ import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.embedded.JettyConfig;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import static org.hamcrest.core.StringContains.containsString;
-@Ignore // nocommit debug
public class LBHttpSolrClientBadInputTest extends SolrJettyTestBase {
private static final List<String> NULL_STR_LIST = null;
private static final List<String> EMPTY_STR_LIST = new ArrayList<>();
@@ -81,7 +79,7 @@ public class LBHttpSolrClientBadInputTest extends SolrJettyTestBase {
}
}
- private void assertExceptionThrownWithMessageContaining(Class expectedType, List<String> expectedStrings, LuceneTestCase.ThrowingRunnable runnable) {
+ private void assertExceptionThrownWithMessageContaining(Class<? extends Exception> expectedType, List<String> expectedStrings, LuceneTestCase.ThrowingRunnable runnable) {
Throwable thrown = expectThrows(expectedType, runnable);
if (expectedStrings != null) {