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

gerlowskija 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 577dee15077 SOLR-17830: Fix backup/collection-name conflation in v1 
Restore API (#3479)
577dee15077 is described below

commit 577dee15077640a04c400ebad469e72daed8ba43
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 6e88eedd506..58588ec5eef 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -251,6 +251,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 12da6f005f8..7ee3bb994cc 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
@@ -47,6 +47,7 @@ import 
org.apache.solr.cloud.api.collections.CollectionHandlingUtils;
 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;
@@ -192,8 +193,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 63999f034db..ce9833771f9 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
@@ -202,8 +202,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