Omitted @Command on Gogo plugin is hard to debug because of NPE
---------------------------------------------------------------

                 Key: KARAF-913
                 URL: https://issues.apache.org/jira/browse/KARAF-913
             Project: Karaf
          Issue Type: Bug
          Components: karaf-shell
    Affects Versions: 2.2.2
            Reporter: Chris Dolan
            Priority: Minor


If you forget to put a @Command annotation on your OsgiCommandSupport subclass, 
and you try to execute that command with a syntax error (perhaps you forget an 
argument) then you'll get the following under-informative error in the shell:

    Error executing command: java.lang.NullPointerException

The root cause (discovered by stepping in the debugger) is in 
DefaultActionPreparer.prepare() line 291 where this line of code:

                    Command command = 
action.getClass().getAnnotation(Command.class);

is not followed by a null check. In fact, there are several places in that 
method where the result of getAnnotation() is not checked. I propose one of the 
following two solutions:
 1) add null checks
 2) throw an informative exception in CommandProcessorImpl.addCommand() if the 
@Command is missing

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to