You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ep...@apache.org on 2023/03/20 18:18:50 UTC

[solr] branch main updated: Use TimeUnit parameter on builder methods. (#1475)

This is an automated email from the ASF dual-hosted git repository.

epugh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 14e7f5177b5 Use TimeUnit parameter on builder methods. (#1475)
14e7f5177b5 is described below

commit 14e7f5177b5f3a215f0301d226f728cf2809c5bc
Author: Eric Pugh <ep...@opensourceconnections.com>
AuthorDate: Mon Mar 20 14:18:43 2023 -0400

    Use TimeUnit parameter on builder methods. (#1475)
    
    Migrate Solr's internal use of Solr Client Builders to using the more specific Builder methods that specify the TimeUnit to be used.
---
 solr/CHANGES.txt                                   |  2 ++
 .../src/java/org/apache/solr/cloud/Overseer.java   |  5 +--
 .../org/apache/solr/cloud/RecoveryStrategy.java    |  8 +++--
 .../java/org/apache/solr/cloud/SyncStrategy.java   |  5 +--
 .../java/org/apache/solr/cloud/ZkController.java   | 12 +++-----
 .../api/collections/CollectionHandlingUtils.java   |  4 +--
 .../java/org/apache/solr/handler/IndexFetcher.java | 16 +++++-----
 .../solr/handler/admin/CollectionsHandler.java     |  4 +--
 .../src/java/org/apache/solr/util/SolrCLI.java     |  4 +--
 .../org/apache/solr/cloud/HttpPartitionTest.java   |  4 +--
 .../test/org/apache/solr/cloud/OverseerTest.java   |  4 +--
 .../hadoop/TestDelegationWithHadoopAuth.java       |  4 +--
 .../hadoop/TestSolrCloudWithDelegationTokens.java  |  4 +--
 .../examples/UsingSolrJRefGuideExamplesTest.java   |  5 +--
 .../solr/client/solrj/io/SolrClientCache.java      |  9 +++---
 .../solr/client/solrj/io/stream/Facet2DStream.java |  5 +--
 .../solr/client/solrj/io/stream/FacetStream.java   |  5 +--
 .../solr/client/solrj/io/stream/RandomStream.java  |  5 +--
 .../solr/client/solrj/TestLBHttpSolrClient.java    |  4 +--
 .../solrj/impl/CloudSolrClientBuilderTest.java     |  5 +--
 .../ConcurrentUpdateSolrClientBuilderTest.java     |  3 +-
 .../src/java/org/apache/solr/SolrTestCaseJ4.java   | 36 ++++++++++++----------
 .../cloud/FullThrottleStoppableIndexingThread.java |  5 +--
 .../apache/solr/cloud/MiniSolrCloudCluster.java    |  4 +--
 .../org/apache/solr/embedded/JettySolrRunner.java  |  4 +--
 25 files changed, 90 insertions(+), 76 deletions(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index d00b183392f..30a0d34421c 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -69,6 +69,8 @@ Other Changes
 
 * SOLR-16704: Add simple search benchmark to benchmark module (Tomás Fernández Löbbe)
 
+* SOLR-16709: Update Solr's internal use of Solr Client Builders to use TimeUnit parameter for time specific builder methods. (Eric Pugh)
+
 ==================  9.2.0 ==================
 
 New Features
diff --git a/solr/core/src/java/org/apache/solr/cloud/Overseer.java b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
index 1a7295071de..913d4e48660 100644
--- a/solr/core/src/java/org/apache/solr/cloud/Overseer.java
+++ b/solr/core/src/java/org/apache/solr/cloud/Overseer.java
@@ -31,6 +31,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.TimeUnit;
 import java.util.function.BiConsumer;
 import org.apache.lucene.util.Version;
 import org.apache.solr.client.solrj.SolrServerException;
@@ -858,8 +859,8 @@ public class Overseer implements SolrCloseable {
     try (CloudSolrClient client =
         new CloudLegacySolrClient.Builder(
                 Collections.singletonList(getZkController().getZkServerAddress()), Optional.empty())
-            .withSocketTimeout(30000)
-            .withConnectionTimeout(15000)
+            .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
+            .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
             .withHttpClient(updateShardHandler.getDefaultHttpClient())
             .build()) {
       CollectionAdminRequest.ColStatus req =
diff --git a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
index e24b132cf34..57961a1350d 100644
--- a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
+++ b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
@@ -180,8 +180,8 @@ public class RecoveryStrategy implements Runnable, Closeable {
     // (even though getRecoveryOnlyHttpClient() already has them set)
     final UpdateShardHandlerConfig cfg = cc.getConfig().getUpdateShardHandlerConfig();
     return (new HttpSolrClient.Builder(leaderUrl)
-        .withConnectionTimeout(cfg.getDistributedConnectionTimeout())
-        .withSocketTimeout(cfg.getDistributedSocketTimeout())
+        .withConnectionTimeout(cfg.getDistributedConnectionTimeout(), TimeUnit.MILLISECONDS)
+        .withSocketTimeout(cfg.getDistributedSocketTimeout(), TimeUnit.MILLISECONDS)
         .withHttpClient(cc.getUpdateShardHandler().getRecoveryOnlyHttpClient()));
   }
 
@@ -913,7 +913,9 @@ public class RecoveryStrategy implements Runnable, Closeable {
         conflictWaitMs
             + Integer.parseInt(System.getProperty("prepRecoveryReadTimeoutExtraWait", "8000"));
     try (HttpSolrClient client =
-        recoverySolrClientBuilder(leaderBaseUrl).withSocketTimeout(readTimeout).build()) {
+        recoverySolrClientBuilder(leaderBaseUrl)
+            .withSocketTimeout(readTimeout, TimeUnit.MILLISECONDS)
+            .build()) {
       HttpUriRequestResponse mrr = client.httpUriRequest(prepCmd);
       prevSendPreRecoveryHttpUriRequest = mrr.httpUriRequest;
 
diff --git a/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java b/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
index 129d6c6f84c..f1cb20a2497 100644
--- a/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
+++ b/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
@@ -23,6 +23,7 @@ import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.TimeUnit;
 import org.apache.http.client.HttpClient;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrServerException;
@@ -365,8 +366,8 @@ public class SyncStrategy {
               try (SolrClient client =
                   new HttpSolrClient.Builder(baseUrl)
                       .withHttpClient(SyncStrategy.this.client)
-                      .withConnectionTimeout(30000)
-                      .withSocketTimeout(120000)
+                      .withConnectionTimeout(30000, TimeUnit.MILLISECONDS)
+                      .withSocketTimeout(120000, TimeUnit.MILLISECONDS)
                       .build()) {
                 client.request(recoverRequestCmd);
               } catch (Throwable t) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index b66bf4483e4..831eee6bc51 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -866,11 +866,9 @@ public class ZkController implements Closeable {
       }
       cloudSolrClient =
           new CloudLegacySolrClient.Builder(new ZkClientClusterStateProvider(zkStateReader))
-              .withSocketTimeout(30000)
-              .withConnectionTimeout(15000)
               .withHttpClient(cc.getUpdateShardHandler().getDefaultHttpClient())
-              .withConnectionTimeout(15000)
-              .withSocketTimeout(30000)
+              .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
+              .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
               .build();
       cloudManager =
           new SolrClientCloudManager(
@@ -2175,12 +2173,12 @@ public class ZkController implements Closeable {
               leaderProps.getCoreUrl());
         }
 
-        // short timeouts, we may be in a storm and this is best effort and maybe we should be the
+        // short timeouts, we may be in a storm and this is best effort, and maybe we should be the
         // leader now
         try (SolrClient client =
             new Builder(leaderBaseUrl)
-                .withConnectionTimeout(8000)
-                .withSocketTimeout(30000)
+                .withConnectionTimeout(8000, TimeUnit.MILLISECONDS)
+                .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
                 .build()) {
           WaitForState prepCmd = new WaitForState();
           prepCmd.setCoreName(leaderCoreName);
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CollectionHandlingUtils.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CollectionHandlingUtils.java
index 79f9fa9ef98..eb8d3475d4e 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CollectionHandlingUtils.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CollectionHandlingUtils.java
@@ -238,8 +238,8 @@ public class CollectionHandlingUtils {
 
     try (SolrClient client =
         new HttpSolrClient.Builder(url)
-            .withConnectionTimeout(30000)
-            .withSocketTimeout(120000)
+            .withConnectionTimeout(30000, TimeUnit.MILLISECONDS)
+            .withSocketTimeout(120000, TimeUnit.MILLISECONDS)
             .build()) {
       UpdateRequest ureq = new UpdateRequest();
       ureq.setParams(new ModifiableSolrParams());
diff --git a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
index 099bac7ec35..f3ab921b573 100644
--- a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
+++ b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
@@ -373,8 +373,8 @@ public class IndexFetcher {
     try (SolrClient client =
         new Builder(leaderUrl)
             .withHttpClient(myHttpClient)
-            .withConnectionTimeout(connTimeout)
-            .withSocketTimeout(soTimeout)
+            .withConnectionTimeout(connTimeout, TimeUnit.MILLISECONDS)
+            .withSocketTimeout(soTimeout, TimeUnit.MILLISECONDS)
             .build()) {
 
       return client.request(req);
@@ -400,8 +400,8 @@ public class IndexFetcher {
     try (SolrClient client =
         new HttpSolrClient.Builder(leaderUrl)
             .withHttpClient(myHttpClient)
-            .withConnectionTimeout(connTimeout)
-            .withSocketTimeout(soTimeout)
+            .withConnectionTimeout(connTimeout, TimeUnit.MILLISECONDS)
+            .withSocketTimeout(soTimeout, TimeUnit.MILLISECONDS)
             .build()) {
       NamedList<?> response = client.request(req);
 
@@ -1991,8 +1991,8 @@ public class IndexFetcher {
           new Builder(leaderUrl)
               .withHttpClient(myHttpClient)
               .withResponseParser(null)
-              .withConnectionTimeout(connTimeout)
-              .withSocketTimeout(soTimeout)
+              .withConnectionTimeout(connTimeout, TimeUnit.MILLISECONDS)
+              .withSocketTimeout(soTimeout, TimeUnit.MILLISECONDS)
               .build()) {
         QueryRequest req = new QueryRequest(params);
         response = client.request(req);
@@ -2123,8 +2123,8 @@ public class IndexFetcher {
     try (SolrClient client =
         new HttpSolrClient.Builder(leaderUrl)
             .withHttpClient(myHttpClient)
-            .withConnectionTimeout(connTimeout)
-            .withSocketTimeout(soTimeout)
+            .withConnectionTimeout(connTimeout, TimeUnit.MILLISECONDS)
+            .withSocketTimeout(soTimeout, TimeUnit.MILLISECONDS)
             .build()) {
       QueryRequest request = new QueryRequest(params);
       return client.request(request);
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
index ff5f292495d..970ebb0448b 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java
@@ -741,8 +741,8 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
 
           try (SolrClient client =
               new Builder(nodeProps.getBaseUrl())
-                  .withConnectionTimeout(15000)
-                  .withSocketTimeout(60000)
+                  .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
+                  .withSocketTimeout(60000, TimeUnit.MILLISECONDS)
                   .build()) {
             RequestSyncShard reqSyncShard = new RequestSyncShard();
             reqSyncShard.setCollection(collection);
diff --git a/solr/core/src/java/org/apache/solr/util/SolrCLI.java b/solr/core/src/java/org/apache/solr/util/SolrCLI.java
index 546a0f50bca..48b1eb409c8 100755
--- a/solr/core/src/java/org/apache/solr/util/SolrCLI.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrCLI.java
@@ -2493,8 +2493,8 @@ public class SolrCLI implements CLIO {
       String zkHost = getZkHost(cli);
       try (CloudSolrClient cloudSolrClient =
           new CloudLegacySolrClient.Builder(Collections.singletonList(zkHost), Optional.empty())
-              .withSocketTimeout(30000)
-              .withConnectionTimeout(15000)
+              .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
+              .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
               .build()) {
         echoIfVerbose("Connecting to ZooKeeper at " + zkHost, cli);
         cloudSolrClient.connect();
diff --git a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
index 517e63c4c4f..0aba6331179 100644
--- a/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/HttpPartitionTest.java
@@ -105,8 +105,8 @@ public class HttpPartitionTest extends AbstractFullDistribZkTestBase {
         new CloudLegacySolrClient.Builder(
                 Collections.singletonList(zkServer.getZkAddress()), Optional.empty())
             .sendDirectUpdatesToAnyShardReplica()
-            .withConnectionTimeout(5000)
-            .withSocketTimeout(10000)
+            .withConnectionTimeout(5000, TimeUnit.MILLISECONDS)
+            .withSocketTimeout(10000, TimeUnit.MILLISECONDS)
             .build();
     if (defaultCollection != null) client.setDefaultCollection(defaultCollection);
     return client;
diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
index adf4f740fc1..6ad9a77133c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -1945,8 +1945,8 @@ public class OverseerTest extends SolrTestCaseJ4 {
   private SolrCloudManager getCloudDataProvider(String zkAddress, SolrZkClient zkClient) {
     var client =
         new CloudLegacySolrClient.Builder(Collections.singletonList(zkAddress), Optional.empty())
-            .withSocketTimeout(30000)
-            .withConnectionTimeout(15000)
+            .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
+            .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
             .build();
     solrClients.add(client);
     SolrClientCloudManager sccm =
diff --git a/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/TestDelegationWithHadoopAuth.java b/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/TestDelegationWithHadoopAuth.java
index 7acfa926aae..0fd49a52314 100644
--- a/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/TestDelegationWithHadoopAuth.java
+++ b/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/TestDelegationWithHadoopAuth.java
@@ -180,8 +180,8 @@ public class TestDelegationWithHadoopAuth extends SolrCloudTestCase {
               .withLBHttpSolrClientBuilder(
                   new LBHttpSolrClient.Builder()
                       .withResponseParser(client.getParser())
-                      .withSocketTimeout(30000)
-                      .withConnectionTimeout(15000)
+                      .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
+                      .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
                       .withHttpSolrClientBuilder(
                           new HttpSolrClient.Builder().withKerberosDelegationToken(token)))
               .build();
diff --git a/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/TestSolrCloudWithDelegationTokens.java b/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/TestSolrCloudWithDelegationTokens.java
index 34815b0620e..7d3fce1ef23 100644
--- a/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/TestSolrCloudWithDelegationTokens.java
+++ b/solr/modules/hadoop-auth/src/test/org/apache/solr/security/hadoop/TestSolrCloudWithDelegationTokens.java
@@ -205,8 +205,8 @@ public class TestSolrCloudWithDelegationTokens extends SolrTestCaseJ4 {
                   Optional.empty())
               .withLBHttpSolrClientBuilder(
                   new LBHttpSolrClient.Builder()
-                      .withSocketTimeout(30000)
-                      .withConnectionTimeout(15000)
+                      .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
+                      .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
                       .withResponseParser(client.getParser())
                       .withHttpSolrClientBuilder(
                           new HttpSolrClient.Builder().withKerberosDelegationToken(token)))
diff --git a/solr/solr-ref-guide/modules/deployment-guide/examples/UsingSolrJRefGuideExamplesTest.java b/solr/solr-ref-guide/modules/deployment-guide/examples/UsingSolrJRefGuideExamplesTest.java
index 7c09d4596c5..4cdae9ea3ef 100644
--- a/solr/solr-ref-guide/modules/deployment-guide/examples/UsingSolrJRefGuideExamplesTest.java
+++ b/solr/solr-ref-guide/modules/deployment-guide/examples/UsingSolrJRefGuideExamplesTest.java
@@ -26,6 +26,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.Queue;
 import java.util.UUID;
+import java.util.concurrent.TimeUnit;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrQuery.ORDER;
@@ -244,8 +245,8 @@ public class UsingSolrJRefGuideExamplesTest extends SolrCloudTestCase {
     // tag::solrj-solrclient-timeouts[]
     final String solrUrl = "http://localhost:8983/solr";
     return new HttpSolrClient.Builder(solrUrl)
-        .withConnectionTimeout(10000)
-        .withSocketTimeout(60000)
+        .withConnectionTimeout(10000, TimeUnit.MILLISECONDS)
+        .withSocketTimeout(60000, TimeUnit.MILLISECONDS)
         .build();
     // end::solrj-solrclient-timeouts[]
   }
diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/SolrClientCache.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/SolrClientCache.java
index c35edfcdf72..ff2963c89fb 100644
--- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/SolrClientCache.java
+++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/SolrClientCache.java
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 import org.apache.http.client.HttpClient;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.impl.CloudLegacySolrClient;
@@ -85,8 +86,8 @@ public class SolrClientCache implements Serializable {
       hosts.add(zkHost);
       var builder =
           new CloudLegacySolrClient.Builder(hosts, Optional.empty())
-              .withSocketTimeout(socketTimeout)
-              .withConnectionTimeout(conTimeout);
+              .withSocketTimeout(socketTimeout, TimeUnit.MILLISECONDS)
+              .withConnectionTimeout(conTimeout, TimeUnit.MILLISECONDS);
       if (httpClient != null) {
         builder = builder.withHttpClient(httpClient);
       }
@@ -107,8 +108,8 @@ public class SolrClientCache implements Serializable {
     } else {
       HttpSolrClient.Builder builder =
           new HttpSolrClient.Builder(baseUrl)
-              .withSocketTimeout(socketTimeout)
-              .withConnectionTimeout(conTimeout);
+              .withSocketTimeout(socketTimeout, TimeUnit.MILLISECONDS)
+              .withConnectionTimeout(conTimeout, TimeUnit.MILLISECONDS);
       if (httpClient != null) {
         builder = builder.withHttpClient(httpClient);
       }
diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/Facet2DStream.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/Facet2DStream.java
index 23e3f780d7f..185d82d9789 100644
--- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/Facet2DStream.java
+++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/Facet2DStream.java
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map.Entry;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.impl.CloudLegacySolrClient;
@@ -328,8 +329,8 @@ public class Facet2DStream extends TupleStream implements Expressible {
       hosts.add(zkHost);
       cloudSolrClient =
           new CloudLegacySolrClient.Builder(hosts, Optional.empty())
-              .withSocketTimeout(30000)
-              .withConnectionTimeout(15000)
+              .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
+              .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
               .build();
     }
     FieldComparator[] adjustedSorts = adjustSorts(x, y, bucketSort);
diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/FacetStream.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/FacetStream.java
index 49534b3237b..e359afb8367 100644
--- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/FacetStream.java
+++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/FacetStream.java
@@ -25,6 +25,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.impl.CloudLegacySolrClient;
@@ -663,8 +664,8 @@ public class FacetStream extends TupleStream implements Expressible, ParallelMet
       hosts.add(zkHost);
       cloudSolrClient =
           new CloudLegacySolrClient.Builder(hosts, Optional.empty())
-              .withSocketTimeout(30000)
-              .withConnectionTimeout(15000)
+              .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
+              .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
               .build();
     }
 
diff --git a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/RandomStream.java b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/RandomStream.java
index 48538d20d8b..aa0087bf8b0 100644
--- a/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/RandomStream.java
+++ b/solr/solrj-streaming/src/java/org/apache/solr/client/solrj/io/stream/RandomStream.java
@@ -29,6 +29,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.Random;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.impl.CloudLegacySolrClient;
@@ -217,8 +218,8 @@ public class RandomStream extends TupleStream implements Expressible {
       hosts.add(zkHost);
       cloudSolrClient =
           new CloudLegacySolrClient.Builder(hosts, Optional.empty())
-              .withSocketTimeout(30000)
-              .withConnectionTimeout(15000)
+              .withSocketTimeout(30000, TimeUnit.MILLISECONDS)
+              .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
               .build();
     }
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java b/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java
index e99ea1efa06..bfe2f3dbd68 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrClient.java
@@ -212,8 +212,8 @@ public class TestLBHttpSolrClient extends SolrTestCaseJ4 {
         new LBHttpSolrClient.Builder()
             .withHttpClient(httpClient)
             .withBaseSolrUrls(solrUrls)
-            .withConnectionTimeout(500)
-            .withSocketTimeout(500)
+            .withConnectionTimeout(500, TimeUnit.MILLISECONDS)
+            .withSocketTimeout(500, TimeUnit.MILLISECONDS)
             .setAliveCheckInterval(500)
             .build()) {
 
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBuilderTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBuilderTest.java
index e2f6c743fdb..b96d5762c5d 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBuilderTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientBuilderTest.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Optional;
+import java.util.concurrent.TimeUnit;
 import org.apache.solr.SolrTestCase;
 import org.apache.solr.client.solrj.impl.CloudSolrClient.Builder;
 import org.junit.Test;
@@ -94,8 +95,8 @@ public class CloudSolrClientBuilderTest extends SolrTestCase {
   public void test0Timeouts() throws IOException {
     try (CloudSolrClient createdClient =
         new CloudLegacySolrClient.Builder(Collections.singletonList(ANY_ZK_HOST), Optional.empty())
-            .withSocketTimeout(0)
-            .withConnectionTimeout(0)
+            .withSocketTimeout(0, TimeUnit.MILLISECONDS)
+            .withConnectionTimeout(0, TimeUnit.MILLISECONDS)
             .build()) {
       assertNotNull(createdClient);
     }
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientBuilderTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientBuilderTest.java
index 25fdc5ae07a..902aeb61842 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientBuilderTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/ConcurrentUpdateSolrClientBuilderTest.java
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.net.InetAddress;
 import java.net.ServerSocket;
 import java.net.SocketTimeoutException;
+import java.util.concurrent.TimeUnit;
 import org.apache.solr.SolrTestCase;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrClient.Builder;
@@ -58,7 +59,7 @@ public class ConcurrentUpdateSolrClientBuilderTest extends SolrTestCase {
                         + ":"
                         + server.getLocalPort()
                         + "/noOneThere")
-                .withSocketTimeout(1)
+                .withSocketTimeout(1, TimeUnit.MILLISECONDS)
                 .build()) {
       // Expecting an exception
       client.commit();
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
index c52297677a3..5babe702154 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -2710,13 +2710,13 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
       return new RandomizingCloudSolrClientBuilder(
               Collections.singletonList(zkHost), Optional.empty())
           .sendUpdatesOnlyToShardLeaders()
-          .withSocketTimeout(socketTimeoutMillis)
+          .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
           .build();
     }
     return new RandomizingCloudSolrClientBuilder(
             Collections.singletonList(zkHost), Optional.empty())
         .sendUpdatesToAnyReplica()
-        .withSocketTimeout(socketTimeoutMillis)
+        .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
         .build();
   }
 
@@ -2734,15 +2734,15 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
       return new RandomizingCloudSolrClientBuilder(
               Collections.singletonList(zkHost), Optional.empty())
           .sendUpdatesOnlyToShardLeaders()
-          .withConnectionTimeout(connectionTimeoutMillis)
-          .withSocketTimeout(socketTimeoutMillis)
+          .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
+          .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
           .build();
     }
     return new RandomizingCloudSolrClientBuilder(
             Collections.singletonList(zkHost), Optional.empty())
         .sendUpdatesToAnyReplica()
-        .withConnectionTimeout(connectionTimeoutMillis)
-        .withSocketTimeout(socketTimeoutMillis)
+        .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
+        .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
         .build();
   }
 
@@ -2783,16 +2783,16 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
               Collections.singletonList(zkHost), Optional.empty())
           .withHttpClient(httpClient)
           .sendUpdatesOnlyToShardLeaders()
-          .withConnectionTimeout(connectionTimeoutMillis)
-          .withSocketTimeout(socketTimeoutMillis)
+          .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
+          .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
           .build();
     }
     return new RandomizingCloudSolrClientBuilder(
             Collections.singletonList(zkHost), Optional.empty())
         .withHttpClient(httpClient)
         .sendUpdatesToAnyReplica()
-        .withConnectionTimeout(connectionTimeoutMillis)
-        .withSocketTimeout(socketTimeoutMillis)
+        .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
+        .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
         .build();
   }
 
@@ -2819,7 +2819,7 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
     return new ConcurrentUpdateSolrClient.Builder(baseSolrUrl)
         .withQueueSize(queueSize)
         .withThreadCount(threadCount)
-        .withConnectionTimeout(connectionTimeoutMillis)
+        .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
         .build();
   }
 
@@ -2856,8 +2856,8 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
     return new LBHttpSolrClient.Builder()
         .withHttpClient(client)
         .withBaseSolrUrls(solrUrls)
-        .withConnectionTimeout(connectionTimeoutMillis)
-        .withSocketTimeout(socketTimeoutMillis)
+        .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
+        .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
         .build();
   }
 
@@ -2931,7 +2931,7 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
       String url, HttpClient httpClient, int connectionTimeoutMillis) {
     return new Builder(url)
         .withHttpClient(httpClient)
-        .withConnectionTimeout(connectionTimeoutMillis)
+        .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
         .build();
   }
 
@@ -2948,7 +2948,9 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
    * should use the {@link org.apache.solr.client.solrj.impl.HttpSolrClient.Builder} class directly
    */
   public static HttpSolrClient getHttpSolrClient(String url, int connectionTimeoutMillis) {
-    return new Builder(url).withConnectionTimeout(connectionTimeoutMillis).build();
+    return new Builder(url)
+        .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
+        .build();
   }
 
   /**
@@ -2958,8 +2960,8 @@ public abstract class SolrTestCaseJ4 extends SolrTestCase {
   public static HttpSolrClient getHttpSolrClient(
       String url, int connectionTimeoutMillis, int socketTimeoutMillis) {
     return new Builder(url)
-        .withConnectionTimeout(connectionTimeoutMillis)
-        .withSocketTimeout(socketTimeoutMillis)
+        .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
+        .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
         .build();
   }
 
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/FullThrottleStoppableIndexingThread.java b/solr/test-framework/src/java/org/apache/solr/cloud/FullThrottleStoppableIndexingThread.java
index f9d4c3129e5..2cea2f764bb 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/FullThrottleStoppableIndexingThread.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/FullThrottleStoppableIndexingThread.java
@@ -21,6 +21,7 @@ import java.lang.invoke.MethodHandles;
 import java.net.ConnectException;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.http.client.HttpClient;
 import org.apache.lucene.tests.util.LuceneTestCase;
@@ -64,8 +65,8 @@ class FullThrottleStoppableIndexingThread extends StoppableIndexingThread {
             .withHttpClient(httpClient)
             .withQueueSize(8)
             .withThreadCount(2)
-            .withConnectionTimeout(10000)
-            .withSocketTimeout(clientSoTimeout)
+            .withConnectionTimeout(10000, TimeUnit.MILLISECONDS)
+            .withSocketTimeout(clientSoTimeout, TimeUnit.MILLISECONDS)
             .build();
   }
 
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
index f014a372672..652faa02e37 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/MiniSolrCloudCluster.java
@@ -765,8 +765,8 @@ public class MiniSolrCloudCluster {
   protected CloudSolrClient buildSolrClient() {
     return new CloudLegacySolrClient.Builder(
             Collections.singletonList(getZkServer().getZkAddress()), Optional.empty())
-        .withSocketTimeout(90000)
-        .withConnectionTimeout(15000)
+        .withSocketTimeout(90000, TimeUnit.MILLISECONDS)
+        .withConnectionTimeout(15000, TimeUnit.MILLISECONDS)
         .build(); // we choose 90 because we run in some harsh envs
   }
 
diff --git a/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java b/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java
index 61ea40a8f41..e63735e6580 100644
--- a/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java
+++ b/solr/test-framework/src/java/org/apache/solr/embedded/JettySolrRunner.java
@@ -871,8 +871,8 @@ public class JettySolrRunner {
 
   public SolrClient newClient(int connectionTimeoutMillis, int socketTimeoutMillis) {
     return new HttpSolrClient.Builder(getBaseUrl().toString())
-        .withConnectionTimeout(connectionTimeoutMillis)
-        .withSocketTimeout(socketTimeoutMillis)
+        .withConnectionTimeout(connectionTimeoutMillis, TimeUnit.MILLISECONDS)
+        .withSocketTimeout(socketTimeoutMillis, TimeUnit.MILLISECONDS)
         .build();
   }