[ 
https://issues.apache.org/jira/browse/CLI-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13575881#comment-13575881
 ] 

Alexander Fast commented on CLI-230:
------------------------------------

Thank you for a swift response. I had indeed missed the part about not being 
allowed to alter Options after they've been added.

The code now works. Although my IDE (IntelliJ Idea 12.0.3) gives me the 
following warning:

{quote}
Static member 'org.apache.commons.cli.OptionBuilder.isRequired()' accessed via 
instance reference.
Shows references to static methods and fields via class instance rather than a 
class itself.
{quote}

Closing issue.
                
> Unable to properly require options
> ----------------------------------
>
>                 Key: CLI-230
>                 URL: https://issues.apache.org/jira/browse/CLI-230
>             Project: Commons CLI
>          Issue Type: Bug
>          Components: CLI-1.x, Options definition
>    Affects Versions: 1.2
>         Environment: windows jdk1.6.0_21
>            Reporter: Alexander Fast
>
> Having some problems setting options as required. Have I misunderstood the 
> documentation?
>  * In test1() the option is required but also supplied, I expect to get no 
> exceptions.
>  * In test2() the option is required but *not* supplied, I expect to get an 
> exception.
> {code:java}
> public class Testing {
>     public static void main(String[] args) {
>         System.out.println("Begin test 1");
>         test1();
>         System.out.println("End test 1");
>         System.out.println("Begin test 2");
>         test2();
>         System.out.println("End test 2");
>     }
>     private static void test1() {
>         String[] args = new String[] { "--foo" };
>         Options options = new Options();
>         options.addOption("f", "foo", false, "");
>         options.getRequiredOptions().add(options.getOption("foo"));
>         GnuParser parser = new GnuParser();
>         try {
>             parser.parse(options, args);
>         } catch (ParseException e) {
>             // didn't expect to get MissingOptionException here
>             System.out.println("ERROR: " + e.getMessage());
>         }
>     }
>     private static void test2() {
>         String[] args = new String[] { };
>         Options options = new Options();
>         options.addOption("f", "foo", false, "");
>         options.getOption("f").setRequired(true);
>         GnuParser parser = new GnuParser();
>         try {
>             parser.parse(options, args);
>         } catch (ParseException e) {
>             // expected to get MissingOptionException here
>             System.out.println("ERROR: " + e.getMessage());
>         }
>     }
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to