Adam Cardenas created CLI-288:
---------------------------------

             Summary: Inconsistent parsing of unlimited option values
                 Key: CLI-288
                 URL: https://issues.apache.org/jira/browse/CLI-288
             Project: Commons CLI
          Issue Type: Bug
          Components: Parser
    Affects Versions: 1.4
            Reporter: Adam Cardenas


with the following configuration...
{code:java}
DefaultParser parser = new DefaultParser();
 Options opts = new Options();

Option pager = Option.builder(null)
 .longOpt("cmd")
 .hasArg()
 .numberOfArgs(Option.UNLIMITED_VALUES)
 .build();

opts.addOption(pager);
{code}
 
This works as long as the value of *cmd* is a single value.
{code}
$ myApp --cmd='less'
{code}

The following does not work, as soon as we add options to less
{code}
$ myApp --cmd='less -XFR'
Exception in thread "main" com.cevaris.ag4j.cli.AppArgsException: 
org.apache.commons.cli.UnrecognizedOptionException: Unrecognized option: -XFR
        at com.cevaris.ag4j.cli.ApacheAppArgs.parse(ApacheAppArgs.java:33)
        at com.cevaris.ag4j.Main.main(Main.java:61)
Caused by: org.apache.commons.cli.UnrecognizedOptionException: Unrecognized 
option: -XFR
        at 
org.apache.commons.cli.DefaultParser.handleUnknownToken(DefaultParser.java:360)
        at 
org.apache.commons.cli.DefaultParser.handleConcatenatedOptions(DefaultParser.java:702)
        at 
org.apache.commons.cli.DefaultParser.handleShortAndLongOption(DefaultParser.java:533)
        at 
org.apache.commons.cli.DefaultParser.handleToken(DefaultParser.java:243)
        at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:120)
        at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:76)
        at org.apache.commons.cli.DefaultParser.parse(DefaultParser.java:60)
        at com.cevaris.ag4j.cli.ApacheAppArgs.parse(ApacheAppArgs.java:31)'
{code}

The following works, as long as we use a space to separate option & value, 
rather than using an *=*
{code}
$ myApp --cmd 'less -XFR'  # works
$ myApp --cmd='less -XFR'  # fails
{code}

Attempted to use *.valueSeparator()* with no luck.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to