You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Justin Ross (JIRA)" <ji...@apache.org> on 2016/12/09 20:13:58 UTC

[jira] [Updated] (QPID-3672) Occasional NPE from Qpid Management Console when connecting to server

     [ https://issues.apache.org/jira/browse/QPID-3672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Justin Ross updated QPID-3672:
------------------------------
    Component/s: Java Management : JMX Console

> Occasional NPE from Qpid Management Console when connecting to server
> ---------------------------------------------------------------------
>
>                 Key: QPID-3672
>                 URL: https://issues.apache.org/jira/browse/QPID-3672
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Management : JMX Console
>    Affects Versions: 0.15
>            Reporter: Keith Wall
>            Assignee: Keith Wall
>              Labels: jmx_interface
>         Attachments: 0001-QPID-3672-Occasional-NPE-from-Qpid-Management-Consol.patch
>
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org