Bug 1017006

Summary: Editor for camel routes throws exceptions to eclipse .log if any component selected
Product: [JBoss] JBoss Fuse Service Works 6 Reporter: Jiri Sedlacek <jsedlace>
Component: ToolingAssignee: Brian Fitzpatrick <bfitzpat>
Status: CLOSED CURRENTRELEASE QA Contact: Len DiMaggio <ldimaggi>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 6.0.0 GACC: apodhrad, dlesage, oskutka, rcernich, soa-p-jira
Target Milestone: ER6   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
If you import a camel route into JBoss Developer Studio and click on any component in the graphical route editor, exceptions are thrown. These are recorded in the eclipse.log file. This is due to an MultiPageEditor class listener being overridden.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-06 15:27:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jiri Sedlacek 2013-10-09 06:54:24 UTC
I imported camel-service quickstart from switchyard, found route.xml file in JBDS and opened it. Graphical editor shows the route in proper manner, but clicking on any component in the graph throws following exception to the eclipse .log file: 


!ENTRY org.eclipse.e4.ui.workbench 4 2 2013-10-09 08:50:22.388
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.e4.ui.workbench".
!STACK 0
java.lang.UnsupportedOperationException: Please use DataMapping.getBusinessObject(PictogramLink link)
	at org.eclipse.graphiti.internal.ExternalPictogramLink.getBusinessObjects(ExternalPictogramLink.java:51)
	at org.eclipse.graphiti.features.impl.UpdateNoBoFeature.updateNeeded(UpdateNoBoFeature.java:57)
	at org.eclipse.graphiti.ui.internal.action.UpdateAction.calculateEnabled(UpdateAction.java:79)
	at org.eclipse.gef.ui.actions.WorkbenchPartAction.refresh(WorkbenchPartAction.java:131)
	at org.eclipse.gef.ui.actions.SelectionAction.handleSelectionChanged(SelectionAction.java:89)
	at org.eclipse.gef.ui.actions.SelectionAction.setSelection(SelectionAction.java:101)
	at org.eclipse.gef.ui.actions.SelectionAction.update(SelectionAction.java:124)
	at org.eclipse.gef.ui.parts.GraphicalEditor.updateActions(GraphicalEditor.java:458)
	at org.switchyard.tools.ui.editor.impl.MultiPageEditor$DesignEditor.selectionChanged(MultiPageEditor.java:231)
	at org.eclipse.ui.internal.e4.compatibility.SelectionService.notifyListeners(SelectionService.java:154)
	at org.eclipse.ui.internal.e4.compatibility.SelectionService.access$3(SelectionService.java:151)
	at org.eclipse.ui.internal.e4.compatibility.SelectionService$1.selectionChanged(SelectionService.java:74)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$2.run(SelectionAggregator.java:119)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator.notifyListeners(SelectionAggregator.java:117)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator.access$5(SelectionAggregator.java:114)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$7$1.run(SelectionAggregator.java:216)
	at org.eclipse.e4.core.contexts.RunAndTrack.runExternalCode(RunAndTrack.java:56)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$7.changed(SelectionAggregator.java:214)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:110)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:334)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:348)
	at org.eclipse.e4.ui.internal.workbench.SelectionServiceImpl.setSelection(SelectionServiceImpl.java:30)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.selectionChanged(CompatibilityPart.java:437)
	at org.eclipse.ui.part.MultiPageSelectionProvider$1.run(MultiPageSelectionProvider.java:110)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.part.MultiPageSelectionProvider.fireEventChange(MultiPageSelectionProvider.java:108)
	at org.eclipse.ui.part.MultiPageSelectionProvider.fireSelectionChanged(MultiPageSelectionProvider.java:90)
	at org.eclipse.ui.part.MultiPageEditorSite.handleSelectionChanged(MultiPageEditorSite.java:501)
	at org.eclipse.ui.part.MultiPageEditorSite$5.selectionChanged(MultiPageEditorSite.java:412)
	at org.eclipse.gef.ui.parts.AbstractEditPartViewer.fireSelectionChanged(AbstractEditPartViewer.java:247)
	at org.eclipse.gef.ui.parts.AbstractEditPartViewer$1.run(AbstractEditPartViewer.java:131)
	at org.eclipse.gef.SelectionManager.fireSelectionChanged(SelectionManager.java:144)
	at org.eclipse.gef.SelectionManager.appendSelection(SelectionManager.java:83)
	at org.eclipse.gef.ui.parts.AbstractEditPartViewer.appendSelection(AbstractEditPartViewer.java:190)
	at org.eclipse.graphiti.ui.internal.editor.GraphitiScrollingGraphicalViewer.appendSelection(GraphitiScrollingGraphicalViewer.java:139)
	at org.eclipse.gef.ui.parts.AbstractEditPartViewer.select(AbstractEditPartViewer.java:599)
	at org.eclipse.graphiti.ui.internal.editor.GraphitiScrollingGraphicalViewer.select(GraphitiScrollingGraphicalViewer.java:46)
	at org.eclipse.gef.tools.SelectEditPartTracker.performSelection(SelectEditPartTracker.java:221)
	at org.eclipse.gef.tools.SelectEditPartTracker.performConditionalSelection(SelectEditPartTracker.java:167)
	at org.eclipse.gef.tools.SelectEditPartTracker.handleButtonDown(SelectEditPartTracker.java:92)
	at org.eclipse.gef.tools.AbstractTool.mouseDown(AbstractTool.java:1091)
	at org.eclipse.gef.tools.SelectionTool.mouseDown(SelectionTool.java:514)
	at org.eclipse.gef.EditDomain.mouseDown(EditDomain.java:245)
	at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMousePressed(DomainEventDispatcher.java:348)
	at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDown(LightweightSystem.java:523)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:192)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3742)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3363)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	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:354)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

!ENTRY org.eclipse.e4.ui.workbench 4 0 2013-10-09 08:50:22.390
!MESSAGE 
!STACK 0
java.lang.UnsupportedOperationException: Please use DataMapping.getBusinessObject(PictogramLink link)
	at org.eclipse.graphiti.internal.ExternalPictogramLink.getBusinessObjects(ExternalPictogramLink.java:51)
	at org.eclipse.graphiti.features.impl.UpdateNoBoFeature.updateNeeded(UpdateNoBoFeature.java:57)
	at org.eclipse.graphiti.ui.internal.action.UpdateAction.calculateEnabled(UpdateAction.java:79)
	at org.eclipse.gef.ui.actions.WorkbenchPartAction.refresh(WorkbenchPartAction.java:131)
	at org.eclipse.gef.ui.actions.SelectionAction.handleSelectionChanged(SelectionAction.java:89)
	at org.eclipse.gef.ui.actions.SelectionAction.setSelection(SelectionAction.java:101)
	at org.eclipse.gef.ui.actions.SelectionAction.update(SelectionAction.java:124)
	at org.eclipse.gef.ui.parts.GraphicalEditor.updateActions(GraphicalEditor.java:458)
	at org.switchyard.tools.ui.editor.impl.MultiPageEditor$DesignEditor.selectionChanged(MultiPageEditor.java:231)
	at org.eclipse.ui.internal.e4.compatibility.SelectionService.notifyListeners(SelectionService.java:154)
	at org.eclipse.ui.internal.e4.compatibility.SelectionService.access$3(SelectionService.java:151)
	at org.eclipse.ui.internal.e4.compatibility.SelectionService$1.selectionChanged(SelectionService.java:74)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$2.run(SelectionAggregator.java:119)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator.notifyListeners(SelectionAggregator.java:117)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator.access$5(SelectionAggregator.java:114)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$7$1.run(SelectionAggregator.java:216)
	at org.eclipse.e4.core.contexts.RunAndTrack.runExternalCode(RunAndTrack.java:56)
	at org.eclipse.e4.ui.internal.workbench.SelectionAggregator$7.changed(SelectionAggregator.java:214)
	at org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(TrackableComputationExt.java:110)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(EclipseContext.java:334)
	at org.eclipse.e4.core.internal.contexts.EclipseContext.set(EclipseContext.java:348)
	at org.eclipse.e4.ui.internal.workbench.SelectionServiceImpl.setSelection(SelectionServiceImpl.java:30)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.selectionChanged(CompatibilityPart.java:437)
	at org.eclipse.ui.part.MultiPageSelectionProvider$1.run(MultiPageSelectionProvider.java:110)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.part.MultiPageSelectionProvider.fireEventChange(MultiPageSelectionProvider.java:108)
	at org.eclipse.ui.part.MultiPageSelectionProvider.fireSelectionChanged(MultiPageSelectionProvider.java:90)
	at org.eclipse.ui.part.MultiPageEditorSite.handleSelectionChanged(MultiPageEditorSite.java:501)
	at org.eclipse.ui.part.MultiPageEditorSite$5.selectionChanged(MultiPageEditorSite.java:412)
	at org.eclipse.gef.ui.parts.AbstractEditPartViewer.fireSelectionChanged(AbstractEditPartViewer.java:247)
	at org.eclipse.gef.ui.parts.AbstractEditPartViewer$1.run(AbstractEditPartViewer.java:131)
	at org.eclipse.gef.SelectionManager.fireSelectionChanged(SelectionManager.java:144)
	at org.eclipse.gef.SelectionManager.appendSelection(SelectionManager.java:83)
	at org.eclipse.gef.ui.parts.AbstractEditPartViewer.appendSelection(AbstractEditPartViewer.java:190)
	at org.eclipse.graphiti.ui.internal.editor.GraphitiScrollingGraphicalViewer.appendSelection(GraphitiScrollingGraphicalViewer.java:139)
	at org.eclipse.gef.ui.parts.AbstractEditPartViewer.select(AbstractEditPartViewer.java:599)
	at org.eclipse.graphiti.ui.internal.editor.GraphitiScrollingGraphicalViewer.select(GraphitiScrollingGraphicalViewer.java:46)
	at org.eclipse.gef.tools.SelectEditPartTracker.performSelection(SelectEditPartTracker.java:221)
	at org.eclipse.gef.tools.SelectEditPartTracker.performConditionalSelection(SelectEditPartTracker.java:167)
	at org.eclipse.gef.tools.SelectEditPartTracker.handleButtonDown(SelectEditPartTracker.java:92)
	at org.eclipse.gef.tools.AbstractTool.mouseDown(AbstractTool.java:1091)
	at org.eclipse.gef.tools.SelectionTool.mouseDown(SelectionTool.java:514)
	at org.eclipse.gef.EditDomain.mouseDown(EditDomain.java:245)
	at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMousePressed(DomainEventDispatcher.java:348)
	at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseDown(LightweightSystem.java:523)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:192)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3742)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3363)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	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:354)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1426)

Comment 1 Rob Cernich 2013-10-09 13:57:34 UTC
Paul, can you see this gets to Fuse folks?  Thanks!

Comment 2 Paul Leacu 2013-10-09 14:10:19 UTC
Sure - will take a look myself.

Comment 3 Andrej Podhradsky 2013-10-11 08:30:27 UTC
Btw note that this happens only when we open the route from switchyard editor.

Comment 4 Paul Leacu 2013-10-11 14:54:56 UTC
This doesn't appear to involve Fuse (other than selecting an object in the fuse camel route editor can also trigger the issue).  See:

https://github.com/jboss-switchyard/tools/blob/master/eclipse/plugins/org.switchyard.tools.ui.editor/src/org/switchyard/tools/ui/editor/impl/MultiPageEditor.java#L226-233

There's code in the selectionChanged listener to try to handle a MultiPageEditor from a GraphicalEditor but it seems to confuse graphiti.

Sending over to Fitz for a look.

ref:

java.lang.UnsupportedOperationException: Please use DataMapping.getBusinessObject(PictogramLink link)
	at org.eclipse.graphiti.internal.ExternalPictogramLink.getBusinessObjects(ExternalPictogramLink.java:51)
	at org.eclipse.graphiti.features.impl.UpdateNoBoFeature.updateNeeded(UpdateNoBoFeature.java:57)
	at org.eclipse.graphiti.ui.internal.action.UpdateAction.calculateEnabled(UpdateAction.java:79)
	at org.eclipse.gef.ui.actions.WorkbenchPartAction.refresh(WorkbenchPartAction.java:131)
	at org.eclipse.gef.ui.actions.SelectionAction.handleSelectionChanged(SelectionAction.java:89)
	at org.eclipse.gef.ui.actions.SelectionAction.setSelection(SelectionAction.java:101)
	at org.eclipse.gef.ui.actions.SelectionAction.update(SelectionAction.java:124)
	at org.eclipse.gef.ui.parts.GraphicalEditor.updateActions(GraphicalEditor.java:458)
	at org.switchyard.tools.ui.editor.impl.MultiPageEditor$DesignEditor.selectionChanged(MultiPageEditor.java:231)

Comment 5 JBoss JIRA Server 2013-10-17 19:43:24 UTC
Brian Fitzpatrick <bfitzpat> made a comment on jira SWITCHYARD-1775

This turned out to be an issue with a selection changed listener in the MultiPageEditor class. After talking about it with Rob, we discovered that the overridden listener wasn't needed any more (http://git.eclipse.org/c/gmp/org.eclipse.gmp.graphiti.git/tree/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/editor/DiagramEditor.java#n631). And in fact, without it, everything works fine now. So this must have been an issue in older versions of Graphiti that has been resolved.

Comment 6 JBoss JIRA Server 2013-10-17 19:46:53 UTC
Brian Fitzpatrick <bfitzpat> made a comment on jira SWITCHYARD-1775

Removes overridden method no longer required by Graphiti that was causing the issue.

Comment 7 JBoss JIRA Server 2013-10-25 02:18:37 UTC
Rob Cernich <rcernich> made a comment on jira SWITCHYARD-1775

pushed

Comment 8 Andrej Podhradsky 2014-01-22 08:55:36 UTC
Verified with JBDS-IS 7.0.0.CR2

Comment 9 JBoss JIRA Server 2014-06-16 23:48:54 UTC
Keith Babo <kbabo> updated the status of jira SWITCHYARD-1775 to Closed