Skip to content

Commit

Permalink
reset internal state at start of parse(); improve error message for m…
Browse files Browse the repository at this point in the history
…issing required Options

This closes #3
  • Loading branch information
remkop committed Feb 4, 2017
1 parent 9fa54f9 commit 3e3bc83
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/main/java/picocli/CommandLine.java
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,8 @@ Object parse(String... args) {
int arity = positionalParametersField.getAnnotation(Parameters.class).arity();
assertNoMissingParameters(positionalParametersField, arity, args.length);
}
// first reset any state in case this CommandLine instance is being reused
isHelpRequested = false;
Set<Field> required = new HashSet<Field>(requiredFields);
for (int i = 0; i < args.length; i++) {
String arg = trim(args[i]);
Expand Down Expand Up @@ -1127,13 +1129,14 @@ public MissingParameterException(String msg) {

private static MissingParameterException create(Set<Field> missing) {
if (missing.size() == 1) {
return new MissingParameterException(missing.iterator().next().getName());
return new MissingParameterException("Missing required option '"
+ missing.iterator().next().getName() + "'");
}
List<String> names = new ArrayList<String>(missing.size());
for (Field field : missing) {
names.add(field.getName());
}
return new MissingParameterException("Missing options " + names.toString());
return new MissingParameterException("Missing required options " + names.toString());
}
}

Expand Down

0 comments on commit 3e3bc83

Please sign in to comment.