[ https://issues.apache.org/jira/browse/QPID-3672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Keith Wall resolved QPID-3672. ------------------------------ Resolution: Fixed Patch applied. > 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: Keith Wall > 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:dev-subscr...@qpid.apache.org