You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Oliver Heger (JIRA)" <ji...@apache.org> on 2008/07/17 21:39:31 UTC

[jira] Updated: (CLI-150) Negative numbers mistaken for options

     [ 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.