This is an automated email from the ASF dual-hosted git repository.
gerlowskija pushed a commit to branch branch_9_9
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9_9 by this push:
new b1cefa27cc9 SOLR-17830: Fix backup/collection-name conflation in v1
Restore API (#3479)
b1cefa27cc9 is described below
commit b1cefa27cc9505f05eb930be7305204d17d96550
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 055af9cefd8..294a91a0d57 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -21,6 +21,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);