diff options
Diffstat (limited to 'src')
-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"}; |