diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-03-09 11:50:42 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-03-09 13:58:20 +0000 |
commit | 7ce318cae722f791eade72bc3106143d251f8bbc (patch) | |
tree | 010734120a3ebbdd41316c419d24a0b58c257e38 | |
parent | a36eb374409dc7b1b0d75936907d5a77d9a6a3eb (diff) |
compatible error message
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java index 3e10f425a8c..e0a3192c302 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java @@ -99,6 +99,19 @@ public class ConvertParsedTypes { } for (String inherit : struct.getInherited()) { var parent = findStructFromSchemas(inherit, doc); + // ensure a nice, compatible exception message + for (var field : toFill.getFields()) { + if (parent.hasField(field)) { + for (var base : parent.getInheritedTypes()) { + if (base.hasField(field)) { + parent = base; + } + } + throw new IllegalArgumentException + ("In document " + doc.name() + ": struct " + struct.name() + + " cannot inherit from " + parent.getName() + " and redeclare field " + field.getName()); + } + } toFill.inherit(parent); } } |