diff options
author | Cedric Beust <cedric@beust.com> | 2017-04-04 21:10:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-04 21:10:51 -0700 |
commit | fadaa32e3113690dc0cdd0fe66cffeddaced9daf (patch) | |
tree | 899d6eb08657c4806f53d19f7e7bda459a751ddc | |
parent | 281eb8c37d5ce2688fe57c3e7dcf3eaa09fb68d8 (diff) | |
parent | 5935f49affd2fb2f4fb2a10d2d0241b8ba2f96ad (diff) | |
download | jcommander-fadaa32e3113690dc0cdd0fe66cffeddaced9daf.tar.gz |
Merge pull request #348 from 7acd22f0bcd3ac948246/master
Fix for issue: ParameterException is not thrown when a parameter with variable arity has no value #343
-rw-r--r-- | src/main/java/com/beust/jcommander/JCommander.java | 3 | ||||
-rw-r--r-- | src/test/java/com/beust/jcommander/JCommanderTest.java | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/com/beust/jcommander/JCommander.java b/src/main/java/com/beust/jcommander/JCommander.java index 99846f7..8fd455d 100644 --- a/src/main/java/com/beust/jcommander/JCommander.java +++ b/src/main/java/com/beust/jcommander/JCommander.java @@ -845,6 +845,9 @@ public class JCommander { || boolean.class.isAssignableFrom(fieldType))) { pd.addValue("true"); requiredFields.remove(pd.getParameterized()); + } else if (arity == 0) { + throw new ParameterException("Expected a value after parameter " + arg); + } else if (index < args.length - 1) { int offset = "--".equals(args[index + 1]) ? 1 : 0; diff --git a/src/test/java/com/beust/jcommander/JCommanderTest.java b/src/test/java/com/beust/jcommander/JCommanderTest.java index 8b7dbb7..a93966e 100644 --- a/src/test/java/com/beust/jcommander/JCommanderTest.java +++ b/src/test/java/com/beust/jcommander/JCommanderTest.java @@ -688,7 +688,7 @@ public class JCommanderTest { @DataProvider public Object[][] variable() { return new Object[][]{ - new Object[]{0, V.subList(0, 0), V}, + //new Object[]{0, V.subList(0, 0), V}, new Object[]{1, V.subList(0, 1), V.subList(1, 4)}, new Object[]{2, V.subList(0, 2), V.subList(2, 4)}, new Object[]{3, V.subList(0, 3), V.subList(3, 4)}, @@ -704,6 +704,12 @@ public class JCommanderTest { Assert.assertEquals(main, va.main); } + @Test(expectedExceptions = ParameterException.class) + public void variableArityZeroNonBoolean() { + VariableArity va = new VariableArity(0); + new JCommander(va).parse("-variable", "a", "b", "c", "d"); + } + public void enumArgs() { ArgsEnum args = new ArgsEnum(); String[] argv = {"-choice", "ONE", "-choices", "ONE", "Two"}; |