You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Keith Wall (Commented) (JIRA)" <ji...@apache.org> on 2011/12/09 18:11:40 UTC

[jira] [Commented] (QPID-3672) Occasional NPE with Qpid Management Console when connecting to new server

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

Keith Wall commented on QPID-3672:
----------------------------------

I think we should change NavigationView#addManagedBean to guard against null ObjectNames.
                
> Occasional NPE with Qpid Management Console when connecting to new server
> -------------------------------------------------------------------------
>
>                 Key: QPID-3672
>                 URL: https://issues.apache.org/jira/browse/QPID-3672
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Management : JMX Interface
>    Affects Versions: 0.15
>            Reporter: Keith Wall
>
> We are seeing the follow NPE whilst connecting the Qpid Management Console to the Broker.  The NPE seems to be non-deterministic.
> {code}
> java.lang.NullPointerException
>         at org.apache.qpid.management.ui.views.NavigationView.doesMBeanNodeAlreadyExist(NavigationView.java:584)
>         at org.apache.qpid.management.ui.views.NavigationView.addManagedBean(NavigationView.java:685)
>         at org.apache.qpid.management.ui.views.NavigationView.populateServer(NavigationView.java:510)
>         at org.apache.qpid.management.ui.views.NavigationView.addNewServer(NavigationView.java:314)
>         at org.apache.qpid.management.ui.actions.AddServer.run(AddServer.java:72)
>         at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:251)
>         at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
>         at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:583)
>         at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:500)
>         at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1158)
>         at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3401)
>         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3033)
>         at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2382)
>         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2346)
>         at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2198)
>         at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:493)
>         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
>         at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:488)
>         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
>         at org.apache.qpid.management.ui.Application.run(Application.java:46)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:574)
>         at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:195)
>         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:386)
>         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:549)
>         at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>         at org.eclipse.equinox.launcher.Main.run(Main.java:1236)
>         at org.eclipse.equinox.launcher.Main.main(Main.java:1212)
> {code}
> Investigation has shown that the NPE is caused between an interaction between the ShutdownPlugin and the NavigationView#addManagedBean method of the UI.
> As the Shutdown Plugin has no name (only a type), if it is processed by the addManagedBean algorithm *first* all is well.  However if it is processed *after* another MBean the NPE occurs.  The non deterministic nature of the NPE is caused by the order in which the MBeans are reported.
> Removing the Shutdown plugin from the lib/plugin directory works around the problem.
>  

--
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

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org