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/15 22:25:32 UTC
[jira] Updated: (CLI-6) [cli] Unknown options are ignored instead
of throwing UnrecognizedOptionException
[ https://issues.apache.org/jira/browse/CLI-6?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Oliver Heger updated CLI-6:
---------------------------
Attachment: cli-6.patch
The problem does not exist in CLI2. The ParserTest class contains a test for verifying that an unknown option throws an exception. In the attached patch I added an additional test case for an unknown short option - just to be on the save side.
So this issue does not affect CLI2.
> [cli] Unknown options are ignored instead of throwing UnrecognizedOptionException
> ---------------------------------------------------------------------------------
>
> Key: CLI-6
> URL: https://issues.apache.org/jira/browse/CLI-6
> Project: Commons CLI
> Issue Type: Bug
> Components: CLI-2.x
> Affects Versions: 1.0
> Environment: Operating System: All
> Platform: Other
> Reporter: Peter Kunszt
> Fix For: 2.0
>
> Attachments: cli-6.patch, patch
>
>
> CLI does not handle unknown options, i.e. throw an 'UnrecognizedOptionException'.
> The reason is that the logic of PosixParser.processOptionToken() is incomplete:
> if (this.options.hasOption(token))
> {
> currentOption = this.options.getOption(token);
> tokens.add(token);
> }
> else if (stopAtNonOption)
> {
> eatTheRest = true;
> }
> ie. if the stopAtNonOption is not set and the token is unknown, it
> will be ignored. there has to be a default case added:
> else {
> tokens.add(token);
> }
> in which case the caller will throw the proper exception, because
> in Parse there is another check whether the option exists.
> i would've submitted a patch but did not find where to, sorry.
> peter
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.