You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/11/20 15:54:36 UTC
lucene-solr:jira/http2: Cleanup
Repository: lucene-solr
Updated Branches:
refs/heads/jira/http2 dbd1005ac -> 22b10a56b
Cleanup
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/22b10a56
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/22b10a56
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/22b10a56
Branch: refs/heads/jira/http2
Commit: 22b10a56b759f7cbdb5cd3f4fc63039c468451a3
Parents: dbd1005
Author: Cao Manh Dat <da...@apache.org>
Authored: Tue Nov 20 15:54:29 2018 +0000
Committer: Cao Manh Dat <da...@apache.org>
Committed: Tue Nov 20 15:54:29 2018 +0000
----------------------------------------------------------------------
.../apache/solr/update/SolrCmdDistributor.java | 19 +--
.../solr/update/StreamingSolrClients.java | 2 +-
.../processor/DistributedUpdateProcessor.java | 22 ++--
.../processor/TolerantUpdateProcessor.java | 14 +--
.../solr/client/solrj/impl/CloudSolrClient.java | 2 +-
.../impl/ConcurrentUpdateHttp2SolrClient.java | 115 +++++--------------
.../solrj/impl/ConcurrentUpdateSolrClient.java | 2 +-
.../solr/client/solrj/impl/HttpSolrClient.java | 2 +-
.../client/solrj/impl/LBHttpSolrClient.java | 2 +-
.../client/solrj/impl/SolrClientBuilder.java | 8 +-
10 files changed, 64 insertions(+), 124 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java b/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
index 5ab4c84..207a0ed 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrCmdDistributor.java
@@ -50,8 +50,6 @@ import org.apache.solr.core.Diagnostics;
import org.apache.solr.update.processor.DistributedUpdateProcessor;
import org.apache.solr.update.processor.DistributedUpdateProcessor.LeaderRequestReplicationTracker;
import org.apache.solr.update.processor.DistributedUpdateProcessor.RollupRequestReplicationTracker;
-import org.eclipse.jetty.client.api.Response;
-import org.eclipse.jetty.io.EofException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -240,11 +238,10 @@ public class SolrCmdDistributor implements Closeable {
}
public void distribCommit(CommitUpdateCommand cmd, List<Node> nodes,
- ModifiableSolrParams params) throws IOException {
+ ModifiableSolrParams params) throws IOException {
// we need to do any retries before commit...
blockAndDoRetries();
-
log.debug("Distrib commit to: {} params: {}", nodes, params);
for (Node node : nodes) {
@@ -325,7 +322,7 @@ public class SolrCmdDistributor implements Closeable {
private void doRequest(final Req req) {
try {
SolrClient solrClient = clients.getSolrClient(req);
- NamedList rs = solrClient.request(req.uReq);
+ solrClient.request(req.uReq);
} catch (Exception e) {
SolrException.log(log, e);
Error error = new Error();
@@ -420,11 +417,9 @@ public class SolrCmdDistributor implements Closeable {
} catch (Exception e) {
log.warn("Failed to parse response from {} during replication factor accounting", node, e);
} finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (Exception ignore) {
- }
+ try {
+ inputStream.close();
+ } catch (Exception ignore) {
}
}
}
@@ -538,9 +533,7 @@ public class SolrCmdDistributor implements Closeable {
* false otherwise
*/
private boolean isRetriableException(Throwable t) {
- return t instanceof SocketException
- || t instanceof NoHttpResponseException
- || t instanceof SocketTimeoutException;
+ return t instanceof SocketException || t instanceof NoHttpResponseException || t instanceof SocketTimeoutException;
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java b/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java
index ef91064..f46c744 100644
--- a/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java
+++ b/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java
@@ -73,7 +73,7 @@ public class StreamingSolrClients {
// on a greater scale since the current behavior is to only increase the number of connections/Runners when
// the queue is more than half full.
client = new ErrorReportingConcurrentUpdateSolrClient.Builder(url, req, errors)
- .withHttpClient(httpClient)
+ .withHttp2SolrClient(httpClient)
.withQueueSize(100)
.withThreadCount(runnerCount)
.withExecutorService(updateExecutor)
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
index 5c8b029..1b92a02 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
@@ -140,8 +140,8 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
return valueOf(param);
} catch (IllegalArgumentException e) {
throw new SolrException
- (SolrException.ErrorCode.BAD_REQUEST, "Illegal value for " +
- DISTRIB_UPDATE_PARAM + ": " + param, e);
+ (SolrException.ErrorCode.BAD_REQUEST, "Illegal value for " +
+ DISTRIB_UPDATE_PARAM + ": " + param, e);
}
}
}
@@ -215,7 +215,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
* @lucene.experimental
*/
public DistributedUpdateProcessor(SolrQueryRequest req,
- SolrQueryResponse rsp, AtomicUpdateDocumentMerger docMerger, UpdateRequestProcessor next) {
+ SolrQueryResponse rsp, AtomicUpdateDocumentMerger docMerger, UpdateRequestProcessor next) {
super(next);
this.rsp = rsp;
this.next = next;
@@ -235,7 +235,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
// this should always be used - see filterParams
DistributedUpdateProcessorFactory.addParamToDistributedRequestWhitelist
- (this.req, UpdateParams.UPDATE_CHAIN, TEST_DISTRIB_SKIP_SERVERS, CommonParams.VERSION_FIELD);
+ (this.req, UpdateParams.UPDATE_CHAIN, TEST_DISTRIB_SKIP_SERVERS, CommonParams.VERSION_FIELD);
CoreContainer cc = req.getCore().getCoreContainer();
@@ -446,7 +446,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
boolean isSubset = aslice.getRange() != null && aslice.getRange().isSubsetOf(myRange);
if (isSubset &&
(docId == null // in case of deletes
- || coll.getRouter().isTargetSlice(docId, doc, req.getParams(), aslice.getName(), coll))) {
+ || coll.getRouter().isTargetSlice(docId, doc, req.getParams(), aslice.getName(), coll))) {
Replica sliceLeader = aslice.getLeader();
// slice leader can be null because node/shard is created zk before leader election
if (sliceLeader != null && zkController.getClusterState().liveNodesContain(sliceLeader.getNodeName())) {
@@ -837,7 +837,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
Exception getLeaderExc = null;
Replica leaderProps = null;
try {
- leaderProps = zkController.getZkStateReader().getLeader(collection, shardId);
+ leaderProps = zkController.getZkStateReader().getLeader(collection, shardId);
if (leaderProps != null) {
leaderCoreNodeName = leaderProps.getName();
}
@@ -970,8 +970,8 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
if (vinfo == null) {
if (AtomicUpdateDocumentMerger.isAtomicUpdate(cmd)) {
throw new SolrException
- (SolrException.ErrorCode.BAD_REQUEST,
- "Atomic document updates are not supported unless <updateLog/> is configured");
+ (SolrException.ErrorCode.BAD_REQUEST,
+ "Atomic document updates are not supported unless <updateLog/> is configured");
} else {
super.processAdd(cmd);
return false;
@@ -1190,7 +1190,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
* @return -1 if the current in-place should be dropped, or last found version if previous update has been indexed.
*/
private long waitForDependentUpdates(AddUpdateCommand cmd, long versionOnUpdate,
- boolean isReplayOrPeersync, VersionBucket bucket) throws IOException {
+ boolean isReplayOrPeersync, VersionBucket bucket) throws IOException {
long lastFoundVersion = 0;
TimeOut waitTimeout = new TimeOut(5, TimeUnit.SECONDS, TimeSource.NANO_TIME);
@@ -1491,7 +1491,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
DistribPhase phase = DistribPhase.parseParam(req.getParams().get(DISTRIB_UPDATE_PARAM));
DocCollection coll = zkEnabled
- ? zkController.getClusterState().getCollection(collection) : null;
+ ? zkController.getClusterState().getCollection(collection) : null;
if (zkEnabled && DistribPhase.NONE == phase) {
if (rollupReplicationTracker == null) {
@@ -1988,7 +1988,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
*/
public static boolean getNonZkLeaderAssumption(SolrQueryRequest req) {
DistribPhase phase =
- DistribPhase.parseParam(req.getParams().get(DISTRIB_UPDATE_PARAM));
+ DistribPhase.parseParam(req.getParams().get(DISTRIB_UPDATE_PARAM));
// if we have been told we are coming from a leader, then we are
// definitely not the leader. Otherwise assume we are.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java
index e8827c3..24f0335 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java
@@ -152,9 +152,9 @@ public class TolerantUpdateProcessor extends UpdateRequestProcessor {
} catch (Throwable t) {
firstErrTracker.caught(t);
knownErrors.add(new ToleratedUpdateError
- (CmdType.ADD,
- getPrintableId(id),
- t.getMessage()));
+ (CmdType.ADD,
+ getPrintableId(id),
+ t.getMessage()));
if (knownErrors.size() > maxErrors) {
firstErrTracker.throwFirst();
@@ -173,8 +173,8 @@ public class TolerantUpdateProcessor extends UpdateRequestProcessor {
firstErrTracker.caught(t);
ToleratedUpdateError err = new ToleratedUpdateError(cmd.isDeleteById() ? CmdType.DELID : CmdType.DELQ,
- cmd.isDeleteById() ? cmd.id : cmd.query,
- t.getMessage());
+ cmd.isDeleteById() ? cmd.id : cmd.query,
+ t.getMessage());
knownErrors.add(err);
// NOTE: we're not using this to dedup before adding to knownErrors.
@@ -261,8 +261,8 @@ public class TolerantUpdateProcessor extends UpdateRequestProcessor {
for (int i = 0; i < remoteErrMetadata.size(); i++) {
ToleratedUpdateError err =
- ToleratedUpdateError.parseMetadataIfToleratedUpdateError(remoteErrMetadata.getName(i),
- remoteErrMetadata.getVal(i));
+ ToleratedUpdateError.parseMetadataIfToleratedUpdateError(remoteErrMetadata.getName(i),
+ remoteErrMetadata.getVal(i));
if (null == err) {
// some metadata unrelated to this update processor
continue;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
index 90a52ec..193555a 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/CloudSolrClient.java
@@ -1349,7 +1349,7 @@ public class CloudSolrClient extends SolrClient {
/**
* Constructs {@link CloudSolrClient} instances from provided configuration.
*/
- public static class Builder extends SolrClientBuilder<HttpClient, Builder> {
+ public static class Builder extends SolrClientBuilder<Builder> {
protected Collection<String> zkHosts = new ArrayList<>();
protected List<String> solrUrls = new ArrayList<>();
protected String zkChroot;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateHttp2SolrClient.java
----------------------------------------------------------------------
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 c27eba3..58abd0a 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
@@ -22,18 +22,16 @@ import java.io.InputStream;
import java.lang.invoke.MethodHandles;
import java.util.LinkedList;
import java.util.Queue;
-import java.util.Set;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
-import org.apache.solr.client.solrj.ResponseParser;
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.request.RequestWriter;
+import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient.Update;
import org.apache.solr.client.solrj.request.UpdateRequest;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.SolrParams;
@@ -48,25 +46,30 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
+/**
+ * @lucene.experimental
+ */
public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
private static final long serialVersionUID = 1L;
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
private static final Update END_UPDATE = new Update(null, null);
+
private Http2SolrClient client;
private final String basePath;
- final BlockingQueue<Update> queue;
- final ExecutorService scheduler;
- final Queue<Runner> runners;
- volatile CountDownLatch lock = null; // used to block everything
- final int threadCount;
- boolean shutdownExecutor = false;
- int pollQueueTime = 250;
+ private final BlockingQueue<Update> queue;
+ private final ExecutorService scheduler;
+ private final Queue<Runner> runners;
+ private final int threadCount;
+
+ private boolean shutdownExecutor;
+ private int pollQueueTime = 250;
private final boolean streamDeletes;
private volatile boolean closed;
+ private volatile CountDownLatch lock = null; // used to block everything
protected ConcurrentUpdateHttp2SolrClient(Builder builder) {
- this.client = builder.httpClient;
+ this.client = builder.client;
this.queue = new LinkedBlockingQueue<>(builder.queueSize);
this.threadCount = builder.threadCount;
this.runners = new LinkedList<>();
@@ -83,20 +86,6 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
}
-
- public Set<String> getQueryParams() {
- return this.client.getQueryParams();
- }
-
- /**
- * Expert Method.
- * @param queryParams set of param keys to only send via the query string
- */
- public void setQueryParams(Set<String> queryParams) {
- this.client.setQueryParams(queryParams);
- }
-
-
/**
* Opens a connection and sends everything...
*/
@@ -251,7 +240,7 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
// *must* be called with runners monitor held, e.g. synchronized(runners){ addRunner() }
private void addRunner() {
- MDC.put("ConcurrentUpdateSolrClient.url", client.getBaseURL());
+ MDC.put("ConcurrentUpdateHttp2SolrClient.url", client.getBaseURL());
try {
Runner r = new Runner();
runners.add(r);
@@ -262,42 +251,7 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
throw e;
}
} finally {
- MDC.remove("ConcurrentUpdateSolrClient.url");
- }
- }
-
- /**
- * Class representing an UpdateRequest and an optional collection.
- */
- static class Update {
- UpdateRequest request;
- String collection;
- /**
- *
- * @param request the update request.
- * @param collection The collection, can be null.
- */
- public Update(UpdateRequest request, String collection) {
- this.request = request;
- this.collection = collection;
- }
- /**
- * @return the update request.
- */
- public UpdateRequest getRequest() {
- return request;
- }
- public void setRequest(UpdateRequest request) {
- this.request = request;
- }
- /**
- * @return the collection, can be null.
- */
- public String getCollection() {
- return collection;
- }
- public void setCollection(String collection) {
- this.collection = collection;
+ MDC.remove("ConcurrentUpdateHttp2SolrClient.url");
}
}
@@ -553,11 +507,6 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
}
}
- public void setParser(ResponseParser responseParser) {
- client.setParser(responseParser);
- }
-
-
/**
* @param pollQueueTime time for an open connection to wait for updates when
* the queue is empty.
@@ -566,14 +515,11 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
this.pollQueueTime = pollQueueTime;
}
- public void setRequestWriter(RequestWriter requestWriter) {
- client.setRequestWriter(requestWriter);
- }
-
/**
- * Constructs {@link ConcurrentUpdateSolrClient} instances from provided configuration.
+ * Constructs {@link ConcurrentUpdateHttp2SolrClient} instances from provided configuration.
*/
- public static class Builder extends SolrClientBuilder<Http2SolrClient, Builder> {
+ public static class Builder {
+ protected Http2SolrClient client;
protected String baseSolrUrl;
protected int queueSize = 10;
protected int threadCount;
@@ -587,7 +533,7 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
*
* 1) A path pointing directly at a particular core
* <pre>
- * SolrClient client = new ConcurrentUpdateSolrClient.Builder("http://my-solr-server:8983/solr/core1").build();
+ * SolrClient client = new ConcurrentUpdateHttp2SolrClient.Builder("http://my-solr-server:8983/solr/core1").build();
* QueryResponse resp = client.query(new SolrQuery("*:*"));
* </pre>
* Note that when a core is provided in the base URL, queries and other requests can be made without mentioning the
@@ -595,7 +541,7 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
*
* 2) The path of the root Solr path ("/solr")
* <pre>
- * SolrClient client = new ConcurrentUpdateSolrClient.Builder("http://my-solr-server:8983/solr").build();
+ * SolrClient client = new ConcurrentUpdateHttp2SolrClient.Builder("http://my-solr-server:8983/solr").build();
* QueryResponse resp = client.query("core1", new SolrQuery("*:*"));
* </pre>
* In this case the client is more flexible and can be used to send requests to any cores. This flexibility though
@@ -605,12 +551,17 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
this.baseSolrUrl = baseSolrUrl;
}
+ public Builder withHttp2SolrClient(Http2SolrClient solrClient) {
+ this.client = solrClient;
+ return this;
+ }
+
/**
* The maximum number of requests buffered by the SolrClient's internal queue before being processed by background threads.
*
* This value should be carefully paired with the number of queue-consumer threads. A queue with a maximum size
* set too high may require more memory. A queue with a maximum size set too low may suffer decreased throughput
- * as {@link ConcurrentUpdateSolrClient#request(SolrRequest)} calls block waiting to add requests to the queue.
+ * as {@link ConcurrentUpdateHttp2SolrClient#request(SolrRequest)} calls block waiting to add requests to the queue.
*
* If not set, this defaults to 10.
*
@@ -625,13 +576,13 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
}
/**
- * The maximum number of threads used to empty {@link ConcurrentUpdateSolrClient}s queue.
+ * The maximum number of threads used to empty {@link ConcurrentUpdateHttp2SolrClient}s queue.
*
* Threads are created when documents are added to the client's internal queue and exit when no updates remain in
* the queue.
* <p>
* This value should be carefully paired with the maximum queue capacity. A client with too few threads may suffer
- * decreased throughput as the queue fills up and {@link ConcurrentUpdateSolrClient#request(SolrRequest)} calls
+ * decreased throughput as the queue fills up and {@link ConcurrentUpdateHttp2SolrClient#request(SolrRequest)} calls
* block waiting to add requests to the queue.
*/
public Builder withThreadCount(int threadCount) {
@@ -664,7 +615,7 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
/**
* Configures created clients to not stream delete requests.
*
- * With this option set when the created ConcurrentUpdateSolrClient sents a delete request it will first will lock
+ * With this option set when the created ConcurrentUpdateHttp2SolrClient sents a delete request it will first will lock
* the queue and block until all queued updates have been sent, and then send the delete request.
*/
public Builder neverStreamDeletes() {
@@ -673,7 +624,7 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
}
/**
- * Create a {@link ConcurrentUpdateSolrClient} based on the provided configuration options.
+ * Create a {@link ConcurrentUpdateHttp2SolrClient} based on the provided configuration options.
*/
public ConcurrentUpdateHttp2SolrClient build() {
if (baseSolrUrl == null) {
@@ -683,9 +634,5 @@ public class ConcurrentUpdateHttp2SolrClient extends SolrClient {
return new ConcurrentUpdateHttp2SolrClient(this);
}
- @Override
- public Builder getThis() {
- return this;
- }
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClient.java
----------------------------------------------------------------------
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 e55da3e..e19d278 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
@@ -772,7 +772,7 @@ public class ConcurrentUpdateSolrClient extends SolrClient {
/**
* Constructs {@link ConcurrentUpdateSolrClient} instances from provided configuration.
*/
- public static class Builder extends SolrClientBuilder<HttpClient, Builder> {
+ public static class Builder extends SolrClientBuilder<Builder> {
protected String baseSolrUrl;
protected int queueSize = 10;
protected int threadCount;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/solrj/src/java/org/apache/solr/client/solrj/impl/HttpSolrClient.java
----------------------------------------------------------------------
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 8b92131..ad845e8 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
@@ -844,7 +844,7 @@ s * @deprecated since 7.0 Use {@link Builder} methods instead.
/**
* Constructs {@link HttpSolrClient} instances from provided configuration.
*/
- public static class Builder extends SolrClientBuilder<HttpClient, Builder> {
+ public static class Builder extends SolrClientBuilder<Builder> {
protected String baseSolrUrl;
protected boolean compression;
protected ModifiableSolrParams invariantParams = new ModifiableSolrParams();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java
index b5482d6..e18d761 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/LBHttpSolrClient.java
@@ -252,7 +252,7 @@ public class LBHttpSolrClient extends LBSolrClient {
/**
* Constructs {@link LBHttpSolrClient} instances from provided configuration.
*/
- public static class Builder extends SolrClientBuilder<HttpClient, Builder> {
+ public static class Builder extends SolrClientBuilder<Builder> {
protected final List<String> baseSolrUrls;
protected HttpSolrClient.Builder httpSolrClientBuilder;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/22b10a56/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientBuilder.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientBuilder.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientBuilder.java
index b7b0d55..f9d24d9 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientBuilder.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientBuilder.java
@@ -20,20 +20,20 @@ import org.apache.http.client.HttpClient;
import org.apache.solr.client.solrj.ResponseParser;
import org.apache.solr.client.solrj.impl.HttpSolrClient.Builder;
-public abstract class SolrClientBuilder<C, B extends SolrClientBuilder<C, B>> {
+public abstract class SolrClientBuilder<B extends SolrClientBuilder<B>> {
- protected C httpClient;
+ protected HttpClient httpClient;
protected ResponseParser responseParser;
protected Integer connectionTimeoutMillis;
protected Integer socketTimeoutMillis;
/** The solution for the unchecked cast warning. */
public abstract B getThis();
-
+
/**
* Provides a {@link HttpClient} for the builder to use when creating clients.
*/
- public B withHttpClient(C httpClient) {
+ public B withHttpClient(HttpClient httpClient) {
this.httpClient = httpClient;
return getThis();
}