[
https://issues.apache.org/jira/browse/QPID-3672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew MacBean reassigned QPID-3672:
------------------------------------
Assignee: Andrew MacBean
> 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 Interface
> Affects Versions: 0.15
> Reporter: Keith Wall
> Assignee: Andrew MacBean
> 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 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:[email protected]