*cheer Emmanuel*

On Thu, May 29, 2008 at 6:40 AM, Emmanuel Bourg (JIRA) <[EMAIL PROTECTED]> 
wrote:
>
>     [ 
> https://issues.apache.org/jira/browse/CLI-156?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>  ]
>
> Emmanuel Bourg resolved CLI-156.
> --------------------------------
>
>    Resolution: Fixed
>
>> Missing required options not throwing MissingOptionException
>> ------------------------------------------------------------
>>
>>                 Key: CLI-156
>>                 URL: https://issues.apache.org/jira/browse/CLI-156
>>             Project: Commons CLI
>>          Issue Type: Bug
>>          Components: Parser
>>    Affects Versions: 1.1
>>            Reporter: Jeremy Wilde
>>            Priority: Trivial
>>             Fix For: 1.2
>>
>>
>> When an Options object is used to parse a second set of command arguments it 
>> won't throw a MissingOptionException.
>> {code:java}
>> import org.apache.commons.cli.CommandLine;
>> import org.apache.commons.cli.GnuParser;
>> import org.apache.commons.cli.OptionBuilder;
>> import org.apache.commons.cli.Options;
>> import org.apache.commons.cli.ParseException;
>> public class Example
>> {
>>       public static void main(String[] args) throws ParseException
>>       {
>>               brokenExample();
>>               workingExample();
>>       }
>>       // throws exception as expected
>>       private static void workingExample() throws ParseException
>>       {
>>               String[] args = {};
>>               Options opts = new Options();
>>               opts.addOption(OptionBuilder.isRequired().create('v'));
>>               GnuParser parser = new GnuParser();
>>               CommandLine secondCL = parser.parse(opts, args);
>>               System.out.println("Done workingExample");
>>       }
>>       // fails to throw exception on second invocation of parse
>>       private static void brokenExample() throws ParseException
>>       {
>>               String[] firstArgs = { "-v" };
>>               String[] secondArgs = {};
>>               Options opts = new Options();
>>               opts.addOption(OptionBuilder.isRequired().create('v'));
>>               GnuParser parser = new GnuParser();
>>               CommandLine firstCL = parser.parse(opts, firstArgs);
>>               CommandLine secondCL = parser.parse(opts, secondArgs);
>>               System.out.println("Done brokenExample");
>>       }
>> }
>> {code}
>> This is a result of the Options object returning the reference to its own 
>> list and the parsers modifying that list. The first call is removing the 
>> required options as they are found and subsequent calls get back an empty 
>> list.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to