You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/08/22 18:42:25 UTC
[lucene-solr] 06/22: @586 Apache HttpClient almost knocked out.
This is an automated email from the ASF dual-hosted git repository.
markrmiller pushed a commit to branch reference_impl
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit ebbcf132e4185960f3fb99d0121aab56e91f07df
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Thu Aug 20 13:19:45 2020 -0500
@586 Apache HttpClient almost knocked out.
---
.../OverseerCollectionMessageHandler.java | 9 +++---
.../api/collections/ReindexCollectionCmd.java | 19 +++++++------
.../java/org/apache/solr/core/BlobRepository.java | 11 ++++----
.../java/org/apache/solr/core/CoreContainer.java | 5 ++--
.../apache/solr/filestore/DistribPackageStore.java | 3 +-
.../org/apache/solr/handler/SolrConfigHandler.java | 12 ++++----
.../handler/admin/AutoscalingHistoryHandler.java | 6 ++--
.../handler/component/HttpShardHandlerFactory.java | 5 ----
.../handler/component/ShardHandlerFactory.java | 1 -
.../src/java/org/apache/solr/pkg/PackageAPI.java | 33 ++++++++++++++++------
.../org/apache/solr/update/PeerSyncWithLeader.java | 10 ++++---
.../solr/client/solrj/impl/Http2SolrClient.java | 1 +
12 files changed, 67 insertions(+), 48 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 e2abb17..4e5626c 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
@@ -26,6 +26,7 @@ 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.Http2SolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.UpdateRequest;
@@ -543,7 +544,7 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler,
// and we force open a searcher so that we have documents to show upon switching states
UpdateResponse updateResponse = null;
try {
- updateResponse = softCommit(coreUrl, overseer.getCoreContainer().getUpdateShardHandler().getDefaultHttpClient());
+ updateResponse = softCommit(coreUrl, overseer.getCoreContainer().getUpdateShardHandler().getUpdateOnlyHttpClient());
processResponse(results, null, coreUrl, updateResponse, slice, Collections.emptySet());
} catch (Exception e) {
ParWork.propegateInterrupt(e);
@@ -553,11 +554,9 @@ public class OverseerCollectionMessageHandler implements OverseerMessageHandler,
}
- static UpdateResponse softCommit(String url, HttpClient httpClient) throws SolrServerException, IOException {
+ static UpdateResponse softCommit(String url, Http2SolrClient httpClient) throws SolrServerException, IOException {
- try (HttpSolrClient client = new HttpSolrClient.Builder(url)
- .withConnectionTimeout(Integer.getInteger("solr.connect_timeout.default", 15000))
- .withSocketTimeout(Integer.getInteger("solr.so_commit_timeout.default", 30000))
+ try (Http2SolrClient client = new Http2SolrClient.Builder(url)
.withHttpClient(httpClient)
.markInternalRequest()
.build()) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
index 4f12a64..1fe78cb 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/ReindexCollectionCmd.java
@@ -38,6 +38,7 @@ import org.apache.solr.client.solrj.cloud.DistribStateManager;
import org.apache.solr.client.solrj.cloud.autoscaling.Policy;
import org.apache.solr.client.solrj.impl.CloudHttp2SolrClient;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
+import org.apache.solr.client.solrj.impl.Http2SolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
@@ -636,10 +637,11 @@ public class ReindexCollectionCmd implements OverseerCollectionMessageHandler.Cm
// XXX SolrCore where the daemon is running
@SuppressWarnings({"unchecked"})
private void waitForDaemon(String daemonName, String daemonUrl, String sourceCollection, String targetCollection, Map<String, Object> reindexingState) throws Exception {
- HttpClient client = ocmh.overseer.getCoreContainer().getUpdateShardHandler().getDefaultHttpClient();
- try (HttpSolrClient solrClient = new HttpSolrClient.Builder()
- .withHttpClient(client)
- .withBaseSolrUrl(daemonUrl).markInternalRequest().build()) {
+ Http2SolrClient client = ocmh.overseer.getCoreContainer()
+ .getUpdateShardHandler().getUpdateOnlyHttpClient();
+ try (Http2SolrClient solrClient = new Http2SolrClient.Builder()
+ .withHttpClient(client).markInternalRequest().build()) {
+ solrClient.setBaseUrl(daemonUrl);
ModifiableSolrParams q = new ModifiableSolrParams();
q.set(CommonParams.QT, "/stream");
q.set("action", "list");
@@ -690,11 +692,12 @@ public class ReindexCollectionCmd implements OverseerCollectionMessageHandler.Cm
@SuppressWarnings({"unchecked"})
private void killDaemon(String daemonName, String daemonUrl) throws Exception {
log.debug("-- killing daemon {} at {}", daemonName, daemonUrl);
- HttpClient client = ocmh.overseer.getCoreContainer().getUpdateShardHandler().getDefaultHttpClient();
- try (HttpSolrClient solrClient = new HttpSolrClient.Builder()
+ Http2SolrClient client = ocmh.overseer.getCoreContainer()
+ .getUpdateShardHandler().getUpdateOnlyHttpClient();
+ try (Http2SolrClient solrClient = new Http2SolrClient.Builder()
.withHttpClient(client)
- .markInternalRequest()
- .withBaseSolrUrl(daemonUrl).build()) {
+ .markInternalRequest().build()) {
+ client.setBaseUrl(daemonUrl);
ModifiableSolrParams q = new ModifiableSolrParams();
q.set(CommonParams.QT, "/stream");
// we should really use 'kill' here, but then we will never
diff --git a/solr/core/src/java/org/apache/solr/core/BlobRepository.java b/solr/core/src/java/org/apache/solr/core/BlobRepository.java
index 6a26373..8333a47 100644
--- a/solr/core/src/java/org/apache/solr/core/BlobRepository.java
+++ b/solr/core/src/java/org/apache/solr/core/BlobRepository.java
@@ -38,6 +38,7 @@ import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
+import org.apache.solr.client.solrj.impl.Http2SolrClient;
import org.apache.solr.common.ParWork;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.ClusterState;
@@ -212,22 +213,20 @@ public class BlobRepository {
}
ByteBuffer fetchFromUrl(String key, String url) {
- HttpClient httpClient = coreContainer.getUpdateShardHandler().getDefaultHttpClient();
+ Http2SolrClient httpClient = coreContainer
+ .getUpdateShardHandler().getUpdateOnlyHttpClient();
HttpGet httpGet = new HttpGet(url);
ByteBuffer b;
HttpResponse response = null;
HttpEntity entity = null;
try {
- response = httpClient.execute(httpGet);
+
+ b = ByteBuffer.wrap(Http2SolrClient.GET(url, httpClient).bytes);
entity = response.getEntity();
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != 200) {
throw new SolrException(SolrException.ErrorCode.NOT_FOUND, "no such blob or version available: " + key);
}
-
- try (InputStream is = entity.getContent()) {
- b = SimplePostTool.inputStreamToByteArray(is, MAX_JAR_SIZE);
- }
} catch (Exception e) {
ParWork.propegateInterrupt(e);
if (e instanceof SolrException) {
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index f8660c7..f35b675 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -59,6 +59,7 @@ import org.apache.lucene.store.Directory;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.cloud.SolrCloudManager;
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
+import org.apache.solr.client.solrj.impl.CloudHttp2SolrClient;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.impl.HttpClientUtil;
import org.apache.solr.client.solrj.impl.SolrHttpClientBuilder;
@@ -979,8 +980,8 @@ public class CoreContainer implements Closeable {
if (isZooKeeperAware()) {
name = getZkController().getNodeName();
cloudManager = getZkController().getSolrCloudManager();
- client = new CloudSolrClient.Builder(getZkController().getZkStateReader())
- .withHttpClient(updateShardHandler.getDefaultHttpClient()).build();
+ client = new CloudHttp2SolrClient.Builder(getZkController().getZkStateReader())
+ .withHttpClient(updateShardHandler.getUpdateOnlyHttpClient()).build();
} else {
name = getNodeConfig().getNodeName();
if (name == null || name.isEmpty()) {
diff --git a/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java b/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java
index be9987c..be2e231 100644
--- a/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java
+++ b/solr/core/src/java/org/apache/solr/filestore/DistribPackageStore.java
@@ -40,6 +40,7 @@ import java.util.function.Predicate;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.lucene.util.IOUtils;
+import org.apache.solr.client.solrj.impl.Http2SolrClient;
import org.apache.solr.common.ParWork;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.ZkStateReader;
@@ -372,7 +373,7 @@ public class DistribPackageStore implements PackageStore {
}
try {
//fire and forget
- Utils.executeGET(coreContainer.getUpdateShardHandler().getDefaultHttpClient(), url, null);
+ Http2SolrClient.GET(url, coreContainer.getUpdateShardHandler().getUpdateOnlyHttpClient());
} catch (Exception e) {
ParWork.propegateInterrupt(e);
log.info("Node: {} failed to respond for file fetch notification", node, e);
diff --git a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
index b5c2cf9..f420f5f 100644
--- a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
@@ -24,6 +24,7 @@ import org.apache.solr.api.ApiBag;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrResponse;
+import org.apache.solr.client.solrj.impl.Http2SolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.io.stream.expr.Expressible;
import org.apache.solr.cloud.ZkController;
@@ -819,7 +820,7 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
for (String coreUrl : getActiveReplicaCoreUrls(zkController, collection)) {
PerReplicaCallable e = new PerReplicaCallable(
- zkController.getCoreContainer().getUpdateShardHandler().getDefaultHttpClient()
+ zkController.getCoreContainer().getUpdateShardHandler().getUpdateOnlyHttpClient()
, coreUrl, prop, expectedVersion, maxWaitSecs);
concurrentTasks.add(e);
}
@@ -914,14 +915,14 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
@SuppressWarnings({"rawtypes"})
private static class PerReplicaCallable extends SolrRequest implements Callable<Boolean> {
- private final HttpClient httpClient;
+ private final Http2SolrClient httpClient;
String coreUrl;
String prop;
int expectedZkVersion;
Number remoteVersion = null;
int maxWait;
- PerReplicaCallable(HttpClient defaultHttpClient, String coreUrl, String prop, int expectedZkVersion, int maxWait) {
+ PerReplicaCallable(Http2SolrClient defaultHttpClient, String coreUrl, String prop, int expectedZkVersion, int maxWait) {
super(METHOD.GET, "/config/" + ZNODEVER);
this.coreUrl = coreUrl;
this.expectedZkVersion = expectedZkVersion;
@@ -942,7 +943,7 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
final RTimer timer = new RTimer();
long timeElapsed = (long) timer.getTime() / 1000;
int attempts = 0;
- try (HttpSolrClient solr = new HttpSolrClient.Builder(coreUrl).withHttpClient(httpClient).markInternalRequest().build()) {
+ try (Http2SolrClient solr = new Http2SolrClient.Builder(coreUrl).withHttpClient(httpClient).markInternalRequest().build()) {
// eventually, this loop will get killed by the ExecutorService's timeout
while (true) {
try {
@@ -950,8 +951,7 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
if (timeElapsed >= maxWait) {
return false;
}
-
- NamedList<Object> resp = solr.httpUriRequest(this).future.get();
+ NamedList<Object> resp = solr.request(this);
if (resp != null) {
@SuppressWarnings({"rawtypes"})
Map m = (Map) resp.get(ZNODEVER);
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/AutoscalingHistoryHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/AutoscalingHistoryHandler.java
index c65ac31..3b2c60a 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/AutoscalingHistoryHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/AutoscalingHistoryHandler.java
@@ -26,6 +26,8 @@ import java.util.Optional;
import org.apache.solr.api.Api;
import org.apache.solr.api.ApiBag;
+import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.impl.CloudHttp2SolrClient;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.cloud.autoscaling.SystemLogListener;
@@ -127,8 +129,8 @@ public class AutoscalingHistoryHandler extends RequestHandlerBase implements Per
}
}
}
- try (CloudSolrClient cloudSolrClient = new CloudSolrClient.Builder(req.getCore().getCoreContainer().getZkController().getZkStateReader())
- .withHttpClient(coreContainer.getUpdateShardHandler().getDefaultHttpClient())
+ try (CloudHttp2SolrClient cloudSolrClient = new CloudHttp2SolrClient.Builder(req.getCore().getCoreContainer().getZkController().getZkStateReader())
+ .withHttpClient(coreContainer.getUpdateShardHandler().getUpdateOnlyHttpClient())
.build()) {
QueryResponse qr = cloudSolrClient.query(collection, params);
rsp.setAllValues(qr.getResponse());
diff --git a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
index 5d096c5..56825f2 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
@@ -160,7 +160,6 @@ public class HttpShardHandlerFactory extends ShardHandlerFactory implements org.
static final String SET_SOLR_DISABLE_SHARDS_WHITELIST_CLUE = " set -D"+INIT_SOLR_DISABLE_SHARDS_WHITELIST+"=true to disable shards whitelist checks";
private volatile Http2SolrClient solrClient;
- private volatile HttpClient httpClient;
public HttpShardHandlerFactory() {
@@ -386,10 +385,6 @@ public class HttpShardHandlerFactory extends ShardHandlerFactory implements org.
this.solrClient = solrClient;
}
- public void setHttpClient(HttpClient httpClient) {
- this.httpClient = httpClient;
- }
-
/**
* Makes a request to one or more of the given urls, using the configured load balancer.
*
diff --git a/solr/core/src/java/org/apache/solr/handler/component/ShardHandlerFactory.java b/solr/core/src/java/org/apache/solr/handler/component/ShardHandlerFactory.java
index 945056c..75c9459 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/ShardHandlerFactory.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/ShardHandlerFactory.java
@@ -51,7 +51,6 @@ public abstract class ShardHandlerFactory implements Closeable {
try {
ShardHandlerFactory shf = loader.findClass(info.className, ShardHandlerFactory.class, "handler.component.").getConstructor().newInstance();
if (shf instanceof HttpShardHandlerFactory) {
- ((HttpShardHandlerFactory) shf).setHttpClient(ush.getDefaultHttpClient());
((HttpShardHandlerFactory) shf).setHttp2Client(ush.getUpdateOnlyHttpClient());
}
if (PluginInfoInitialized.class.isAssignableFrom(shf.getClass()))
diff --git a/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java b/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
index c93a171..63e6722 100644
--- a/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
+++ b/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
@@ -26,14 +26,18 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeoutException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.solr.api.Command;
import org.apache.solr.api.EndPoint;
import org.apache.solr.api.PayloadObj;
import org.apache.solr.client.solrj.SolrRequest;
+import org.apache.solr.client.solrj.impl.Http2SolrClient;
import org.apache.solr.client.solrj.request.beans.Package;
import org.apache.solr.common.ParWork;
+import org.apache.solr.common.ParWorkExecService;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.annotation.JsonProperty;
import org.apache.solr.common.cloud.SolrZkClient;
@@ -236,12 +240,17 @@ public class PackageAPI {
//first refresh my own
packageLoader.notifyListeners(p);
for (String s : coreContainer.getPackageStoreAPI().shuffledNodes()) {
- Utils.executeGET(coreContainer.getUpdateShardHandler().getDefaultHttpClient(),
- coreContainer.getZkController().zkStateReader.getBaseUrlForNodeName(s).replace("/solr", "/api") + "/cluster/package?wt=javabin&omitHeader=true&refreshPackage=" + p,
- Utils.JAVABINCONSUMER);
+ try {
+ Http2SolrClient.GET(coreContainer.getZkController().
+ zkStateReader.getBaseUrlForNodeName(s).replace("/solr", "/api") + "/cluster/package?wt=javabin&omitHeader=true&refreshPackage=" + p, coreContainer.getUpdateShardHandler().getUpdateOnlyHttpClient());
+ } catch (InterruptedException e) {
+ ParWork.propegateInterrupt(e);
+ } catch (ExecutionException e) {
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
+ } catch (TimeoutException e) {
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
+ }
}
-
-
}
@@ -409,9 +418,17 @@ public class PackageAPI {
void notifyAllNodesToSync(int expected) {
for (String s : coreContainer.getPackageStoreAPI().shuffledNodes()) {
- Utils.executeGET(coreContainer.getUpdateShardHandler().getDefaultHttpClient(),
- coreContainer.getZkController().zkStateReader.getBaseUrlForNodeName(s).replace("/solr", "/api") + "/cluster/package?wt=javabin&omitHeader=true&expectedVersion" + expected,
- Utils.JAVABINCONSUMER);
+ try {
+ Http2SolrClient.GET(coreContainer.getZkController().zkStateReader.
+ getBaseUrlForNodeName(s).replace("/solr", "/api") +
+ "/cluster/package?wt=javabin&omitHeader=true&expectedVersion" + expected, coreContainer.getUpdateShardHandler().getUpdateOnlyHttpClient());
+ } catch (InterruptedException e) {
+ ParWork.propegateInterrupt(e);
+ } catch (ExecutionException e) {
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
+ } catch (TimeoutException e) {
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, e);
+ }
}
}
diff --git a/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java b/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java
index 1cbc1bf..00613e4 100644
--- a/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java
+++ b/solr/core/src/java/org/apache/solr/update/PeerSyncWithLeader.java
@@ -28,6 +28,7 @@ import com.codahale.metrics.Timer;
import org.apache.http.client.HttpClient;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.client.solrj.impl.Http2SolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
@@ -56,7 +57,7 @@ public class PeerSyncWithLeader implements SolrMetricProducer {
private UpdateHandler uhandler;
private UpdateLog ulog;
- private HttpSolrClient clientToLeader;
+ private Http2SolrClient clientToLeader;
private final boolean doFingerprint;
@@ -79,8 +80,9 @@ public class PeerSyncWithLeader implements SolrMetricProducer {
this.doFingerprint = !"true".equals(System.getProperty("solr.disableFingerprint"));
this.uhandler = core.getUpdateHandler();
this.ulog = uhandler.getUpdateLog();
- HttpClient httpClient = core.getCoreContainer().getUpdateShardHandler().getDefaultHttpClient();
- this.clientToLeader = new HttpSolrClient.Builder(leaderUrl).withHttpClient(httpClient).markInternalRequest().build();
+ Http2SolrClient httpClient = core
+ .getCoreContainer().getUpdateShardHandler().getUpdateOnlyHttpClient();
+ this.clientToLeader = new Http2SolrClient.Builder(leaderUrl).withHttpClient(httpClient).markInternalRequest().build();
this.updater = new PeerSync.Updater(msg(), core);
@@ -192,7 +194,7 @@ public class PeerSyncWithLeader implements SolrMetricProducer {
}
try {
clientToLeader.close();
- } catch (IOException e) {
+ } catch (Exception e) {
log.warn("{} unable to close client to leader", msg(), e);
}
}
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index 323c97c..44a93ac 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -1185,6 +1185,7 @@ public class Http2SolrClient extends SolrClient {
sResponse.contentType = response.getEncoding();
sResponse.size = response.getContent().length;
sResponse.status = response.getStatus();
+ sResponse.bytes = response.getContent();
return sResponse;
}