Description
When an embedded activemq broker is configured within the camel-context.xml the JMX explorer window fails to load the "JMX tree" for that running process. Instead it remains in a "Loading.." state. However it is possible to browse the JMX properties through the "Properties" window under the MBean tab, when the process is selected in the JMX explorer window.
This issue only occurs when Running the camel context with embedded activemq broker.
I see the following exception reported in the "Error Log" window.
rg.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Widget is disposed) at org.eclipse.swt.SWT.error(SWT.java:4282) at org.eclipse.swt.SWT.error(SWT.java:4197) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3938) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3615) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 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:344) 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:622) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577) at org.eclipse.equinox.launcher.Main.run(Main.java:1410) Caused by: org.eclipse.swt.SWTException: Widget is disposed at org.eclipse.swt.SWT.error(SWT.java:4282) at org.eclipse.swt.SWT.error(SWT.java:4197) at org.eclipse.swt.SWT.error(SWT.java:4168) at org.eclipse.swt.widgets.Widget.error(Widget.java:774) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:568) at org.eclipse.swt.widgets.Tree.getSelection(Tree.java:1736) at org.eclipse.jface.viewers.TreeViewer.getSelection(TreeViewer.java:256) at org.eclipse.jface.viewers.TreeViewer.setSelection(TreeViewer.java:344) at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2521) at org.eclipse.ui.navigator.CommonViewer.setSelectionToWidget(CommonViewer.java:446) at org.eclipse.jface.viewers.AbstractTreeViewer.setSelectionToWidget(AbstractTreeViewer.java:2944) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1450) at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403) at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404) at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1533) at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:548) at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:350) at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:510) at com.fusesource.ide.jmx.ui.internal.views.navigator.MBeanExplorerContentProvider$2.run(MBeanExplorerContentProvider.java:234) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135) ... 22 more
To replicate the issue:
Create a new "Fuse project" using the "camel-archetype-activemq".
Select the generated "main/resources/META-INF/spring/camel-context.xml" and "Run as -> Local camel Context (without tests"
Open the "Fuse Integration" perspective and select the "maven" process