From 132228d4503bf5760d25180fd4c2366900fc7da0 Mon Sep 17 00:00:00 2001 From: Munendra S N Date: Sat, 28 Mar 2020 11:36:06 +0530 Subject: [PATCH] SOLR-14344: remove deprecated HttpSolrClient's Remote*Exception * All usages are replaced by BaseHttpSolrClient's Remote*Exception --- .../OverseerCollectionMessageHandler.java | 6 +-- .../apache/solr/TestDistributedSearch.java | 4 +- .../cloud/DistribJoinFromCollectionTest.java | 4 +- .../solr/cloud/HealthCheckHandlerTest.java | 5 ++- .../solr/cloud/LeaderTragicEventTest.java | 9 +++-- .../solr/cloud/MigrateRouteKeyTest.java | 3 +- .../apache/solr/cloud/OverseerStatusTest.java | 4 +- .../org/apache/solr/cloud/SplitShardTest.java | 6 +-- .../cloud/TestAuthenticationFramework.java | 4 +- .../apache/solr/cloud/TestConfigSetsAPI.java | 6 +-- .../cloud/TestConfigSetsAPIZkFailure.java | 2 +- .../TestSolrCloudWithDelegationTokens.java | 38 +++++++++---------- .../TestSolrCloudWithSecureImpersonation.java | 17 +++++---- .../apache/solr/cloud/TestWithCollection.java | 16 ++++---- .../CollectionsAPIDistributedZkTest.java | 3 +- .../cloud/api/collections/ShardSplitTest.java | 11 +++--- .../api/collections/TestCollectionAPI.java | 23 ++++++----- .../autoscaling/AutoScalingHandlerTest.java | 30 +++++++-------- .../cloud/autoscaling/TestPolicyCloud.java | 6 +-- .../org/apache/solr/cloud/rule/RulesTest.java | 6 +-- .../solr/handler/V2ApiIntegrationTest.java | 4 +- .../solr/schema/SchemaApiFailureTest.java | 4 +- .../security/BasicAuthIntegrationTest.java | 13 ++++--- .../hadoop/TestDelegationWithHadoopAuth.java | 9 +++-- .../TestImpersonationWithHadoopAuth.java | 13 ++++--- .../src/major-changes-in-solr-9.adoc | 4 ++ .../impl/BaseHttpClusterStateProvider.java | 4 +- .../client/solrj/impl/BaseHttpSolrClient.java | 6 +-- .../impl/ConcurrentUpdateHttp2SolrClient.java | 2 +- .../impl/ConcurrentUpdateSolrClient.java | 2 +- .../client/solrj/impl/HttpSolrClient.java | 23 ----------- .../solr/client/solrj/impl/LBSolrClient.java | 2 +- .../solr/client/solrj/SolrExampleTests.java | 2 +- .../client/solrj/TestSolrJErrorHandling.java | 4 +- .../solrj/impl/CloudHttp2SolrClientTest.java | 4 +- .../solrj/impl/CloudSolrClientTest.java | 4 +- .../solr/client/solrj/request/SchemaTest.java | 12 +++--- .../client/solrj/request/TestV2Request.java | 2 +- 38 files changed, 153 insertions(+), 164 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java index 72b39630684..0557281a415 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java @@ -40,8 +40,8 @@ import org.apache.solr.client.solrj.cloud.DistribStateManager; import org.apache.solr.client.solrj.cloud.SolrCloudManager; import org.apache.solr.client.solrj.cloud.autoscaling.AlreadyExistsException; import org.apache.solr.client.solrj.cloud.autoscaling.BadVersionException; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient.RemoteSolrException; import org.apache.solr.client.solrj.request.AbstractUpdateRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.UpdateResponse; @@ -780,8 +780,8 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler, @SuppressWarnings("deprecation") private void processResponse(NamedList results, Throwable e, String nodeName, SolrResponse solrResponse, String shard, Set okayExceptions) { String rootThrowable = null; - if (e instanceof RemoteSolrException) { - rootThrowable = ((RemoteSolrException) e).getRootThrowable(); + if (e instanceof BaseHttpSolrClient.RemoteSolrException) { + rootThrowable = ((BaseHttpSolrClient.RemoteSolrException) e).getRootThrowable(); } if (e != null && (rootThrowable == null || !okayExceptions.contains(rootThrowable))) { diff --git a/solr/core/src/test/org/apache/solr/TestDistributedSearch.java b/solr/core/src/test/org/apache/solr/TestDistributedSearch.java index aba056c812e..f634f3ec895 100644 --- a/solr/core/src/test/org/apache/solr/TestDistributedSearch.java +++ b/solr/core/src/test/org/apache/solr/TestDistributedSearch.java @@ -38,7 +38,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.JettySolrRunner; -import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.response.FacetField; import org.apache.solr.client.solrj.response.FieldStatsInfo; import org.apache.solr.client.solrj.response.QueryResponse; @@ -1057,7 +1057,7 @@ public class TestDistributedSearch extends BaseDistributedSearchTestCase { "stats.field", tdate_a, "stats.field", tdate_b, "stats.calcdistinct", "true"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { if (e.getMessage().startsWith("java.lang.NullPointerException")) { fail("NullPointerException with stats request on empty index"); } else { diff --git a/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java b/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java index bc7de299cef..bbd6eb063ee 100644 --- a/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java @@ -26,8 +26,8 @@ import java.util.Map; import java.util.Set; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -211,7 +211,7 @@ public class DistribJoinFromCollectionTest extends SolrCloudTestCase{ final QueryRequest qr = new QueryRequest(params("collection", toColl, "q", joinQ, "fl", "id,get_s,score")); try { cluster.getSolrClient().request(qr); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertEquals(SolrException.ErrorCode.BAD_REQUEST.code, ex.code()); assertTrue(ex.getMessage().contains(wrongName)); } diff --git a/solr/core/src/test/org/apache/solr/cloud/HealthCheckHandlerTest.java b/solr/core/src/test/org/apache/solr/cloud/HealthCheckHandlerTest.java index d9ebe74f898..e42678c8b3c 100644 --- a/solr/core/src/test/org/apache/solr/cloud/HealthCheckHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/HealthCheckHandlerTest.java @@ -23,6 +23,7 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; @@ -88,7 +89,7 @@ public class HealthCheckHandlerTest extends SolrCloudTestCase { newJetty.getCoreContainer().getZkController().getZkClient().close(); // negative check of our (new) "broken" node that we deliberately put into an unhealth state - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { req.process(httpSolrClient); }); @@ -165,7 +166,7 @@ public class HealthCheckHandlerTest extends SolrCloudTestCase { newJetty.getCoreContainer().getZkController().getZkClient().close(); // negative check of our (new) "broken" node that we deliberately put into an unhealth state - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { new V2Request.Builder("/node/health").build().process(httpSolrClient); }); diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java index 2cdd6ebb2a1..b053743dabe 100644 --- a/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/LeaderTragicEventTest.java @@ -17,9 +17,6 @@ package org.apache.solr.cloud; -import static org.hamcrest.CoreMatchers.anyOf; -import static org.hamcrest.CoreMatchers.is; - import java.io.FileNotFoundException; import java.io.IOException; import java.lang.invoke.MethodHandles; @@ -27,12 +24,13 @@ import java.nio.file.NoSuchFileException; import java.util.ArrayList; import java.util.Collections; import java.util.List; + import org.apache.lucene.store.AlreadyClosedException; import org.apache.lucene.store.MockDirectoryWrapper; import org.apache.lucene.util.LuceneTestCase.AwaitsFix; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient.RemoteSolrException; import org.apache.solr.client.solrj.impl.HttpSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient.RemoteSolrException; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.common.SolrException; @@ -50,6 +48,9 @@ import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.hamcrest.CoreMatchers.anyOf; +import static org.hamcrest.CoreMatchers.is; + @AwaitsFix(bugUrl="https://issues.apache.org/jira/browse/SOLR-13237") public class LeaderTragicEventTest extends SolrCloudTestCase { diff --git a/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java b/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java index 5e17706df02..85e13d15fd8 100644 --- a/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java @@ -24,6 +24,7 @@ import java.util.concurrent.TimeUnit; import org.apache.lucene.util.LuceneTestCase; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; @@ -93,7 +94,7 @@ public class MigrateRouteKeyTest extends SolrCloudTestCase { CollectionAdminRequest.createCollection(targetCollection, "conf", 1, 1) .process(cluster.getSolrClient()); - HttpSolrClient.RemoteSolrException remoteSolrException = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException remoteSolrException = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, "Expected an exception in case split.key is not specified", () -> { CollectionAdminRequest.migrateData(sourceCollection, targetCollection, "") .setForwardTimeout(45) diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerStatusTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerStatusTest.java index 6d169e3fe7c..0d62d9e3729 100644 --- a/solr/core/src/test/org/apache/solr/cloud/OverseerStatusTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/OverseerStatusTest.java @@ -16,7 +16,7 @@ */ package org.apache.solr.cloud; -import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.common.params.CollectionParams; import org.apache.solr.common.util.NamedList; @@ -59,7 +59,7 @@ public class OverseerStatusTest extends SolrCloudTestCase { SimpleOrderedMap reload = (SimpleOrderedMap) collection_operations.get(CollectionParams.CollectionAction.RELOAD.toLower()); assertEquals("No stats for reload in OverseerCollectionProcessor", 1, reload.get("requests")); - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, "Split shard for non existent collection should have failed", () -> CollectionAdminRequest .splitShard("non_existent_collection") diff --git a/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java b/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java index 2e1f3c8e2c6..9d780d310a9 100644 --- a/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/SplitShardTest.java @@ -29,8 +29,8 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; import org.apache.solr.client.solrj.response.UpdateResponse; @@ -93,7 +93,7 @@ public class SplitShardTest extends SolrCloudTestCase { splitShard = CollectionAdminRequest.splitShard(COLLECTION_NAME).setShardName("shard2").setNumSubShards(10); splitShard.process(cluster.getSolrClient()); fail("SplitShard should throw an exception when numSubShards > 8"); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertTrue(ex.getMessage().contains("A shard can only be split into 2 to 8 subshards in one split request.")); } @@ -101,7 +101,7 @@ public class SplitShardTest extends SolrCloudTestCase { splitShard = CollectionAdminRequest.splitShard(COLLECTION_NAME).setShardName("shard2").setNumSubShards(1); splitShard.process(cluster.getSolrClient()); fail("SplitShard should throw an exception when numSubShards < 2"); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertTrue(ex.getMessage().contains("A shard can only be split into 2 to 8 subshards in one split request. Provided numSubShards=1")); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/TestAuthenticationFramework.java b/solr/core/src/test/org/apache/solr/cloud/TestAuthenticationFramework.java index f2047eaf21d..b2c1e253c59 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestAuthenticationFramework.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestAuthenticationFramework.java @@ -27,9 +27,9 @@ import java.util.Map; import org.apache.http.HttpRequestInterceptor; import org.apache.lucene.util.LuceneTestCase; import org.apache.solr.client.solrj.SolrQuery; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.impl.HttpClientUtil; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.impl.SolrHttpClientBuilder; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.UpdateRequest; @@ -79,7 +79,7 @@ public class TestAuthenticationFramework extends SolrCloudTestCase { // Should fail with 401 try { - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, this::collectionCreateSearchDeleteTwice); assertTrue("Should've returned a 401 error", e.getMessage().contains("Error 401")); } finally { diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java index db27b60b25b..6939aa232e3 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java @@ -54,9 +54,9 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.impl.HttpClientUtil; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.Create; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.Delete; @@ -349,7 +349,7 @@ public class TestConfigSetsAPI extends SolrTestCaseJ4 { final String untrustedSuffix = "-untrusted"; uploadConfigSetWithAssertions("with-script-processor", untrustedSuffix, null, null); // try to create a collection with the uploaded configset - Throwable thrown = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> { + Throwable thrown = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { createCollection("newcollection2", "with-script-processor" + untrustedSuffix, 1, 1, solrCluster.getSolrClient()); }); @@ -375,7 +375,7 @@ public class TestConfigSetsAPI extends SolrTestCaseJ4 { final String untrustedSuffix = "-untrusted"; uploadConfigSetWithAssertions("with-lib-directive", untrustedSuffix, null, null); // try to create a collection with the uploaded configset - Throwable thrown = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> { + Throwable thrown = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { createCollection("newcollection3", "with-lib-directive" + untrustedSuffix, 1, 1, solrCluster.getSolrClient()); }); diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java index a15d5a2e622..1a0d31aa23a 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java @@ -35,7 +35,7 @@ import org.apache.jute.OutputArchive; import org.apache.jute.Record; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient.RemoteSolrException; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient.RemoteSolrException; import org.apache.solr.client.solrj.request.ConfigSetAdminRequest.Create; import org.apache.solr.common.SolrException; import org.apache.solr.common.cloud.SolrZkClient; diff --git a/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithDelegationTokens.java b/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithDelegationTokens.java index c21bfde0daf..b1ec4aaf889 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithDelegationTokens.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithDelegationTokens.java @@ -16,15 +16,23 @@ */ package org.apache.solr.cloud; +import java.lang.invoke.MethodHandles; +import java.util.Collections; +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + import org.apache.hadoop.util.Time; +import org.apache.http.HttpStatus; import org.apache.lucene.util.LuceneTestCase; import org.apache.solr.SolrTestCaseJ4; -import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; -import org.apache.solr.client.solrj.impl.LBHttpSolrClient; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; +import org.apache.solr.client.solrj.impl.CloudSolrClient; +import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.impl.LBHttpSolrClient; import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.DelegationTokenRequest; @@ -33,26 +41,18 @@ import org.apache.solr.client.solrj.response.DelegationTokenResponse; import org.apache.solr.common.SolrException.ErrorCode; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.cloud.SolrZkClient; -import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.params.ModifiableSolrParams; -import static org.apache.solr.security.HttpParamDelegationTokenPlugin.USER_PARAM; - -import org.apache.http.HttpStatus; +import org.apache.solr.common.params.SolrParams; import org.apache.solr.security.HttpParamDelegationTokenPlugin; import org.apache.solr.security.KerberosPlugin; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; - -import java.lang.invoke.MethodHandles; -import java.util.Collections; -import java.util.HashSet; -import java.util.Optional; -import java.util.Set; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.solr.security.HttpParamDelegationTokenPlugin.USER_PARAM; + /** * Test the delegation token support in the {@link org.apache.solr.security.KerberosPlugin}. */ @@ -134,7 +134,7 @@ public class TestSolrCloudWithDelegationTokens extends SolrTestCaseJ4 { DelegationTokenResponse.Renew renewResponse = renew.process(client); assertEquals(HttpStatus.SC_OK, expectedStatusCode); return renewResponse.getExpirationTime(); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertEquals(expectedStatusCode, ex.code()); return -1; } @@ -146,7 +146,7 @@ public class TestSolrCloudWithDelegationTokens extends SolrTestCaseJ4 { try { cancel.process(client); assertEquals(HttpStatus.SC_OK, expectedStatusCode); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertEquals(expectedStatusCode, ex.code()); } } @@ -220,7 +220,7 @@ public class TestSolrCloudWithDelegationTokens extends SolrTestCaseJ4 { try { delegationTokenClient.request(req, null); return HttpStatus.SC_OK; - } catch (HttpSolrClient.RemoteSolrException re) { + } catch (BaseHttpSolrClient.RemoteSolrException re) { return re.code(); } } finally { @@ -233,7 +233,7 @@ public class TestSolrCloudWithDelegationTokens extends SolrTestCaseJ4 { try { client.request(request); assertEquals(HttpStatus.SC_OK, expectedStatusCode); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertEquals(expectedStatusCode, ex.code()); } } @@ -243,7 +243,7 @@ public class TestSolrCloudWithDelegationTokens extends SolrTestCaseJ4 { try { client.request(request, collectionName); assertEquals(HttpStatus.SC_OK, expectedStatusCode); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertEquals(expectedStatusCode, ex.code()); } } diff --git a/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithSecureImpersonation.java b/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithSecureImpersonation.java index a62de3566b8..1b4fe995788 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithSecureImpersonation.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestSolrCloudWithSecureImpersonation.java @@ -28,6 +28,7 @@ import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; @@ -224,7 +225,7 @@ public class TestSolrCloudWithSecureImpersonation extends SolrTestCaseJ4 { @Test public void testProxyNoConfigGroups() throws Exception { - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("noGroups","bar")) ); assertTrue(e.getMessage().contains(getExpectedGroupExMsg("noGroups", "bar"))); @@ -232,7 +233,7 @@ public class TestSolrCloudWithSecureImpersonation extends SolrTestCaseJ4 { @Test public void testProxyWrongHost() throws Exception { - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("wrongHost","bar")) ); assertTrue(e.getMessage().contains(getExpectedHostExMsg("wrongHost"))); @@ -240,7 +241,7 @@ public class TestSolrCloudWithSecureImpersonation extends SolrTestCaseJ4 { @Test public void testProxyNoConfigHosts() throws Exception { - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("noHosts","bar")) ); // FixMe: this should return an exception about the host being invalid, @@ -257,7 +258,7 @@ public class TestSolrCloudWithSecureImpersonation extends SolrTestCaseJ4 { @Test public void testProxyInvalidProxyUser() throws Exception { // wrong direction, should fail - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("bar","anyHostAnyUser")) ); assertTrue(e.getMessage().contains(getExpectedGroupExMsg("bar", "anyHostAnyUser"))); @@ -279,7 +280,7 @@ public class TestSolrCloudWithSecureImpersonation extends SolrTestCaseJ4 { @Test public void testProxyUnknownRemote() throws Exception { - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { // Use a reserved ip address String nonProxyUserConfiguredIpAddress = "255.255.255.255"; @@ -290,7 +291,7 @@ public class TestSolrCloudWithSecureImpersonation extends SolrTestCaseJ4 { @Test public void testProxyInvalidRemote() throws Exception { - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { solrClient.request(getProxyRequest("localHostAnyGroup","bar", "[ff01::114]", DEAD_HOST_2)); }); @@ -299,7 +300,7 @@ public class TestSolrCloudWithSecureImpersonation extends SolrTestCaseJ4 { @Test public void testProxyInvalidGroup() throws Exception { - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("bogusGroup","bar", null)) ); assertTrue(e.getMessage().contains(getExpectedGroupExMsg("bogusGroup", "bar"))); @@ -307,7 +308,7 @@ public class TestSolrCloudWithSecureImpersonation extends SolrTestCaseJ4 { @Test public void testProxyNullProxyUser() throws Exception { - expectThrows(HttpSolrClient.RemoteSolrException.class, + expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("","bar")) ); } diff --git a/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java b/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java index dccfd3b0ba5..ca7f68791e5 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestWithCollection.java @@ -17,8 +17,6 @@ package org.apache.solr.cloud; -import static org.apache.solr.common.params.CollectionAdminParams.WITH_COLLECTION; - import java.io.IOException; import java.lang.invoke.MethodHandles; import java.nio.charset.StandardCharsets; @@ -31,8 +29,8 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.cloud.SolrCloudManager; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest; @@ -54,6 +52,8 @@ import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.solr.common.params.CollectionAdminParams.WITH_COLLECTION; + /** * Tests for co-locating a collection with another collection such that any Collection API * always ensures that the co-location is never broken. @@ -113,7 +113,7 @@ public class TestWithCollection extends SolrCloudTestCase { CollectionAdminRequest.createCollection(xyz, 1, 1) .setWithCollection(abc).process(solrClient); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { assertTrue(e.getMessage().contains("The 'withCollection' does not exist")); } @@ -122,7 +122,7 @@ public class TestWithCollection extends SolrCloudTestCase { try { CollectionAdminRequest.createCollection(xyz, 1, 1) .setWithCollection(abc).process(solrClient); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { assertTrue(e.getMessage().contains("The `withCollection` must have only one shard, found: 2")); } } @@ -175,7 +175,7 @@ public class TestWithCollection extends SolrCloudTestCase { try { CollectionAdminResponse response = CollectionAdminRequest.deleteCollection(abc).process(solrClient); fail("Deleting collection: " + abc + " should have failed with an exception. Instead response was: " + response.getResponse()); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { assertTrue(e.getMessage().contains("is co-located with collection")); } @@ -195,7 +195,7 @@ public class TestWithCollection extends SolrCloudTestCase { try { CollectionAdminResponse response = CollectionAdminRequest.deleteCollection(abc).process(solrClient); fail("Deleting collection: " + abc + " should have failed with an exception. Instead response was: " + response.getResponse()); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { assertTrue(e.getMessage().contains("is co-located with collection")); } @@ -380,7 +380,7 @@ public class TestWithCollection extends SolrCloudTestCase { new CollectionAdminRequest.MoveReplica(abc, collection.getReplicas().iterator().next().getName(), otherNode) .process(solrClient); fail("Expected moving a replica of 'withCollection': " + abc + " to fail"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { assertTrue(e.getMessage().contains("Collection: testMoveReplicaWithCollection_abc is co-located with collection: testMoveReplicaWithCollection_xyz")); } // zkClient().printLayoutToStdOut(); diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionsAPIDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionsAPIDistributedZkTest.java index f549203aa62..af3cd55d40f 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionsAPIDistributedZkTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionsAPIDistributedZkTest.java @@ -45,6 +45,7 @@ import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.CoreAdminRequest; @@ -283,7 +284,7 @@ public class CollectionsAPIDistributedZkTest extends SolrCloudTestCase { String nn1 = cluster.getJettySolrRunner(0).getNodeName(); String nn2 = cluster.getJettySolrRunner(1).getNodeName(); - expectThrows(HttpSolrClient.RemoteSolrException.class, () -> { + expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { CollectionAdminResponse resp = CollectionAdminRequest.createCollection("halfcollection", "conf", 2, 1) .setCreateNodeSet(nn1 + "," + nn2) .process(cluster.getSolrClient()); diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java index 3649dbbee0d..5316d6b4713 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/ShardSplitTest.java @@ -38,6 +38,7 @@ import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; @@ -676,7 +677,7 @@ public class ShardSplitTest extends BasicDistributedZkTest { try { splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1, subRanges, null, false); fail("Shard splitting with just one custom hash range should not succeed"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { log.info("Expected exception:", e); } subRanges.clear(); @@ -687,7 +688,7 @@ public class ShardSplitTest extends BasicDistributedZkTest { try { splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1, subRanges, null, false); fail("Shard splitting with missing hashes in between given ranges should not succeed"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { log.info("Expected exception:", e); } subRanges.clear(); @@ -700,7 +701,7 @@ public class ShardSplitTest extends BasicDistributedZkTest { try { splitShard(AbstractDistribZkTestBase.DEFAULT_COLLECTION, SHARD1, subRanges, null, false); fail("Shard splitting with overlapping ranges should not succeed"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { log.info("Expected exception:", e); } subRanges.clear(); @@ -772,7 +773,7 @@ public class ShardSplitTest extends BasicDistributedZkTest { log.info("Layout after split: \n"); printLayout(); break; - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { if (e.code() != 500) { throw e; } @@ -937,7 +938,7 @@ public class ShardSplitTest extends BasicDistributedZkTest { try { splitShard(collectionName, shardId, null, splitKey, false); break; - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { if (e.code() != 500) { throw e; } diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestCollectionAPI.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestCollectionAPI.java index 26fd5610611..804728b5b8a 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/TestCollectionAPI.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/TestCollectionAPI.java @@ -25,18 +25,17 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicLong; import com.google.common.collect.Lists; -import org.apache.solr.client.solrj.impl.BaseHttpSolrClient.RemoteSolrException; -import org.apache.solr.cloud.ZkTestServer; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.QueryRequest; -import org.apache.solr.client.solrj.response.CollectionAdminResponse; import org.apache.solr.client.solrj.request.V2Request; +import org.apache.solr.client.solrj.response.CollectionAdminResponse; import org.apache.solr.client.solrj.response.QueryResponse; +import org.apache.solr.cloud.ZkTestServer; import org.apache.solr.common.SolrException; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.cloud.ClusterState; @@ -121,7 +120,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase { try { client.request(request); fail("A collection creation request with too many shards than allowed by maxShardsPerNode should not have succeeded"); - } catch (RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { final String errorMessage = e.getMessage(); assertTrue(errorMessage.contains("Cannot create collection")); assertTrue(errorMessage.contains("This requires 10 shards to be created (higher than the allowed number)")); @@ -186,7 +185,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase { try { client.request(request); fail("Trying to unset an unknown property should have failed"); - } catch (RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { // expected assertTrue(e.getMessage().contains("no supported values provided")); } @@ -208,7 +207,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase { try { client.request(request); fail(); - } catch (RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { final String errorMessage = e.getMessage(); assertTrue(errorMessage.contains("Cannot specify both replicationFactor and nrtReplicas as they mean the same thing")); } @@ -935,7 +934,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase { try { client.request(request); fail(); - } catch (RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { final String errorMessage = e.getMessage(); assertTrue(errorMessage.contains("Invalid collection")); assertTrue(errorMessage.contains("invalid@name#with$weird%characters")); @@ -958,7 +957,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase { try { client.request(request); fail(); - } catch (RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { final String errorMessage = e.getMessage(); assertTrue(errorMessage.contains("Invalid shard")); assertTrue(errorMessage.contains("invalid@name#with$weird%characters")); @@ -979,7 +978,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase { try { client.request(request); fail(); - } catch (RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { final String errorMessage = e.getMessage(); assertTrue(errorMessage.contains("Invalid alias")); assertTrue(errorMessage.contains("invalid@name#with$weird%characters")); @@ -1012,7 +1011,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase { try { client.request(request); fail(); - } catch (RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { final String errorMessage = e.getMessage(); assertTrue(errorMessage.contains("Invalid shard")); assertTrue(errorMessage.contains("invalid@name#with$weird%characters")); @@ -1069,7 +1068,7 @@ public class TestCollectionAPI extends ReplicaPropertiesBase { try (CloudSolrClient client = createCloudClient(null)) { // first, try creating a collection with badconf - HttpSolrClient.RemoteSolrException rse = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> { + BaseHttpSolrClient.RemoteSolrException rse = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { CollectionAdminResponse rsp = CollectionAdminRequest.createCollection ("testcollection", "badconf", 1, 2).process(client); }); diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java index 7431f9bfdc2..75696caf7de 100644 --- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/AutoScalingHandlerTest.java @@ -31,8 +31,8 @@ import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.cloud.autoscaling.Policy; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.response.CollectionAdminResponse; import org.apache.solr.cloud.CloudTestUtils.AutoScalingRequest; @@ -407,7 +407,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { try { solrClient.request(req); fail("expected exception"); - } catch (HttpSolrClient.RemoteExecutionException e) { + } catch (BaseHttpSolrClient.RemoteExecutionException e) { // expected assertTrue(String.valueOf(getObjectByPath(e.getMetaData(), false, "error/details[0]/errorMessages[0]")).contains("Cannot remove trigger: node_lost_trigger because it has active listeners: [")); @@ -455,9 +455,9 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { try { solrClient.request(req); fail("should have thrown Exception"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { // expected - assertTrue(String.valueOf(getObjectByPath(((HttpSolrClient.RemoteExecutionException) e).getMetaData(), + assertTrue(String.valueOf(getObjectByPath(((BaseHttpSolrClient.RemoteExecutionException) e).getMetaData(), false, "error/details[0]/errorMessages[0]")).contains("A trigger with the name node_lost_trigger does not exist")); } } @@ -477,7 +477,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { SolrRequest req = AutoScalingRequest.create(SolrRequest.METHOD.POST, setClusterPolicyCommand); solrClient.request(req); fail("expect exception"); - } catch (HttpSolrClient.RemoteExecutionException e) { + } catch (BaseHttpSolrClient.RemoteExecutionException e) { String message = String.valueOf(getObjectByPath(e.getMetaData(), true, "error/details[0]/errorMessages[0]")); assertTrue(message.contains("replica is required in")); } @@ -506,9 +506,9 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { try { solrClient.request(req); fail("should have thrown Exception"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { // expected - assertTrue(String.valueOf(getObjectByPath(((HttpSolrClient.RemoteExecutionException) e).getMetaData(), + assertTrue(String.valueOf(getObjectByPath(((BaseHttpSolrClient.RemoteExecutionException) e).getMetaData(), false, "error/details[0]/errorMessages[0]")).contains("foo=unknown property")); } @@ -530,9 +530,9 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { try { solrClient.request(req); fail("should have thrown Exception"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { // expected - assertTrue(String.valueOf(getObjectByPath(((HttpSolrClient.RemoteExecutionException) e).getMetaData(), + assertTrue(String.valueOf(getObjectByPath(((BaseHttpSolrClient.RemoteExecutionException) e).getMetaData(), false, "error/details[0]/errorMessages[0]")).contains("aboveRate=Invalid configuration value: 'foo'")); } @@ -554,9 +554,9 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { try { solrClient.request(req); fail("should have thrown Exception"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { // expected - assertTrue(String.valueOf(getObjectByPath(((HttpSolrClient.RemoteExecutionException) e).getMetaData(), + assertTrue(String.valueOf(getObjectByPath(((BaseHttpSolrClient.RemoteExecutionException) e).getMetaData(), false, "error/details[0]/errorMessages[0]")).contains("foo=unknown property")); } @@ -593,9 +593,9 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { try { solrClient.request(req); fail("should have thrown Exception"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { // expected - assertTrue(String.valueOf(getObjectByPath(((HttpSolrClient.RemoteExecutionException) e).getMetaData(), + assertTrue(String.valueOf(getObjectByPath(((BaseHttpSolrClient.RemoteExecutionException) e).getMetaData(), false, "error/details[0]/errorMessages[0]")).contains("foo=unknown property")); } } @@ -619,7 +619,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { try { solrClient.request(req); fail("Adding a policy with 'cores' attribute should not have succeeded."); - } catch (HttpSolrClient.RemoteExecutionException e) { + } catch (BaseHttpSolrClient.RemoteExecutionException e) { String message = e.getMetaData()._getStr("error/details[0]/errorMessages[0]",null); // expected @@ -981,7 +981,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase { try { solrClient.request(AutoScalingRequest.create(SolrRequest.METHOD.POST, removePolicyCommand)); fail("should have failed"); - } catch (HttpSolrClient.RemoteExecutionException e) { + } catch (BaseHttpSolrClient.RemoteExecutionException e) { assertTrue(String.valueOf(getObjectByPath(e.getMetaData(), true, "error/details[0]/errorMessages[0]")) .contains("is being used by collection")); } catch (Exception e) { diff --git a/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java b/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java index 61c79bc13c1..18cc27074c1 100644 --- a/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java +++ b/solr/core/src/test/org/apache/solr/cloud/autoscaling/TestPolicyCloud.java @@ -40,8 +40,8 @@ import org.apache.solr.client.solrj.cloud.autoscaling.ReplicaInfo; import org.apache.solr.client.solrj.cloud.autoscaling.Row; import org.apache.solr.client.solrj.cloud.autoscaling.Variable.Type; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.impl.SolrClientCloudManager; import org.apache.solr.client.solrj.impl.SolrClientNodeStateProvider; import org.apache.solr.client.solrj.request.CollectionAdminRequest; @@ -91,7 +91,7 @@ public class TestPolicyCloud extends SolrCloudTestCase { String commands = "{ set-cluster-policy: [ {cores: '0', node: '#ANY'} ] }"; // disallow replica placement anywhere cluster.getSolrClient().request(AutoScalingRequest.create(SolrRequest.METHOD.POST, commands)); String collectionName = "testCreateCollection"; - HttpSolrClient.RemoteSolrException exp = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException exp = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> CollectionAdminRequest.createCollection(collectionName, "conf", 2, 1).process(cluster.getSolrClient())); assertTrue(exp.getMessage().contains("No node can satisfy the rules")); @@ -345,7 +345,7 @@ public class TestPolicyCloud extends SolrCloudTestCase { try { solrClient.request(req); fail("expected exception"); - } catch (HttpSolrClient.RemoteExecutionException e) { + } catch (BaseHttpSolrClient.RemoteExecutionException e) { // expected assertTrue(String.valueOf(getObjectByPath(e.getMetaData(), false, "error/details[0]/errorMessages[0]")).contains("Invalid metrics: param in")); diff --git a/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java b/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java index ee20fcf8630..17dd0199260 100644 --- a/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/rule/RulesTest.java @@ -30,7 +30,7 @@ import org.apache.lucene.util.LuceneTestCase; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.embedded.JettySolrRunner; -import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.GenericSolrRequest; import org.apache.solr.client.solrj.response.SimpleSolrResponse; @@ -152,7 +152,7 @@ public class RulesTest extends SolrCloudTestCase { // adding an additional replica should fail since our rule says at most one replica // per node, and we know every node already has one replica - expectedException.expect(HttpSolrClient.RemoteSolrException.class); + expectedException.expect(BaseHttpSolrClient.RemoteSolrException.class); expectedException.expectMessage(containsString("current number of eligible live nodes 0")); CollectionAdminRequest.addReplicaToShard(rulesColl, "shard2").process(cluster.getSolrClient()); @@ -297,7 +297,7 @@ public class RulesTest extends SolrCloudTestCase { String ip_1 = ipFragments[ipFragments.length - 1]; String ip_2 = ipFragments[ipFragments.length - 2]; - expectedException.expect(HttpSolrClient.RemoteSolrException.class); + expectedException.expect(BaseHttpSolrClient.RemoteSolrException.class); expectedException.expectMessage(containsString("ip_1")); CollectionAdminRequest.createCollectionWithImplicitRouter(rulesColl, "conf", "shard1", 2) diff --git a/solr/core/src/test/org/apache/solr/handler/V2ApiIntegrationTest.java b/solr/core/src/test/org/apache/solr/handler/V2ApiIntegrationTest.java index f82c2388c19..9df56e84a65 100644 --- a/solr/core/src/test/org/apache/solr/handler/V2ApiIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/handler/V2ApiIntegrationTest.java @@ -26,9 +26,9 @@ import java.util.Map; import org.apache.solr.client.solrj.ResponseParser; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.BinaryResponseParser; import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.impl.NoOpResponseParser; import org.apache.solr.client.solrj.impl.XMLResponseParser; import org.apache.solr.client.solrj.request.CollectionAdminRequest; @@ -71,7 +71,7 @@ public class V2ApiIntegrationTest extends SolrCloudTestCase { .withPayload(payload) .build(); v2Request.setResponseParser(responseParser); - HttpSolrClient.RemoteSolrException ex = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException ex = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> v2Request.process(cluster.getSolrClient())); assertEquals(expectedCode, ex.code()); } diff --git a/solr/core/src/test/org/apache/solr/schema/SchemaApiFailureTest.java b/solr/core/src/test/org/apache/solr/schema/SchemaApiFailureTest.java index 95cd2a7134c..7cc15011ed9 100644 --- a/solr/core/src/test/org/apache/solr/schema/SchemaApiFailureTest.java +++ b/solr/core/src/test/org/apache/solr/schema/SchemaApiFailureTest.java @@ -19,8 +19,8 @@ package org.apache.solr.schema; import java.util.concurrent.TimeUnit; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.client.solrj.request.schema.SchemaRequest; import org.apache.solr.client.solrj.response.schema.SchemaResponse; @@ -52,7 +52,7 @@ public class SchemaApiFailureTest extends SolrCloudTestCase { (Utils.makeMap("name","myfield", "type","string")); SchemaResponse.UpdateResponse updateResponse = fieldAddition.process(client, COLLECTION); - HttpSolrClient.RemoteExecutionException ex = expectThrows(HttpSolrClient.RemoteExecutionException.class, + BaseHttpSolrClient.RemoteExecutionException ex = expectThrows(BaseHttpSolrClient.RemoteExecutionException.class, () -> fieldAddition.process(client, COLLECTION)); assertTrue("expected error message 'Field 'myfield' already exists'.",Utils.getObjectByPath(ex.getMetaData(), false, "error/details[0]/errorMessages[0]").toString().contains("Field 'myfield' already exists.") ); diff --git a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java index 188ac5b71d5..09e2c0a2f09 100644 --- a/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/security/BasicAuthIntegrationTest.java @@ -39,6 +39,7 @@ import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.HttpClientUtil; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; @@ -150,7 +151,7 @@ public class BasicAuthIntegrationTest extends SolrCloudAuthTestCase { cluster.getSolrClient().getHttpClient().getConnectionManager().closeExpiredConnections(); cluster.getSolrClient().getHttpClient().getConnectionManager().closeIdleConnections(1, TimeUnit.MILLISECONDS); - HttpSolrClient.RemoteSolrException exp = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> { + BaseHttpSolrClient.RemoteSolrException exp = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { cluster.getSolrClient().request(genericReq); }); assertEquals(401, exp.code()); @@ -202,14 +203,14 @@ public class BasicAuthIntegrationTest extends SolrCloudAuthTestCase { CollectionAdminRequest.Reload reload = CollectionAdminRequest.reloadCollection(COLLECTION); try (HttpSolrClient solrClient = getHttpSolrClient(baseUrl)) { - expectThrows(HttpSolrClient.RemoteSolrException.class, () -> solrClient.request(reload)); + expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(reload)); reload.setMethod(SolrRequest.METHOD.POST); - expectThrows(HttpSolrClient.RemoteSolrException.class, () -> solrClient.request(reload)); + expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(reload)); } cluster.getSolrClient().request(CollectionAdminRequest.reloadCollection(COLLECTION) .setBasicAuthCredentials("harry", "HarryIsUberCool")); - expectThrows(HttpSolrClient.RemoteSolrException.class, () -> { + expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { cluster.getSolrClient().request(CollectionAdminRequest.reloadCollection(COLLECTION) .setBasicAuthCredentials("harry", "Cool12345")); }); @@ -231,7 +232,7 @@ public class BasicAuthIntegrationTest extends SolrCloudAuthTestCase { delQuery.setBasicAuthCredentials("harry","HarryIsUberCool"); delQuery.process(aNewClient, COLLECTION);//this should succeed try { - HttpSolrClient.RemoteSolrException e = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> { + BaseHttpSolrClient.RemoteSolrException e = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { new UpdateRequest().deleteByQuery("*:*").process(aNewClient, COLLECTION); }); assertTrue(e.getMessage(), e.getMessage().contains("Authentication failed")); @@ -267,7 +268,7 @@ public class BasicAuthIntegrationTest extends SolrCloudAuthTestCase { SolrParams params = new MapSolrParams(Collections.singletonMap("q", "*:*")); // Query that fails due to missing credentials - exp = expectThrows(HttpSolrClient.RemoteSolrException.class, () -> { + exp = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> { cluster.getSolrClient().query(COLLECTION, params); }); assertEquals(401, exp.code()); diff --git a/solr/core/src/test/org/apache/solr/security/hadoop/TestDelegationWithHadoopAuth.java b/solr/core/src/test/org/apache/solr/security/hadoop/TestDelegationWithHadoopAuth.java index 500f8ad1e12..9851710f817 100644 --- a/solr/core/src/test/org/apache/solr/security/hadoop/TestDelegationWithHadoopAuth.java +++ b/solr/core/src/test/org/apache/solr/security/hadoop/TestDelegationWithHadoopAuth.java @@ -27,6 +27,7 @@ import org.apache.http.HttpStatus; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.impl.LBHttpSolrClient; @@ -115,7 +116,7 @@ public class TestDelegationWithHadoopAuth extends SolrCloudTestCase { DelegationTokenResponse.Renew renewResponse = renew.process(client); assertEquals(HttpStatus.SC_OK, expectedStatusCode); return renewResponse.getExpirationTime(); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertEquals(expectedStatusCode, ex.code()); return -1; } @@ -127,7 +128,7 @@ public class TestDelegationWithHadoopAuth extends SolrCloudTestCase { try { cancel.process(client); assertEquals(HttpStatus.SC_OK, expectedStatusCode); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertEquals(expectedStatusCode, ex.code()); } } @@ -191,7 +192,7 @@ public class TestDelegationWithHadoopAuth extends SolrCloudTestCase { try { delegationTokenClient.request(req, null); return HttpStatus.SC_OK; - } catch (HttpSolrClient.RemoteSolrException re) { + } catch (BaseHttpSolrClient.RemoteSolrException re) { return re.code(); } } finally { @@ -204,7 +205,7 @@ public class TestDelegationWithHadoopAuth extends SolrCloudTestCase { try { client.request(request); assertEquals(HttpStatus.SC_OK, expectedStatusCode); - } catch (HttpSolrClient.RemoteSolrException ex) { + } catch (BaseHttpSolrClient.RemoteSolrException ex) { assertEquals(expectedStatusCode, ex.code()); } } diff --git a/solr/core/src/test/org/apache/solr/security/hadoop/TestImpersonationWithHadoopAuth.java b/solr/core/src/test/org/apache/solr/security/hadoop/TestImpersonationWithHadoopAuth.java index 8cdcbf8fb21..c4902800649 100644 --- a/solr/core/src/test/org/apache/solr/security/hadoop/TestImpersonationWithHadoopAuth.java +++ b/solr/core/src/test/org/apache/solr/security/hadoop/TestImpersonationWithHadoopAuth.java @@ -25,6 +25,7 @@ import java.util.Map; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.embedded.JettySolrRunner; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.CollectionAdminRequest; import org.apache.solr.cloud.SolrCloudTestCase; @@ -99,7 +100,7 @@ public class TestImpersonationWithHadoopAuth extends SolrCloudTestCase { @Test public void testProxyNoConfigGroups() throws Exception { try (SolrClient solrClient = newSolrClient()) { - HttpSolrClient.RemoteSolrException ex = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException ex = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("noGroups","bar"))); assertTrue(ex.getLocalizedMessage(), ex.getMessage().contains(getExpectedGroupExMsg("noGroups", "bar"))); } @@ -108,7 +109,7 @@ public class TestImpersonationWithHadoopAuth extends SolrCloudTestCase { @Test public void testProxyWrongHost() throws Exception { try (SolrClient solrClient = newSolrClient()) { - HttpSolrClient.RemoteSolrException ex = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException ex = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("wrongHost","bar"))); assertTrue(ex.getMessage().contains(getExpectedHostExMsg("wrongHost"))); } @@ -117,7 +118,7 @@ public class TestImpersonationWithHadoopAuth extends SolrCloudTestCase { @Test public void testProxyNoConfigHosts() throws Exception { try (SolrClient solrClient = newSolrClient()) { - HttpSolrClient.RemoteSolrException ex = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException ex = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("noHosts","bar"))); assertTrue(ex.getMessage().contains(getExpectedHostExMsg("noHosts"))); } @@ -135,7 +136,7 @@ public class TestImpersonationWithHadoopAuth extends SolrCloudTestCase { public void testProxyInvalidProxyUser() throws Exception { try (SolrClient solrClient = newSolrClient()) { // wrong direction, should fail - HttpSolrClient.RemoteSolrException ex = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException ex = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("bar","anyHostAnyUser"))); assertTrue(ex.getMessage().contains(getExpectedGroupExMsg("bar", "anyHostAnyUser"))); } @@ -160,7 +161,7 @@ public class TestImpersonationWithHadoopAuth extends SolrCloudTestCase { @Test public void testProxyInvalidGroup() throws Exception { try (SolrClient solrClient = newSolrClient()) { - HttpSolrClient.RemoteSolrException ex = expectThrows(HttpSolrClient.RemoteSolrException.class, + BaseHttpSolrClient.RemoteSolrException ex = expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("bogusGroup","bar"))); assertTrue(ex.getMessage().contains(getExpectedGroupExMsg("bogusGroup", "bar"))); } @@ -169,7 +170,7 @@ public class TestImpersonationWithHadoopAuth extends SolrCloudTestCase { @Test public void testProxyNullProxyUser() throws Exception { try (SolrClient solrClient = newSolrClient()) { - expectThrows(HttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("","bar"))); + expectThrows(BaseHttpSolrClient.RemoteSolrException.class, () -> solrClient.request(getProxyRequest("","bar"))); } } diff --git a/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc b/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc index d1b2e8ee2f2..e699eda15c1 100644 --- a/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc +++ b/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc @@ -96,6 +96,10 @@ _(raw; not yet edited)_ * SOLR-14012: unique and hll aggregations always returns long value irrespective of standalone or solcloud (Munendra S N, hossman) + +* SOLR-14344: Remove Deprecated HttpSolrClient.RemoteSolrException and HttpSolrClient.RemoteExcecutionException. + All the usages are replaced by BaseHttpSolrClient.RemoteSolrException and BaseHttpSolrClient.RemoteExcecutionException. + (Munendra S N) === Upgrade Prerequisites in Solr 9 diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java index 6c6eb250505..79a40c0a092 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpClusterStateProvider.java @@ -259,7 +259,7 @@ public abstract class BaseHttpClusterStateProvider implements ClusterStateProvid String baseUrl = Utils.getBaseUrlForNodeName(nodeName, urlScheme); try (SolrClient client = getSolrClient(baseUrl)) { return fetchClusterState(client, null, null); - } catch (SolrServerException | HttpSolrClient.RemoteSolrException | IOException e) { + } catch (SolrServerException | BaseHttpSolrClient.RemoteSolrException | IOException e) { log.warn("Attempt to fetch cluster state from {} failed.", baseUrl, e); } catch (NotACollectionException e) { // not possible! (we passed in null for collection so it can't be an alias) @@ -282,7 +282,7 @@ public abstract class BaseHttpClusterStateProvider implements ClusterStateProvid Map clusterProperties = new HashMap<>(); fetchClusterState(client, null, clusterProperties); return clusterProperties; - } catch (SolrServerException | HttpSolrClient.RemoteSolrException | IOException e) { + } catch (SolrServerException | BaseHttpSolrClient.RemoteSolrException | IOException e) { log.warn("Attempt to fetch cluster state from {} failed.", baseUrl, e); } catch (NotACollectionException e) { // not possible! (we passed in null for collection so it can't be an alias) diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpSolrClient.java index dceb13c20e5..96443201f07 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/BaseHttpSolrClient.java @@ -48,7 +48,7 @@ public abstract class BaseHttpSolrClient extends SolrClient { * This should be thrown when a server has an error in executing the request and * it sends a proper payload back to the client */ - public static class RemoteExecutionException extends HttpSolrClient.RemoteSolrException { + public static class RemoteExecutionException extends RemoteSolrException { private NamedList meta; public RemoteExecutionException(String remoteHost, int code, String msg, NamedList meta) { @@ -57,12 +57,12 @@ public abstract class BaseHttpSolrClient extends SolrClient { } - public static HttpSolrClient.RemoteExecutionException create(String host, NamedList errResponse) { + public static RemoteExecutionException create(String host, NamedList errResponse) { Object errObj = errResponse.get("error"); if (errObj != null) { Number code = (Number) getObjectByPath(errObj, true, Collections.singletonList("code")); String msg = (String) getObjectByPath(errObj, true, Collections.singletonList("msg")); - return new HttpSolrClient.RemoteExecutionException(host, code == null ? ErrorCode.UNKNOWN.code : code.intValue(), + return new RemoteExecutionException(host, code == null ? ErrorCode.UNKNOWN.code : code.intValue(), msg == null ? "Unknown Error" : msg, errResponse); } else { diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClient.java index 0e224a1b85b..80e83dfc55b 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClient.java @@ -271,7 +271,7 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient { // don't want to fail to report error if parsing the response fails log.warn("Failed to parse error response from " + basePath + " due to: " + exc); } finally { - solrExc = new HttpSolrClient.RemoteSolrException(basePath , statusCode, msg.toString(), null); + solrExc = new BaseHttpSolrClient.RemoteSolrException(basePath , statusCode, msg.toString(), null); if (metadata != null) { solrExc.setMetadata(metadata); } diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClient.java index c774e033671..b07a24e0afd 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClient.java @@ -389,7 +389,7 @@ public class ConcurrentUpdateSolrClient extends SolrClient { // don't want to fail to report error if parsing the response fails log.warn("Failed to parse error response from " + client.getBaseURL() + " due to: " + exc); } finally { - solrExc = new HttpSolrClient.RemoteSolrException(client.getBaseURL(), statusCode, msg.toString(), null); + solrExc = new BaseHttpSolrClient.RemoteSolrException(client.getBaseURL(), statusCode, msg.toString(), null); if (metadata != null) { solrExc.setMetadata(metadata); } diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java index c5273278d9f..c79e6230da5 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java @@ -813,29 +813,6 @@ s * @deprecated since 7.0 Use {@link Builder} methods instead. this.useMultiPartPost = useMultiPartPost; } - - /** - * @deprecated since 8.0, catch {@link BaseHttpSolrClient.RemoteSolrException} instead - */ - @Deprecated - public static class RemoteSolrException extends BaseHttpSolrClient.RemoteSolrException { - - public RemoteSolrException(String remoteHost, int code, String msg, Throwable th) { - super(remoteHost, code, msg, th); - } - } - - /** - * @deprecated since 8.0, catch {@link BaseHttpSolrClient.RemoteExecutionException} instead - */ - @Deprecated - public static class RemoteExecutionException extends BaseHttpSolrClient.RemoteExecutionException { - - public RemoteExecutionException(String remoteHost, int code, String msg, NamedList meta) { - super(remoteHost, code, msg, meta); - } - } - /** * Constructs {@link HttpSolrClient} instances from provided configuration. */ diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java index 30e093ea8d2..359b49651d7 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBSolrClient.java @@ -369,7 +369,7 @@ public abstract class LBSolrClient extends SolrClient { if (isZombie) { zombieServers.remove(baseUrl); } - } catch (HttpSolrClient.RemoteExecutionException e){ + } catch (BaseHttpSolrClient.RemoteExecutionException e){ throw e; } catch(SolrException e) { // we retry on 404 or 403 or 503 or 500 diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java index ed3a1b3f261..5119664dc59 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTests.java @@ -42,7 +42,7 @@ import org.apache.solr.client.solrj.embedded.SolrExampleStreamingHttp2Test; import org.apache.solr.client.solrj.embedded.SolrExampleStreamingTest.ErrorTrackingConcurrentUpdateSolrClient; import org.apache.solr.client.solrj.impl.BinaryResponseParser; import org.apache.solr.client.solrj.impl.HttpSolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient.RemoteSolrException; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient.RemoteSolrException; import org.apache.solr.client.solrj.impl.NoOpResponseParser; import org.apache.solr.client.solrj.impl.XMLResponseParser; import org.apache.solr.client.solrj.request.AbstractUpdateRequest; diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java b/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java index 0b365690ec8..807d9ac0d4b 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/TestSolrJErrorHandling.java @@ -17,7 +17,6 @@ package org.apache.solr.client.solrj; import java.io.BufferedOutputStream; - import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -39,6 +38,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.commons.io.IOUtils; import org.apache.solr.SolrJettyTestBase; import org.apache.solr.SolrTestCaseJ4.SuppressSSL; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.impl.BinaryRequestWriter; import org.apache.solr.client.solrj.impl.HttpSolrClient; import org.apache.solr.client.solrj.request.RequestWriter; @@ -205,7 +205,7 @@ public class TestSolrJErrorHandling extends SolrJettyTestBase { try { client.add(manyDocs(threadNum*1000000, 1000)); } - catch (HttpSolrClient.RemoteSolrException e) { + catch (BaseHttpSolrClient.RemoteSolrException e) { String msg = e.getMessage(); assertTrue(msg, msg.contains("field_does_not_exist")); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java index c398227d527..23acbf60548 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientTest.java @@ -694,7 +694,7 @@ public class CloudHttp2SolrClientTest extends SolrCloudTestCase { Replica r = coll.getSlices().iterator().next().getReplicas().iterator().next(); SolrQuery q = new SolrQuery().setQuery("*:*"); - HttpSolrClient.RemoteSolrException sse = null; + BaseHttpSolrClient.RemoteSolrException sse = null; final String url = r.getStr(ZkStateReader.BASE_URL_PROP) + "/" + COLLECTION; try (HttpSolrClient solrClient = getHttpSolrClient(url)) { @@ -741,7 +741,7 @@ public class CloudHttp2SolrClientTest extends SolrCloudTestCase { try { QueryResponse rsp = solrClient.query(q); log.info("error was expected"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { sse = e; } assertNotNull(sse); 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 943b26ca645..964d34374e8 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 @@ -680,7 +680,7 @@ public class CloudSolrClientTest extends SolrCloudTestCase { Replica r = coll.getSlices().iterator().next().getReplicas().iterator().next(); SolrQuery q = new SolrQuery().setQuery("*:*"); - HttpSolrClient.RemoteSolrException sse = null; + BaseHttpSolrClient.RemoteSolrException sse = null; final String url = r.getStr(ZkStateReader.BASE_URL_PROP) + "/" + COLLECTION; try (HttpSolrClient solrClient = getHttpSolrClient(url)) { @@ -727,7 +727,7 @@ public class CloudSolrClientTest extends SolrCloudTestCase { try { QueryResponse rsp = solrClient.query(q); log.info("error was expected"); - } catch (HttpSolrClient.RemoteSolrException e) { + } catch (BaseHttpSolrClient.RemoteSolrException e) { sse = e; } assertNotNull(sse); diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/SchemaTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/SchemaTest.java index 09235bcd480..98cc023418e 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/SchemaTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/SchemaTest.java @@ -16,10 +16,6 @@ */ package org.apache.solr.client.solrj.request; -import static org.hamcrest.CoreMatchers.anyOf; -import static org.hamcrest.CoreMatchers.equalTo; -import static org.hamcrest.CoreMatchers.is; - import java.io.File; import java.util.ArrayList; import java.util.Arrays; @@ -33,7 +29,7 @@ import java.util.TreeMap; import org.apache.commons.io.FileUtils; import org.apache.solr.client.solrj.SolrClient; -import org.apache.solr.client.solrj.impl.HttpSolrClient; +import org.apache.solr.client.solrj.impl.BaseHttpSolrClient; import org.apache.solr.client.solrj.request.schema.AnalyzerDefinition; import org.apache.solr.client.solrj.request.schema.FieldTypeDefinition; import org.apache.solr.client.solrj.request.schema.SchemaRequest; @@ -51,6 +47,10 @@ import org.junit.Before; import org.junit.Test; import org.restlet.ext.servlet.ServerServlet; +import static org.hamcrest.CoreMatchers.anyOf; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; + /** * Test the functionality (accuracy and failure) of the methods exposed by the classes * {@link SchemaRequest} and {@link SchemaResponse}. @@ -62,7 +62,7 @@ public class SchemaTest extends RestTestBase { } private static void assertFailedSchemaResponse(ThrowingRunnable runnable, String expectedErrorMessage) { - HttpSolrClient.RemoteExecutionException e = expectThrows(HttpSolrClient.RemoteExecutionException.class, runnable); + BaseHttpSolrClient.RemoteExecutionException e = expectThrows(BaseHttpSolrClient.RemoteExecutionException.class, runnable); SimpleOrderedMap errorMap = (SimpleOrderedMap)e.getMetaData().get("error"); assertEquals("org.apache.solr.api.ApiBag$ExceptionWithErrObject", ((NamedList)errorMap.get("metadata")).get("error-class")); diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestV2Request.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestV2Request.java index 5d8954d22e3..b05b889b977 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestV2Request.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestV2Request.java @@ -135,7 +135,7 @@ public class TestV2Request extends SolrCloudTestCase { " }" + "}" + ", 'something':'bogus'").build()); assertFalse("The request failed", res1.get("responseHeader").toString().contains("status=0")); - }catch(BaseHttpSolrClient.RemoteExecutionException itsOk) { + } catch(BaseHttpSolrClient.RemoteExecutionException itsOk) { } }