Hi.

I'm using 1.3.1 for parsing cmdline parameters. I stumbled across an odd things 
when working with optional parameters like in the following
example:

        public static void main(String[] args) throws ParseException {

                Options options = new Options();

                options.addOption(
                                
Option.builder("ls").longOpt("logSsl").desc("Activates SSL logging (very 
noisy!)").build());
                options.addOption(
                                Option.builder("lr").longOpt("logRequest")
                                                .desc("Activates 
request/response logging with a maximum of n bytes per payload (default: 
10000)")
                                                
.argName("byte-count").optionalArg(true).numberOfArgs(1).build());

                CommandLineParser parser = new DefaultParser();
                CommandLine line = parser.parse(options, args);
                System.out.println(line.getOptionValue("lr"));
        }

Executing it with "-lr -ls" returns "-ls". If I invoke it with "-lr 5000 -ls" 
it returns 5000.
So it seems, although I marked it as an optional argument, it just takes the 
next parameter "-ls"
as an argument for "-lr" - which I wouldn't expect. It could simply identify 
whether it is an argument
by simply checking against the list of valid parameters and just return null or 
something.

Is this expected behavior? If so, how can I check if an optional argument has 
been provided or not?

Thanks.
Veit

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to