[ https://issues.apache.org/jira/browse/CLI-306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17804444#comment-17804444 ]
Todd Ye commented on CLI-306: ----------------------------- Would that be correct behavior in this case? There is no comma used as the value seperator: {code:java} --one argNumOne,argNumTwo, -2, argNumThree {code} vs {code:java} --one argNumOne,argNumTwo -2 argNumThree {code} > Issue parsing numeric options following an option which accepts multiple args > in DefaultParser > ---------------------------------------------------------------------------------------------- > > Key: CLI-306 > URL: https://issues.apache.org/jira/browse/CLI-306 > Project: Commons CLI > Issue Type: Bug > Components: CLI-1.x > Affects Versions: 1.4 > Reporter: Todd Ye > Priority: Major > > commons-cli seems to be unable to detect numeric options in their short "opt" > form following an option which takes multiple arguments. > Will consistently throw: > {code:java} > Exception in thread "main" org.apache.commons.cli.MissingOptionException: > Missing required option: 2 > {code} > How to reproduce: > {code:java} > Option multipleOptional = Option.builder("1") > .longOpt("one") > .argName("value1,value2,...,valueN") > .hasArgs() > .valueSeparator(',') > .build(); > Option singleMandatory = Option.builder("2") > .argName("value") > .longOpt("two") > .hasArg() > .required() > .build(); > Options options = new Options(); > options.addOption(singleMandatory); > options.addOption(multipleOptional); > CommandLineParser parser = new DefaultParser(); > CommandLine line = parser.parse(options, args); > for (Option o : line.getOptions()) { > System.out.println(o.getOpt() + '\t' > + Arrays.toString(o.getValues())); > } > {code} > now pass in: > {code:java} > --one argNumOne,argNumTwo -2 argNumThree > {code} > Note that an error will not occur if "opt" is set to a char like "a/b/c" or > if the previous option is set with hasArg() instead of hasArgs() > Also error will not occur if the longOpt is used such as: > {code:java} > --one argNumOne,argNumTwo --two argNumThree > {code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)