diff --git a/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java b/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java index 07b149cbcb..2ca978f078 100644 --- a/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java +++ b/src/java/org/apache/cassandra/config/YamlConfigurationLoader.java @@ -143,7 +143,9 @@ public class YamlConfigurationLoader implements ConfigurationLoader return node; } }); - return (T) constructor.getSingleData(klass); + T value = (T) constructor.getSingleData(klass); + propertiesChecker.check(); + return value; } static class CustomConstructor extends CustomClassLoaderConstructor diff --git a/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java b/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java index 861e2eac20..b71f22cebd 100644 --- a/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java +++ b/test/distributed/org/apache/cassandra/distributed/impl/InstanceConfig.java @@ -57,6 +57,7 @@ public class InstanceConfig implements IInstanceConfig public final UUID hostId; public UUID hostId() { return hostId; } private final Map params = new TreeMap<>(); + private final Map dtestParams = new TreeMap<>(); private final EnumSet featureFlags; @@ -119,6 +120,7 @@ public class InstanceConfig implements IInstanceConfig this.num = copy.num; this.networkTopology = new NetworkTopology(copy.networkTopology); this.params.putAll(copy.params); + this.dtestParams.putAll(copy.dtestParams); this.hostId = copy.hostId; this.featureFlags = copy.featureFlags; this.broadcastAddressAndPort = copy.broadcastAddressAndPort; @@ -185,7 +187,7 @@ public class InstanceConfig implements IInstanceConfig if (value == null) value = NULL; - params.put(fieldName, value); + getParams(fieldName).put(fieldName, value); return this; } @@ -195,10 +197,18 @@ public class InstanceConfig implements IInstanceConfig value = NULL; // test value - params.put(fieldName, value); + getParams(fieldName).put(fieldName, value); return this; } + private Map getParams(String fieldName) + { + Map map = params; + if (fieldName.startsWith("dtest")) + map = dtestParams; + return map; + } + public void propagate(Object writeToConfig, Map, Function> mapping) { throw new IllegalStateException("In-JVM dtests no longer support propagate"); @@ -212,17 +222,17 @@ public class InstanceConfig implements IInstanceConfig public Object get(String name) { - return params.get(name); + return getParams(name).get(name); } public int getInt(String name) { - return (Integer)params.get(name); + return (Integer) get(name); } public String getString(String name) { - return (String)params.get(name); + return (String) get(name); } public Map getParams()