Repository: kafka Updated Branches: refs/heads/trunk 74bc8860c -> b24f9c089
kafka-1798; ConfigDef.parseType() should throw exception on invalid boolean value; patched by dokovan; reviewed by Jun Rao Project: http://git-wip-us.apache.org/repos/asf/kafka/repo Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/b24f9c08 Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/b24f9c08 Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/b24f9c08 Branch: refs/heads/trunk Commit: b24f9c0890302a5149aaaf26dc933bd0a842f1be Parents: 74bc886 Author: dokovan <[email protected]> Authored: Mon Dec 1 16:24:31 2014 -0800 Committer: Jun Rao <[email protected]> Committed: Mon Dec 1 16:24:31 2014 -0800 ---------------------------------------------------------------------- .../java/org/apache/kafka/common/config/ConfigDef.java | 10 ++++++++-- .../org/apache/kafka/common/config/ConfigDefTest.java | 9 ++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kafka/blob/b24f9c08/clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java ---------------------------------------------------------------------- diff --git a/clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java b/clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java index 347e252..98cb79b 100644 --- a/clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java +++ b/clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java @@ -154,8 +154,14 @@ public class ConfigDef { trimmed = ((String) value).trim(); switch (type) { case BOOLEAN: - if (value instanceof String) - return Boolean.parseBoolean(trimmed); + if (value instanceof String) { + if (trimmed.equalsIgnoreCase("true")) + return true; + else if (trimmed.equalsIgnoreCase("false")) + return false; + else + throw new ConfigException(name, value, "Expected value to be either true or false"); + } else if (value instanceof Boolean) return value; else http://git-wip-us.apache.org/repos/asf/kafka/blob/b24f9c08/clients/src/test/java/org/apache/kafka/common/config/ConfigDefTest.java ---------------------------------------------------------------------- diff --git a/clients/src/test/java/org/apache/kafka/common/config/ConfigDefTest.java b/clients/src/test/java/org/apache/kafka/common/config/ConfigDefTest.java index 7869e46..3c442a2 100644 --- a/clients/src/test/java/org/apache/kafka/common/config/ConfigDefTest.java +++ b/clients/src/test/java/org/apache/kafka/common/config/ConfigDefTest.java @@ -38,7 +38,9 @@ public class ConfigDefTest { .define("d", Type.LIST, Importance.HIGH, "docs") .define("e", Type.DOUBLE, Importance.HIGH, "docs") .define("f", Type.CLASS, Importance.HIGH, "docs") - .define("g", Type.BOOLEAN, Importance.HIGH, "docs"); + .define("g", Type.BOOLEAN, Importance.HIGH, "docs") + .define("h", Type.BOOLEAN, Importance.HIGH, "docs") + .define("i", Type.BOOLEAN, Importance.HIGH, "docs"); Properties props = new Properties(); props.put("a", "1 "); @@ -47,6 +49,8 @@ public class ConfigDefTest { props.put("e", 42.5d); props.put("f", String.class.getName()); props.put("g", "true"); + props.put("h", "FalSE"); + props.put("i", "TRUE"); Map<String, Object> vals = def.parse(props); assertEquals(1, vals.get("a")); @@ -56,6 +60,8 @@ public class ConfigDefTest { assertEquals(42.5d, vals.get("e")); assertEquals(String.class, vals.get("f")); assertEquals(true, vals.get("g")); + assertEquals(false, vals.get("h")); + assertEquals(true, vals.get("i")); } @Test(expected = ConfigException.class) @@ -85,6 +91,7 @@ public class ConfigDefTest { testBadInputs(Type.DOUBLE, "hello", null, new Object()); testBadInputs(Type.STRING, new Object()); testBadInputs(Type.LIST, 53, new Object()); + testBadInputs(Type.BOOLEAN, "hello", "truee", "fals"); } private void testBadInputs(Type type, Object... values) {
