[
https://issues.apache.org/jira/browse/CLI-150?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oliver Heger updated CLI-150:
-----------------------------
Attachment: BugCLI150Test.java
This is a tough one.
The problem is caused by the processArguments() method of ArgumentImpl. This
method tries to determine all values that belong to the argument. For each
element of the command line it calls commandLine.looksLikeOption() to check
whether a new option starts (and thus the argument list is complete).
looksLikeOption() is probably a bit over-simplified. It just checks whether the
element starts with a prefix that indicates an option (per default "--" and
"-"). Here the "-" of the negative number is interpreted as start of a new
option.
Attached is a unit test demonstrating the problem. It was created based on the
original bug description.
> Negative numbers mistaken for options
> -------------------------------------
>
> Key: CLI-150
> URL: https://issues.apache.org/jira/browse/CLI-150
> Project: Commons CLI
> Issue Type: Bug
> Components: CLI-2.x
> Environment: Sun JDK 1.6, Ubuntu 7.04
> Reporter: Dioktos
> Fix For: 2.0
>
> Attachments: BugCLI150Test.java
>
>
> If an option has a negative numerical argument, the parser mistakes it for
> another option and throws an error. For example, consider:
> {{Argument numArg =
> aBuilder.withValidator(NumberValidator.getNumberInstance()).withMinimum(1).withMaximum(1).create();}}
> {{Option numOpt =
> oBuilder.withLongName("num").withArgument(numArg).create();}}
> {{Group options = gBuilder.withOption(numOpt).create();}}
> Then parsing {{--num -0.1}} results in:
> {{Unexpected -0.1 while processing --num}}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.