MissingOptionException.getMissingOptions() returns OptionGroup, not just String
-------------------------------------------------------------------------------

                 Key: CLI-220
                 URL: https://issues.apache.org/jira/browse/CLI-220
             Project: Commons CLI
          Issue Type: Bug
          Components: CLI-1.x
    Affects Versions: 1.2
            Reporter: Joe Casadonte


The following code:

{code:title=Test.java|borderStyle=solid}
import java.util.List;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.GnuParser;
import org.apache.commons.cli.MissingOptionException;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.OptionGroup;
import org.apache.commons.cli.Options;

public class Test {
        public static void main(String[] argv)
        {
                Option opt_foo =
                        OptionBuilder.hasArg(false)
                                .isRequired(true)
                                .withDescription("option foo")
                        .create("foo");

                Option opt_bar =
                        OptionBuilder.hasArg(false)
                                .isRequired(false)
                                .withDescription("option bar")
                        .create("bar");

                Option opt_baz =
                        OptionBuilder.hasArg(false)
                                .isRequired(false)
                                .withDescription("option baz")
                        .create("baz");

                OptionGroup optgrp = new OptionGroup();
                optgrp.setRequired(true);
                optgrp.addOption(opt_bar)
                        .addOption(opt_baz);

                Options optsdef = new Options();
                optsdef.addOption(opt_foo)
                        .addOptionGroup(optgrp);

                try {
                        CommandLineParser parser = new GnuParser();
                        CommandLine cmdline = parser.parse(optsdef, argv);
                }
                catch (MissingOptionException ex) {
                        List opts = ex.getMissingOptions();

                        for (Object option : opts) {
                                System.out.println("OPT: " + 
option.getClass().getName());
                        }
                }
                catch (Exception ex) {
                        ex.printStackTrace();
                        System.exit(1);
                }
        }
}
{code}

produces the following output:

{code}
</tmp/MissingOptionException> $ javac -cp commons-cli-1.2.jar Test.java

</tmp/MissingOptionException> $ java -cp commons-cli-1.2.jar:. Test
OPT: java.lang.String
OPT: org.apache.commons.cli.OptionGroup
{code}

The JavaDoc for MissingOptionException.getMissingOptions() says:

{quote}
Return the list of options (as strings) missing in the command line parsed.
{quote}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to