You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Jean-Baptiste Onofré (Commented JIRA)" <ji...@apache.org> on 2012/03/12 14:58:49 UTC

[jira] [Commented] (KARAF-913) Omitted @Command on Gogo plugin is hard to debug because of NPE

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

Jean-Baptiste Onofré commented on KARAF-913:
--------------------------------------------

In fact, a simple workaround could be done in the DefaultActionPreparator in Karaf (not related to Gogo). 

I do it.
                
> 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
>            Assignee: Jean-Baptiste Onofré
>            Priority: Minor
>             Fix For: 2.2.6, 3.0.0
>
>
> 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