Repository: storm Updated Branches: refs/heads/master 71d615b7c -> 56bc60374
fix CLI about parsing the command line arguments Project: http://git-wip-us.apache.org/repos/asf/storm/repo Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/3af457f8 Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/3af457f8 Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/3af457f8 Branch: refs/heads/master Commit: 3af457f8cd3dec53af969a70f7f5238b4502dada Parents: 58050a5 Author: xiaojian.fxj <[email protected]> Authored: Tue Feb 23 23:11:44 2016 +0800 Committer: xiaojian.fxj <[email protected]> Committed: Tue Feb 23 23:11:44 2016 +0800 ---------------------------------------------------------------------- storm-core/src/jvm/org/apache/storm/command/CLI.java | 9 ++++++--- storm-core/test/jvm/org/apache/storm/command/TestCLI.java | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/storm/blob/3af457f8/storm-core/src/jvm/org/apache/storm/command/CLI.java ---------------------------------------------------------------------- diff --git a/storm-core/src/jvm/org/apache/storm/command/CLI.java b/storm-core/src/jvm/org/apache/storm/command/CLI.java index d4eaa5d..2bad836 100644 --- a/storm-core/src/jvm/org/apache/storm/command/CLI.java +++ b/storm-core/src/jvm/org/apache/storm/command/CLI.java @@ -238,10 +238,13 @@ public class CLI { DefaultParser parser = new DefaultParser(); CommandLine cl = parser.parse(options, rawArgs); HashMap<String, Object> ret = new HashMap<>(); - for (Opt opt: opts) { + for (Opt opt : opts) { Object current = null; - for (String val: cl.getOptionValues(opt.shortName)) { - current = opt.process(current, val); + String[] strings = cl.getOptionValues(opt.shortName); + if (strings != null) { + for (String val : cl.getOptionValues(opt.shortName)) { + current = opt.process(current, val); + } } if (current == null) { current = opt.defaultValue; http://git-wip-us.apache.org/repos/asf/storm/blob/3af457f8/storm-core/test/jvm/org/apache/storm/command/TestCLI.java ---------------------------------------------------------------------- diff --git a/storm-core/test/jvm/org/apache/storm/command/TestCLI.java b/storm-core/test/jvm/org/apache/storm/command/TestCLI.java index b647458..5b2f220 100644 --- a/storm-core/test/jvm/org/apache/storm/command/TestCLI.java +++ b/storm-core/test/jvm/org/apache/storm/command/TestCLI.java @@ -32,13 +32,15 @@ public class TestCLI { .opt("b", "bb", 1, CLI.AS_INT) .opt("c", "cc", 1, CLI.AS_INT, CLI.FIRST_WINS) .opt("d", "dd", null, CLI.AS_STRING, CLI.INTO_LIST) + .opt("e", "ee", null, CLI.AS_INT) .arg("A") .arg("B", CLI.AS_INT) .parse("-a100", "--aa", "200", "-c2", "-b", "50", "--cc", "100", "A-VALUE", "1", "2", "3", "-b40", "-d1", "-d2", "-d3"); - assertEquals(6, values.size()); + assertEquals(7, values.size()); assertEquals("200", (String)values.get("a")); assertEquals((Integer)40, (Integer)values.get("b")); assertEquals((Integer)2, (Integer)values.get("c")); + assertEquals(null, values.get("e")); List<String> d = (List<String>)values.get("d"); assertEquals(3, d.size());
