summaryrefslogtreecommitdiffstats
path: root/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2020-11-02 11:00:06 +0100
committerHåkon Hallingstad <hakon@verizonmedia.com>2020-11-02 11:00:06 +0100
commita20ea689f5dc24025485050eee34994e5698b7cb (patch)
treef9a1178b5bb7a0f3898a0067218008126e580b91 /config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java
parentbd7181b95f36434052b73a95fc8202995551f8cf (diff)
Add required="true" for override without node children
Diffstat (limited to 'config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java
index 6a946e1ce75..6f4d782a5b4 100644
--- a/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java
+++ b/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java
@@ -4,7 +4,6 @@ package com.yahoo.config.application;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.RegionName;
-import java.util.logging.Level;
import com.yahoo.text.XML;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -19,6 +18,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
@@ -218,9 +218,17 @@ class OverrideProcessor implements PreProcessor {
private void doElementSpecificProcessingOnOverride(List<Element> elements) {
// if node capacity is specified explicitly for some combination we should require that capacity
elements.forEach(element -> {
- if (element.getTagName().equals("nodes"))
- if (element.getChildNodes().getLength() == 0) // specifies capacity, not a list of nodes
+ if (element.getTagName().equals("nodes")) {
+ boolean hasNodeChild = false;
+ for (var child : XML.getChildren(element)) {
+ if (child.getTagName().equals("node")) {
+ hasNodeChild = true;
+ break;
+ }
+ }
+ if (!hasNodeChild) // specifies capacity, not a list of nodes
element.setAttribute("required", "true");
+ }
});
}