aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-06-10 10:07:32 +0200
committerHarald Musum <musum@yahooinc.com>2023-06-10 10:07:32 +0200
commit7f13594d6595b81a291018f902c438d3aaea057b (patch)
tree9b7d5fc7c0dc27469795cebcbe45a16592450573 /config-model/src/main
parent3d16727641d36fcdad5d5850735c61bd82faa10a (diff)
Make error message deterministic by sorting rule names
Diffstat (limited to 'config-model/src/main')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java
index b184861c102..4a295d49a32 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/SemanticRuleBuilder.java
@@ -12,7 +12,9 @@ import com.yahoo.prelude.semantics.parser.ParseException;
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -60,9 +62,11 @@ public class SemanticRuleBuilder {
private void ensureZeroOrOneDefaultRule(SemanticRulesConfig config) {
String defaultName = null;
for (SemanticRulesConfig.Rulebase ruleBase : config.rulebase()) {
- if (defaultName != null && ruleBase.isdefault())
- throw new IllegalArgumentException("Both '" + defaultName + "' and '" + ruleBase.name() +
- "' is marked as default rule, there can only be one");
+ if (defaultName != null && ruleBase.isdefault()) {
+ List<String> defaultRules = new ArrayList<>(List.of(defaultName, ruleBase.name()));
+ defaultRules.sort(String::compareTo);
+ throw new IllegalArgumentException("Rules " + defaultRules + " are both marked as the default rule, there can only be one");
+ }
if (ruleBase.isdefault())
defaultName = ruleBase.name();
}