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

dsmiley 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 9a1c5200d46 Improve usages of GenericSolrRequest (request type, http 
method, requiresCollection) (#3423)
9a1c5200d46 is described below

commit 9a1c5200d46dfc2efe2485e654f466d37ebac544
Author: David Smiley <[email protected]>
AuthorDate: Wed Aug 27 13:49:16 2025 -0400

    Improve usages of GenericSolrRequest (request type, http method, 
requiresCollection) (#3423)
---
 .../src/java/org/apache/solr/cli/ExportTool.java   |  6 ++-
 .../designer/SchemaDesignerConfigSetHelper.java    |  9 +++-
 .../processor/DistributedUpdateProcessor.java      |  6 +--
 .../cloud/api/collections/TestCollectionAPI.java   |  8 ++-
 .../solr/handler/TestReplicationHandler.java       | 10 ++--
 .../solr/handler/TestStressThreadBackup.java       |  9 +++-
 .../src/test/org/apache/solr/pkg/TestPackages.java | 31 +++++-------
 .../org/apache/solr/search/TestTaskManagement.java | 17 +++++--
 .../org/apache/solr/util/TestCborDataFormat.java   | 58 +++++++++++++---------
 .../solr/prometheus/scraper/SolrScraper.java       |  7 +--
 .../solrj/impl/CloudHttp2SolrClientRetryTest.java  |  1 -
 .../cloud/AbstractBasicDistributedZkTestBase.java  |  6 ++-
 .../apache/solr/handler/BackupStatusChecker.java   | 13 ++++-
 13 files changed, 108 insertions(+), 73 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/cli/ExportTool.java 
b/solr/core/src/java/org/apache/solr/cli/ExportTool.java
index c742c00999c..0120cba94b6 100644
--- a/solr/core/src/java/org/apache/solr/cli/ExportTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/ExportTool.java
@@ -264,8 +264,10 @@ public class ExportTool extends ToolBase {
               new GenericSolrRequest(
                       SolrRequest.METHOD.GET,
                       "/schema/uniquekey",
-                      SolrParams.of("collection", coll))
-                  .setRequiresCollection(true));
+                      SolrRequest.SolrRequestType.ADMIN,
+                      SolrParams.of())
+                  .setRequiresCollection(true),
+              coll);
       uniqueKey = (String) response.get("uniqueKey");
     }
 
diff --git 
a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java
 
b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java
index 3def33a6e8c..77cbcc7e900 100644
--- 
a/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java
+++ 
b/solr/core/src/java/org/apache/solr/handler/designer/SchemaDesignerConfigSetHelper.java
@@ -130,9 +130,14 @@ class SchemaDesignerConfigSetHelper implements 
SchemaDesignerConstants {
     solrParams.set("analysis.showmatch", true);
     solrParams.set("analysis.fieldname", fieldName);
     solrParams.set("analysis.fieldvalue", "POST");
-    var request = new GenericSolrRequest(SolrRequest.METHOD.POST, 
"/analysis/field", solrParams);
+    var request =
+        new GenericSolrRequest(
+                SolrRequest.METHOD.POST,
+                "/analysis/field",
+                SolrRequest.SolrRequestType.ADMIN,
+                solrParams)
+            .setRequiresCollection(true);
     request.withContent(fieldText.getBytes(StandardCharsets.UTF_8), 
"text/plain");
-    request.setRequiresCollection(true);
     request.setResponseParser(new JsonMapResponseParser());
     try {
       var resp = request.process(cloudClient(), mutableId).getResponse();
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 2edbeb6c345..0dc45a046c9 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
@@ -32,7 +32,6 @@ import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrRequest.METHOD;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.request.GenericSolrRequest;
-import org.apache.solr.client.solrj.response.SimpleSolrResponse;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
 import org.apache.solr.common.SolrInputDocument;
@@ -681,8 +680,9 @@ public class DistributedUpdateProcessor extends 
UpdateRequestProcessor {
     params.set(DISTRIB, false);
     params.set("getInputDocument", id);
     params.set("onlyIfActive", true);
-    SolrRequest<SimpleSolrResponse> ur =
-        new GenericSolrRequest(METHOD.GET, "/get", 
params).setRequiresCollection(true);
+    var ur =
+        new GenericSolrRequest(METHOD.GET, "/get", 
SolrRequest.SolrRequestType.ADMIN, params)
+            .setRequiresCollection(true);
 
     String leaderUrl = getLeaderUrl(id);
 
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 26d6528881f..adba8db8ab3 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
@@ -640,7 +640,6 @@ public class TestCollectionAPI extends 
ReplicaPropertiesBase {
       params.set("collection", "notAnAliasOrCollection");
       request =
           new GenericSolrRequest(METHOD.GET, "/admin/collections", 
SolrRequestType.ADMIN, params);
-      request.setPath("/admin/collections");
 
       // SOLR-12938 - this should still cause an exception
       try {
@@ -1258,11 +1257,10 @@ public class TestCollectionAPI extends 
ReplicaPropertiesBase {
   private void missingParamsError(CloudSolrClient client, ModifiableSolrParams 
origParams)
       throws IOException, SolrServerException {
 
-    GenericSolrRequest request;
     try {
-      request =
+      var request =
           new GenericSolrRequest(
-              METHOD.GET, "/admin/collections", SolrRequestType.ADMIN, 
origParams);
+              METHOD.POST, "/admin/collections", SolrRequestType.ADMIN, 
origParams);
       client.request(request);
       fail("Should have thrown a SolrException due to lack of a required 
parameter.");
     } catch (SolrException se) {
@@ -1352,7 +1350,7 @@ public class TestCollectionAPI extends 
ReplicaPropertiesBase {
       params.set("numShards", "1");
       params.set(CollectionAdminParams.PER_REPLICA_STATE, "False");
       var request =
-          new GenericSolrRequest(METHOD.GET, "/admin/collections", 
SolrRequestType.ADMIN, params);
+          new GenericSolrRequest(METHOD.POST, "/admin/collections", 
SolrRequestType.ADMIN, params);
 
       try {
         client.request(request);
diff --git 
a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java 
b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
index ad8bdcc792f..765a49f058a 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
@@ -1556,10 +1556,11 @@ public class TestReplicationHandler extends 
SolrTestCaseJ4 {
 
     { // initial request w/o any committed docs
       final String backupName = "empty_backup1";
-      final GenericSolrRequest req =
+      final var req =
           new GenericSolrRequest(
-                  SolrRequest.METHOD.GET,
+                  SolrRequest.METHOD.POST,
                   "/replication",
+                  SolrRequest.SolrRequestType.ADMIN,
                   params("command", "backup", "location", 
backupDir.toString(), "name", backupName))
               .setRequiresCollection(true);
       final TimeOut timeout = new TimeOut(30, TimeUnit.SECONDS, 
TimeSource.NANO_TIME);
@@ -1579,10 +1580,11 @@ public class TestReplicationHandler extends 
SolrTestCaseJ4 {
 
     { // second backup w/uncommitted doc
       final String backupName = "empty_backup2";
-      final GenericSolrRequest req =
+      final var req =
           new GenericSolrRequest(
-                  SolrRequest.METHOD.GET,
+                  SolrRequest.METHOD.POST,
                   "/replication",
+                  SolrRequest.SolrRequestType.ADMIN,
                   params("command", "backup", "location", 
backupDir.toString(), "name", backupName))
               .setRequiresCollection(true);
       final TimeOut timeout = new TimeOut(30, TimeUnit.SECONDS, 
TimeSource.NANO_TIME);
diff --git 
a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java 
b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
index 838afd394ad..885152f4794 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestStressThreadBackup.java
@@ -40,6 +40,7 @@ import org.apache.lucene.tests.util.LuceneTestCase.Nightly;
 import org.apache.lucene.tests.util.LuceneTestCase.SuppressCodecs;
 import org.apache.lucene.tests.util.TestUtil;
 import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.request.CollectionAdminRequest;
 import org.apache.solr.client.solrj.request.GenericSolrRequest;
 import org.apache.solr.client.solrj.request.UpdateRequest;
@@ -134,8 +135,12 @@ public class TestStressThreadBackup extends 
SolrCloudTestCase {
           final BackupStatusChecker backupStatus = new 
BackupStatusChecker(coreClient);
 
           /** no solrj API for ReplicationHandler */
-          private GenericSolrRequest makeReplicationReq(SolrParams p) {
-            return new GenericSolrRequest(GenericSolrRequest.METHOD.GET, 
"/replication", p)
+          private SolrRequest<?> makeReplicationReq(SolrParams p) {
+            return new GenericSolrRequest(
+                    GenericSolrRequest.METHOD.POST,
+                    "/replication",
+                    SolrRequest.SolrRequestType.ADMIN,
+                    p)
                 .setRequiresCollection(true);
           }
 
diff --git a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java 
b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
index 092877e6add..69d1df37544 100644
--- a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
+++ b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
@@ -295,6 +295,7 @@ public class TestPackages extends SolrCloudTestCase {
         new GenericSolrRequest(
                 SolrRequest.METHOD.GET,
                 "/stream",
+                SolrRequest.SolrRequestType.ADMIN,
                 new MapSolrParams(
                     Map.of("collection", COLLECTION_NAME, WT, JAVABIN, 
"action", "plugins")))
             .setRequiresCollection(true),
@@ -436,18 +437,14 @@ public class TestPackages extends SolrCloudTestCase {
 
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.add("collection", COLLECTION_NAME);
-    new GenericSolrRequest(SolrRequest.METHOD.POST, "/config/params", params) {
+    new GenericSolrRequest(
+        SolrRequest.METHOD.POST, "/config/params", 
SolrRequest.SolrRequestType.ADMIN, params) {
       @Override
       public RequestWriter.ContentWriter getContentWriter(String expectedType) 
{
         return new RequestWriter.StringPayloadContentWriter(
             "{set:{PKG_VERSIONS:{mypkg : '1.1'}}}", ClientUtils.TEXT_JSON);
       }
-
-      @Override
-      public boolean requiresCollection() {
-        return true;
-      }
-    }.process(cluster.getSolrClient());
+    }.setRequiresCollection(true).process(cluster.getSolrClient());
 
     add.version = "2.1";
     add.files = Arrays.asList(new String[] {FILE3, URP2, EXPR1});
@@ -465,18 +462,14 @@ public class TestPackages extends SolrCloudTestCase {
     verifyComponent(
         cluster.getSolrClient(), COLLECTION_NAME, "requestHandler", 
"/runtime", "mypkg", "1.1");
 
-    new GenericSolrRequest(SolrRequest.METHOD.POST, "/config/params", params) {
+    new GenericSolrRequest(
+        SolrRequest.METHOD.POST, "/config/params", 
SolrRequest.SolrRequestType.ADMIN, params) {
       @Override
       public RequestWriter.ContentWriter getContentWriter(String expectedType) 
{
         return new RequestWriter.StringPayloadContentWriter(
             "{set:{PKG_VERSIONS:{mypkg : '2.1'}}}", ClientUtils.TEXT_JSON);
       }
-
-      @Override
-      public boolean requiresCollection() {
-        return true;
-      }
-    }.process(cluster.getSolrClient());
+    }.setRequiresCollection(true).process(cluster.getSolrClient());
 
     // now, let's force every collection using 'mypkg' to refresh
     // so that it uses version 2.1
@@ -567,13 +560,15 @@ public class TestPackages extends SolrCloudTestCase {
                 "meta",
                 "true"));
 
-    GenericSolrRequest req1 =
-        new GenericSolrRequest(SolrRequest.METHOD.GET, "/config/" + 
componentType, params)
-            .setRequiresCollection(true);
     TestDistribFileStore.assertResponseValues(
         10,
         client,
-        req1,
+        new GenericSolrRequest(
+                SolrRequest.METHOD.GET,
+                "/config/" + componentType,
+                SolrRequest.SolrRequestType.ADMIN,
+                params)
+            .setRequiresCollection(true),
         Map.of(
             ":config:" + componentType + ":" + componentName + 
":_packageinfo_:package", pkg,
             ":config:" + componentType + ":" + componentName + 
":_packageinfo_:version", version));
diff --git a/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java 
b/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
index 49fc8017317..bb899761257 100644
--- a/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
+++ b/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
@@ -38,6 +38,7 @@ import org.apache.solr.client.solrj.request.QueryRequest;
 import org.apache.solr.cloud.SolrCloudTestCase;
 import org.apache.solr.common.SolrInputDocument;
 import org.apache.solr.common.params.ModifiableSolrParams;
+import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.ExecutorUtil;
 import org.apache.solr.common.util.NamedList;
 import org.hamcrest.Matcher;
@@ -106,8 +107,9 @@ public class TestTaskManagement extends SolrCloudTestCase {
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.set("queryUUID", "foobar");
 
-    GenericSolrRequest request =
-        new GenericSolrRequest(SolrRequest.METHOD.GET, "/tasks/cancel", params)
+    var request =
+        new GenericSolrRequest(
+                SolrRequest.METHOD.GET, "/tasks/cancel", 
SolrRequest.SolrRequestType.ADMIN, params)
             .setRequiresCollection(true);
     NamedList<Object> queryResponse = 
cluster.getSolrClient(COLLECTION_NAME).request(request);
 
@@ -185,7 +187,11 @@ public class TestTaskManagement extends SolrCloudTestCase {
         cluster
             .getSolrClient(COLLECTION_NAME)
             .request(
-                new GenericSolrRequest(SolrRequest.METHOD.GET, "/tasks/list")
+                new GenericSolrRequest(
+                        SolrRequest.METHOD.GET,
+                        "/tasks/list",
+                        SolrRequest.SolrRequestType.ADMIN,
+                        SolrParams.of())
                     .setRequiresCollection(true));
     return (NamedList<String>) response.get("taskList");
   }
@@ -195,8 +201,9 @@ public class TestTaskManagement extends SolrCloudTestCase {
     ModifiableSolrParams params = new ModifiableSolrParams();
     params.set("taskUUID", "25");
 
-    GenericSolrRequest request =
-        new GenericSolrRequest(SolrRequest.METHOD.GET, "/tasks/list", params)
+    var request =
+        new GenericSolrRequest(
+                SolrRequest.METHOD.GET, "/tasks/list", 
SolrRequest.SolrRequestType.ADMIN, params)
             .setRequiresCollection(true);
     NamedList<Object> queryResponse = 
cluster.getSolrClient(COLLECTION_NAME).request(request);
 
diff --git a/solr/core/src/test/org/apache/solr/util/TestCborDataFormat.java 
b/solr/core/src/test/org/apache/solr/util/TestCborDataFormat.java
index 074813c731d..2c60ecd71f4 100644
--- a/solr/core/src/test/org/apache/solr/util/TestCborDataFormat.java
+++ b/solr/core/src/test/org/apache/solr/util/TestCborDataFormat.java
@@ -40,17 +40,17 @@ import 
org.apache.solr.client.solrj.impl.InputStreamResponseParser;
 import org.apache.solr.client.solrj.request.CollectionAdminRequest;
 import org.apache.solr.client.solrj.request.GenericSolrRequest;
 import org.apache.solr.client.solrj.request.QueryRequest;
-import org.apache.solr.client.solrj.request.RequestWriter;
 import org.apache.solr.client.solrj.request.UpdateRequest;
 import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.client.solrj.util.ClientUtils;
 import org.apache.solr.cloud.MiniSolrCloudCluster;
 import org.apache.solr.cloud.SolrCloudTestCase;
 import org.apache.solr.common.params.MapSolrParams;
+import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.JavaBinCodec;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.Utils;
 import org.apache.solr.handler.loader.CborLoader;
-import org.apache.solr.response.XMLResponseWriter;
 
 public class TestCborDataFormat extends SolrCloudTestCase {
 
@@ -109,12 +109,12 @@ public class TestCborDataFormat extends SolrCloudTestCase 
{
     }
   }
 
-  private void index(
-      String testCollection, CloudSolrClient client, GenericSolrRequest r, 
boolean del)
+  private void index(String testCollection, CloudSolrClient client, 
SolrRequest<?> r, boolean del)
       throws Exception {
-    RTimer timer = new RTimer();
+    // RTimer timer = new RTimer();
     client.request(r, testCollection);
-    System.out.println("INDEX_TIME: " + r.contentWriter.getContentType() + " : 
" + timer.getTime());
+    // System.out.println("INDEX_TIME: " + r.contentWriter.getContentType() + 
" : " +
+    // timer.getTime());
     if (del) {
       UpdateRequest req = new UpdateRequest().deleteByQuery("*:*");
       req.setParam("commit", "true");
@@ -145,12 +145,15 @@ public class TestCborDataFormat extends SolrCloudTestCase 
{
 
   private void modifySchema(String testCollection, CloudSolrClient client)
       throws SolrServerException, IOException {
-    GenericSolrRequest req =
-        new GenericSolrRequest(SolrRequest.METHOD.POST, "/schema")
+    client.request(
+        new GenericSolrRequest(
+                SolrRequest.METHOD.POST,
+                "/schema",
+                SolrRequest.SolrRequestType.ADMIN,
+                SolrParams.of())
             .setRequiresCollection(true)
-            .setContentWriter(
-                new RequestWriter.StringPayloadContentWriter(
-                    "{\n"
+            .withContent(
+                ("{\n"
                         + "\"add-field-type\" : {"
                         + 
"\"name\":\"knn_vector_10\",\"class\":\"solr.DenseVectorField\",\"vectorDimension\":10,\"similarityFunction\":\"cosine\",\"knnAlgorithm\":\"hnsw\"},\n"
                         + "\"add-field\" : ["
@@ -158,38 +161,45 @@ public class TestCborDataFormat extends SolrCloudTestCase 
{
                         + 
"{\"name\":\"initial_release_date\",\"type\":\"string\",\"stored\":true},\n"
                         + 
"{\"name\":\"directed_by\",\"type\":\"string\",\"multiValued\":true,\"stored\":true},\n"
                         + 
"{\"name\":\"genre\",\"type\":\"string\",\"multiValued\":true,\"stored\":true},\n"
-                        + 
"{\"name\":\"film_vector\",\"type\":\"knn_vector_10\",\"indexed\":true,\"stored\":true}]}",
-                    XMLResponseWriter.CONTENT_TYPE_XML_UTF8));
-
-    client.request(req, testCollection);
+                        + 
"{\"name\":\"film_vector\",\"type\":\"knn_vector_10\",\"indexed\":true,\"stored\":true}]}")
+                    .getBytes(StandardCharsets.UTF_8),
+                ClientUtils.TEXT_JSON),
+        testCollection);
   }
 
-  private GenericSolrRequest createJsonReq(byte[] b) {
+  private SolrRequest<?> createJsonReq(byte[] b) {
     return new GenericSolrRequest(
             SolrRequest.METHOD.POST,
             "/update/json/docs",
+            SolrRequest.SolrRequestType.UPDATE,
             new MapSolrParams(Map.of("commit", "true")))
         .setRequiresCollection(true)
         .withContent(b, "application/json");
   }
 
   @SuppressWarnings("rawtypes")
-  private GenericSolrRequest createJavabinReq(byte[] b) throws IOException {
+  private SolrRequest<?> createJavabinReq(byte[] b) throws IOException {
     List l = (List) Utils.fromJSON(b);
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
     new JavaBinCodec().marshal(l.iterator(), baos);
 
     return new GenericSolrRequest(
-            SolrRequest.METHOD.POST, "/update", new 
MapSolrParams(Map.of("commit", "true")))
-        .withContent(baos.toByteArray(), "application/javabin")
-        .setRequiresCollection(true);
+            SolrRequest.METHOD.POST,
+            "/update",
+            SolrRequest.SolrRequestType.UPDATE,
+            new MapSolrParams(Map.of("commit", "true")))
+        .setRequiresCollection(true)
+        .withContent(baos.toByteArray(), "application/javabin");
   }
 
-  private GenericSolrRequest createCborReq(byte[] b) throws IOException {
+  private SolrRequest<?> createCborReq(byte[] b) throws IOException {
     return new GenericSolrRequest(
-            SolrRequest.METHOD.POST, "/update/cbor", new 
MapSolrParams(Map.of("commit", "true")))
-        .withContent(serializeToCbor(b), "application/cbor")
-        .setRequiresCollection(true);
+            SolrRequest.METHOD.POST,
+            "/update/cbor",
+            SolrRequest.SolrRequestType.UPDATE,
+            new MapSolrParams(Map.of("commit", "true")))
+        .setRequiresCollection(true)
+        .withContent(serializeToCbor(b), "application/cbor");
   }
 
   @SuppressWarnings("unchecked")
diff --git 
a/solr/prometheus-exporter/src/java/org/apache/solr/prometheus/scraper/SolrScraper.java
 
b/solr/prometheus-exporter/src/java/org/apache/solr/prometheus/scraper/SolrScraper.java
index 60e6cf87a18..e66b228c67d 100644
--- 
a/solr/prometheus-exporter/src/java/org/apache/solr/prometheus/scraper/SolrScraper.java
+++ 
b/solr/prometheus-exporter/src/java/org/apache/solr/prometheus/scraper/SolrScraper.java
@@ -37,6 +37,7 @@ import java.util.stream.Collectors;
 import net.thisptr.jackson.jq.JsonQuery;
 import net.thisptr.jackson.jq.exception.JsonQueryException;
 import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrRequest.METHOD;
 import org.apache.solr.client.solrj.SolrRequest.SolrRequestType;
 import org.apache.solr.client.solrj.SolrServerException;
@@ -134,7 +135,7 @@ public abstract class SolrScraper implements Closeable {
       zkHostLabelValue = ((CloudSolrClient) 
client).getClusterStateProvider().getQuorumHosts();
     }
 
-    GenericSolrRequest request = null;
+    SolrRequest<?> request;
     if (ADMIN_PATHS.contains(query.getPath())) {
       request =
           new GenericSolrRequest(
@@ -142,8 +143,8 @@ public abstract class SolrScraper implements Closeable {
     } else {
       request =
           new GenericSolrRequest(
-              METHOD.GET, query.getPath(), SolrRequestType.ADMIN, 
query.getParameters());
-      request.setRequiresCollection(true);
+                  METHOD.GET, query.getPath(), SolrRequestType.UNSPECIFIED, 
query.getParameters())
+              .setRequiresCollection(true);
     }
 
     NamedList<Object> response;
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientRetryTest.java
 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientRetryTest.java
index 61287300d2e..39f10b2c324 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientRetryTest.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudHttp2SolrClientRetryTest.java
@@ -69,7 +69,6 @@ public class CloudHttp2SolrClientRetryTest extends 
SolrCloudTestCase {
 
       var metricsRequest =
           new GenericSolrRequest(METHOD.GET, "/admin/metrics", 
SolrRequestType.ADMIN, params);
-      metricsRequest.setRequiresCollection(false);
 
       NamedList<Object> namedList = solrClient.request(metricsRequest);
       System.out.println(namedList);
diff --git 
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
 
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
index 684a2765ce1..3587d949f22 100644
--- 
a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
+++ 
b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractBasicDistributedZkTestBase.java
@@ -41,7 +41,7 @@ import org.apache.lucene.util.IOUtils;
 import org.apache.solr.JSONTestUtil;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.SolrQuery;
-import org.apache.solr.client.solrj.SolrRequest.METHOD;
+import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.SolrRequest.SolrRequestType;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.impl.HttpSolrClient;
@@ -1288,7 +1288,9 @@ public abstract class AbstractBasicDistributedZkTestBase 
extends AbstractFullDis
       params.set("prefix", "UPDATE.updateHandler");
       params.set("registry", "solr.core." + collection);
       // use generic request to avoid extra processing of queries
-      var req = new GenericSolrRequest(METHOD.GET, "/admin/metrics", 
SolrRequestType.ADMIN, params);
+      var req =
+          new GenericSolrRequest(
+              SolrRequest.METHOD.GET, "/admin/metrics", SolrRequestType.ADMIN, 
params);
       NamedList<Object> resp = client.request(req);
       NamedList<?> metrics = (NamedList<?>) resp.get("metrics");
       NamedList<?> uhandlerCat = (NamedList<?>) metrics.getVal(0);
diff --git 
a/solr/test-framework/src/java/org/apache/solr/handler/BackupStatusChecker.java 
b/solr/test-framework/src/java/org/apache/solr/handler/BackupStatusChecker.java
index 77163549289..d752367ce39 100644
--- 
a/solr/test-framework/src/java/org/apache/solr/handler/BackupStatusChecker.java
+++ 
b/solr/test-framework/src/java/org/apache/solr/handler/BackupStatusChecker.java
@@ -25,6 +25,7 @@ import java.lang.invoke.MethodHandles;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import org.apache.solr.client.solrj.SolrClient;
+import org.apache.solr.client.solrj.SolrRequest;
 import org.apache.solr.client.solrj.request.GenericSolrRequest;
 import org.apache.solr.client.solrj.response.SimpleSolrResponse;
 import org.apache.solr.common.util.NamedList;
@@ -190,7 +191,11 @@ public final class BackupStatusChecker {
   private String _checkBackupSuccess(final String backupName) throws Exception 
{
     final String label = (null == backupName ? "latest backup" : backupName);
     final SimpleSolrResponse rsp =
-        new GenericSolrRequest(GenericSolrRequest.METHOD.GET, path, 
params("command", "details"))
+        new GenericSolrRequest(
+                GenericSolrRequest.METHOD.GET,
+                path,
+                SolrRequest.SolrRequestType.ADMIN,
+                params("command", "details"))
             .setRequiresCollection(true)
             .process(client);
     final NamedList<?> data = rsp.getResponse();
@@ -267,7 +272,11 @@ public final class BackupStatusChecker {
   public boolean checkBackupDeletionSuccess(final String backupName) throws 
Exception {
     assertNotNull("backumpName must not be null", backupName);
     final SimpleSolrResponse rsp =
-        new GenericSolrRequest(GenericSolrRequest.METHOD.GET, path, 
params("command", "details"))
+        new GenericSolrRequest(
+                GenericSolrRequest.METHOD.GET,
+                path,
+                SolrRequest.SolrRequestType.ADMIN,
+                params("command", "details"))
             .setRequiresCollection(true)
             .process(client);
     final NamedList<?> data = rsp.getResponse();

Reply via email to