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

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


The following commit(s) were added to refs/heads/branch_9x by this push:
     new 994ca54e161 SOLR-17830: Fix backup/collection-name conflation in v1 
Restore API (#3479)
994ca54e161 is described below

commit 994ca54e161271a301e99bea17429ac09bb8b456
Author: Abhishek Umarjikar <[email protected]>
AuthorDate: Wed Aug 20 18:29:25 2025 +0530

    SOLR-17830: Fix backup/collection-name conflation in v1 Restore API (#3479)
    
    Co-authored-by: Jason Gerlowski <[email protected]>
---
 solr/CHANGES.txt                                                    | 2 ++
 .../java/org/apache/solr/handler/admin/api/RestoreCollection.java   | 6 +++++-
 .../org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java | 2 ++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 818dbdb2272..c898c9bd33f 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -44,6 +44,8 @@ Bug Fixes
 * SOLR-17834: Fixed a bug preventing Config API set properties (aka: 
configoverlay.json) from being used in config file property
   substitution (hossman)
 
+* SOLR-17830: v1 Restore API no longer conflates backup-name and 
collection-name during validation. (Abhishek Umarjikar via Jason Gerlowski)
+
 Dependency Upgrades
 ---------------------
 (No changes)
diff --git 
a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollection.java 
b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollection.java
index 4ee125917c8..b04de4f6da8 100644
--- 
a/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollection.java
+++ 
b/solr/core/src/java/org/apache/solr/handler/admin/api/RestoreCollection.java
@@ -48,6 +48,7 @@ import 
org.apache.solr.client.solrj.util.SolrIdentifierValidator;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.cloud.ZkNodeProps;
 import org.apache.solr.common.params.CollectionParams;
+import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.common.util.Utils;
 import org.apache.solr.core.CoreContainer;
@@ -198,8 +199,11 @@ public class RestoreCollection extends BackupAPIBase 
implements CollectionBackup
     restoreBody.backupId = solrParams.getInt(BACKUP_ID);
     restoreBody.async = solrParams.get(ASYNC);
 
+    ModifiableSolrParams createCollectionParams = new 
ModifiableSolrParams(solrParams);
+    createCollectionParams.set(NAME, solrParams.get(COLLECTION_PROP));
+
     restoreBody.createCollectionParams =
-        CreateCollection.createRequestBodyFromV1Params(solrParams, false);
+        CreateCollection.createRequestBodyFromV1Params(createCollectionParams, 
false);
 
     return restoreBody;
   }
diff --git 
a/solr/core/src/test/org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java
 
b/solr/core/src/test/org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java
index e4aab80a2df..5336dd86091 100644
--- 
a/solr/core/src/test/org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java
+++ 
b/solr/core/src/test/org/apache/solr/handler/admin/api/RestoreCollectionAPITest.java
@@ -205,8 +205,10 @@ public class RestoreCollectionAPITest extends 
SolrTestCaseJ4 {
     assertEquals("someRepositoryName", requestBody.repository);
     assertEquals(Integer.valueOf(123), requestBody.backupId);
     assertEquals("someAsyncId", requestBody.async);
+    // Ensure the nested "collection-creation" object looks as expected
     assertNotNull(requestBody.createCollectionParams);
     final var createParams = requestBody.createCollectionParams;
+    assertEquals("someCollectionName", createParams.name);
     assertEquals("someConfig", createParams.config);
     assertEquals(Integer.valueOf(123), createParams.nrtReplicas);
     assertNotNull(createParams.properties);

Reply via email to