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

Sruteesh Kumar Paramata edited comment on CLI-317 at 8/2/23 1:51 PM:
---------------------------------------------------------------------

[~ggregory] 

The below one is throwing NullPointerException

public void testAmbiguousLongWithoutEqualSingleDash() throws Exception

{         final String[] args =  \{"-b", "-foobar"};

        final Options options = new Options();
        
options.addOption(Option.builder().option("f").longOpt("foo").optionalArg(true).build());
        
options.addOption(Option.builder().option("b").longOpt("bar").optionalArg(false).build());

        final CommandLine cl = parser.parse(options, args);

        assertTrue(cl.hasOption("b"));
        assertTrue(cl.hasOption("f"));
        assertEquals("bar", cl.getOptionValue("foo"));
}

 

 

 


was (Author: JIRAUSER301594):
[~ggregory] 

The below one is throwing NullPointerException

public void testAmbiguousLongWithoutEqualSingleDash() throws Exception {
        final String[] args = \{"-b", "-foobar"};

        final Options options = new Options();
        
options.addOption(Option.builder().option("f").longOpt("foo").optionalArg(true).build());
        
options.addOption(Option.builder().option("b").longOpt("bar").optionalArg(false).build());


        final CommandLine cl = parser.parse(options, args);

        assertTrue(cl.hasOption("b"));
        assertTrue(cl.hasOption("f"));
        assertEquals("bar", cl.getOptionValue("foo"));
}

 

 

 

> NullPointerException thrown by CommandLineParser.parse()
> --------------------------------------------------------
>
>                 Key: CLI-317
>                 URL: https://issues.apache.org/jira/browse/CLI-317
>             Project: Commons CLI
>          Issue Type: Bug
>          Components: Parser
>    Affects Versions: 1.5.0
>            Reporter: Philippe Bastiani
>            Priority: Critical
>              Labels: exception
>
> # First at all, your *testAmbiguousLongWithoutEqualSingleDash* does not lead 
> to a AmbiguousOptionException
>  # For this same test, if I replace the deprecated OptionBuilder with 
> Option.Builder as follows
> {code:java}
> options.addOption(Option.builder().option("f").longOpt("foo").optionalArg(true).build());
> options.addOption(Option.builder().option("b").longOpt("bar").optionalArg(false).build());
> {code}
> the test leads to a NPE
> {code:java}
> java.lang.NullPointerException
>       at xx.DefaultParser.handleShortAndLongOption(DefaultParser.java:476)
>       at xx.DefaultParser.handleToken(DefaultParser.java:535)
>       at xx.DefaultParser.parse(DefaultParser.java:714)
>       at xx.DefaultParser.parse(DefaultParser.java:677)
>       at xx.DefaultParser.parse(DefaultParser.java:654)
> {code}
> _Note_  : tested with Github code (January 22, 2023)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to