You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by gu...@apache.org on 2019/02/19 14:53:41 UTC
[lucene-solr] 04/09: SOLR-13150: throw exception if not all
required params were supplied
This is an automated email from the ASF dual-hosted git repository.
gus pushed a commit to branch solr-13131
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 3541516a7640b307926df1949a54310b97cea403
Author: internet <in...@localhost.localdomain>
AuthorDate: Mon Feb 18 13:59:49 2019 +0200
SOLR-13150: throw exception if not all required params were supplied
---
.../apache/solr/cloud/api/collections/CategoryRoutedAlias.java | 9 ++++++---
.../java/org/apache/solr/handler/admin/CollectionsHandler.java | 6 ++++++
.../update/processor/CategoryRoutedAliasUpdateProcessorTest.java | 2 +-
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java
index 0cd0176..88b68ea 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java
@@ -48,6 +48,9 @@ public class CategoryRoutedAlias implements RoutedAlias {
// receive data.
public static final String UNINITIALIZED = "NEW_CATEGORY_ROUTED_ALIAS_WAITING_FOR_DATA__TEMP";
+ @SuppressWarnings("WeakerAccess")
+ public static final String ROUTER_MAX_CARDINALITY = "router.maxCardinality";
+
/**
* Parameters required for creating a category routed alias
*/
@@ -55,11 +58,11 @@ public class CategoryRoutedAlias implements RoutedAlias {
public static final Set<String> REQUIRED_ROUTER_PARAMS = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(
CommonParams.NAME,
ROUTER_TYPE_NAME,
- ROUTER_FIELD)));
+ ROUTER_FIELD,
+ ROUTER_MAX_CARDINALITY
+ )));
@SuppressWarnings("WeakerAccess")
- public static final String ROUTER_MAX_CARDINALITY = "router.maxCardinality";
- @SuppressWarnings("WeakerAccess")
public static final String ROUTER_MUST_MATCH = "router.mustMatch";
/**
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 3f39808..293f731 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
@@ -37,6 +37,7 @@ import java.util.stream.Collectors;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Sets;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.solr.api.Api;
@@ -82,6 +83,7 @@ import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.common.util.StrUtils;
import org.apache.solr.common.util.Utils;
import org.apache.solr.core.CloudConfig;
import org.apache.solr.core.CoreContainer;
@@ -582,6 +584,10 @@ public class CollectionsHandler extends RequestHandlerBase implements Permission
// Now filter out just the parameters we care about from the request
Map<String, Object> result = copy(req.getParams(), null, routedAlias.getRequiredParams());
+ if (!result.keySet().containsAll(routedAlias.getRequiredParams())) {
+ throw new SolrException(BAD_REQUEST, "Not all required params were supplied. Missing params: " +
+ StrUtils.join(Sets.difference(routedAlias.getRequiredParams(), result.keySet()), ','));
+ }
copy(req.getParams(), result, routedAlias.getOptionalParams());
ModifiableSolrParams createCollParams = new ModifiableSolrParams(); // without prefix
diff --git a/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
index d269f8f..ee7fbb5 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/CategoryRoutedAliasUpdateProcessorTest.java
@@ -191,7 +191,7 @@ public class CategoryRoutedAliasUpdateProcessorTest extends RoutedAliasUpdatePro
CollectionAdminRequest.createCategoryRoutedAlias(getAlias(), categoryField,
CollectionAdminRequest.createCollection("_unused_", configName, 1, 1)
- .setMaxShardsPerNode(2))
+ .setMaxShardsPerNode(2)).setMaxCardinality(Integer.MAX_VALUE)
.process(solrClient);
// now we index a document