Uploaded image for project: 'Fuse Tooling'
  1. Fuse Tooling
  2. FUSETOOLS-353

Camel routes using XSTREAM can not be used

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 2.1.0
    • 2.0
    • None
    • None

    Description

      Hi,

      In the attached test case, we have a simple route:

             public void configure() throws Exception {
                 from("activemq:a")
                 // Removing xstream will allow the camel ide to work, I have tested with
                 //  .marshall().serialization() and it works fine, problem seems to be with xstream
                 .marshal().xstream()
                 .to("activemq:b");
             }
      

      When using XSTREAM, we can not explore this route in FuseIDE in any manner. Simply clicking on Camel Context causes errors as does start tracing and edit routes. The underlying problem seems to be a missing class. (see stack trace below). I also attached a screen shot with some of the other errors received when trying to start trace / edit route. This same route works just fine when using "serialization".

      As part of this jira, if there is any way to improve the error handling? Users simply receive "Editor could not be initialized with a one line detail, java null pointer exception. Not particularly user friendly especially hard if one doesn't know about the Error Log.

      Steps run test:
      ============

      mvn clean install
      mvn exec:java
      Using JMX explore connect to the mvn exec:java process.
      Click on things.

      Error from simply clicking on Camel Context"

      java.lang.reflect.UndeclaredThrowableException
      at $Proxy27.dumpRoutesAsXml(Unknown Source)
      at com.fusesource.ide.fabric.camel.navigator.CamelContextNode.getXmlString(CamelContextNode.java:125)
      at com.fusesource.ide.fabric.camel.navigator.CamelContextNode.getXmlText(CamelContextNode.java:134)
      at com.fusesource.ide.fabric.camel.navigator.CamelContextNode.getModelContainer(CamelContextNode.java:129)
      at com.fusesource.ide.fabric.camel.navigator.RoutesNode.loadChildren(RoutesNode.java:50)
      at com.fusesource.rider.commons.ui.tree.RefreshableNode.checkLoaded(RefreshableNode.java:43)
      at com.fusesource.rider.commons.ui.tree.RefreshableNode.getChildren(RefreshableNode.java:37)
      at com.fusesource.ide.jmx.ui.internal.views.navigator.MBeanExplorerContentProvider.hasChildren(MBeanExplorerContentProvider.java:193)
      at org.eclipse.ui.internal.navigator.extensions.SafeDelegateTreeContentProvider.hasChildren(SafeDelegateTreeContentProvider.java:110)
      at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.callNormalHasChildren(NavigatorContentServiceContentProvider.java:428)
      at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.access$4(NavigatorContentServiceContentProvider.java:423)
      at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider$3.run(NavigatorContentServiceContentProvider.java:393)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
      at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.hasChildren(NavigatorContentServiceContentProvider.java:379)
      at org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider.hasChildren(NavigatorContentServiceContentProvider.java:420)
      at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2082)
      at org.eclipse.jface.viewers.TreeViewer.isExpandable(TreeViewer.java:588)
      at org.eclipse.jface.viewers.AbstractTreeViewer.isExpandable(AbstractTreeViewer.java:2112)
      at org.eclipse.jface.viewers.AbstractTreeViewer.updatePlus(AbstractTreeViewer.java:2794)
      at org.eclipse.jface.viewers.TreeViewer.updatePlus(TreeViewer.java:852)
      at org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:830)
      at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:804)
      at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
      at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:778)
      at org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
      at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:749)
      at org.eclipse.jface.viewers.AbstractTreeViewer.handleTreeExpand(AbstractTreeViewer.java:1444)
      at org.eclipse.jface.viewers.TreeViewer.handleTreeExpand(TreeViewer.java:952)
      at org.eclipse.jface.viewers.AbstractTreeViewer$4.treeExpanded(AbstractTreeViewer.java:1455)
      at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:132)
      at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
      at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
      at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
      at org.eclipse.swt.widgets.TreeItem.sendExpand(TreeItem.java:1024)
      at org.eclipse.swt.widgets.Tree.expandItem_expandChildren(Tree.java:1186)
      at org.eclipse.swt.widgets.Display.windowProc(Display.java:5194)
      at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
      at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220)
      at org.eclipse.swt.widgets.Widget.mouseDownSuper(Widget.java:1025)
      at org.eclipse.swt.widgets.Tree.mouseDownSuper(Tree.java:1975)
      at org.eclipse.swt.widgets.Widget.mouseDown(Widget.java:1021)
      at org.eclipse.swt.widgets.Control.mouseDown(Control.java:2263)
      at org.eclipse.swt.widgets.Tree.mouseDown(Tree.java:1942)
      at org.eclipse.swt.widgets.Display.windowProc(Display.java:4983)
      at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
      at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220)
      at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:1959)
      at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2025)
      at org.eclipse.swt.widgets.Display.windowProc(Display.java:5047)
      at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
      at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4589)
      at org.eclipse.swt.widgets.Display.applicationProc(Display.java:4666)
      at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
      at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:115)
      at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3281)
      at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
      at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
      at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
      at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
      at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
      at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
      at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
      at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
      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:369)
      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:620)
      at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
      at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
      Caused by: java.rmi.UnmarshalException: Error unmarshaling return; nested exception is:
      java.lang.ClassNotFoundException: com.sun.istack.SAXException2 (no security manager: RMI class loader disabled)
      at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:227)
      at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
      at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
      at javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown Source)
      at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:995)
      at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:288)
      ... 77 more
      Caused by: java.lang.ClassNotFoundException: com.sun.istack.SAXException2 (no security manager: RMI class loader disabled)
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:375)
      at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
      at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
      at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
      at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
      at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
      at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
      at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
      at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:225)
      ... 82 more

      Attachments

        Issue Links

          Activity

            People

              cibsen@redhat.com Claus Ibsen
              rhn-support-sjavurek Susan Javurek
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: