commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 11680] New: - Use of CommandLine.getOptionValue(String opt, String defaultValue) for missing argument results in null pointer exception
Date Wed, 14 Aug 2002 02:46:50 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11680>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11680

Use of CommandLine.getOptionValue(String opt, String defaultValue) for missing argument results
in null pointer exception

           Summary: Use of CommandLine.getOptionValue(String opt, String
                    defaultValue) for missing argument results in null
                    pointer exception
           Product: Commons
           Version: 1.0 Beta 1
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: CLI
        AssignedTo: commons-dev@jakarta.apache.org
        ReportedBy: sdowning@fame.com


The following code results in an unexpected null pointer exception

*** begin DemoCliBug.java ***
import org.apache.commons.cli.*;

public class DemoCliBug
{
    public static void main(String args[])
    {
	Options opts = new Options();
	opts.addOption("f", true, "foobar");
	opts.addOption("m", true, "missing");

	String[] bug_args = new String[2];

	bug_args[0] = "-f";
	bug_args[1] = "foo";

	try {
	    CommandLine cmd = new GnuParser().parse(opts, bug_args);
	    System.out.println("f option: " 
			       + cmd.getOptionValue("f", "default f"));
	    //The following line results in null pointer exception
	    System.out.println("m option: " 
			       + cmd.getOptionValue("m", "default m"));
	}
	catch (ParseException exception){
	}
    }
}
*** end DemoCliBug.java ***
results in this output
*** begin output ***
f option: foo
Exception in thread "main" java.lang.NullPointerException
        at org.apache.commons.cli.CommandLine.getOptionValue(CommandLine.java:146)
        at org.apache.commons.cli.CommandLine.getOptionValue(CommandLine.java:185)
        at DemoCliBug.main(DemoCliBug.java:21)
*** end output ***

per the javadoc for the CommandLine.getOptionValue(String) method, it should
return null if the option is unset or has no argument

I changed the implementation to this to fix the bug...
    public String getOptionValue( String opt ) {
 	Option option = (Option)options.get( opt );
        return option == null ? null : option.getValue();
    }

It looks like the same problem exists for
String[] getOptionValues( String opt )

Sorry, I'm a CVS newbie so I'm not yet able to post the patch myself.

--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message