Bug 993392

Summary: BPM Implementation properties - resource table throws NPE when editing and cancel out of Property dialog
Product: [JBoss] JBoss Fuse Service Works 6 Reporter: Brian Fitzpatrick <bfitzpat>
Component: SwitchYard EditorAssignee: Brian Fitzpatrick <bfitzpat>
Status: CLOSED CURRENTRELEASE QA Contact: Jiri Pechanec <jpechane>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.0.0 GACC: kconner, ldimaggi, rcernich, soa-p-jira
Target Milestone: ER2   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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:
Bug Depends On:    
Bug Blocks: 993401    

Description Brian Fitzpatrick 2013-08-05 20:33:42 UTC
Description of problem:
Select something in the Manifest/resources table and while the column is editable, click Cancel on the Properties dialog. You get an NPE:

Version-Release number of selected component (if applicable):
1.0.0 tooling

How reproducible:
Consistently

Steps to Reproduce:
1. Open a SwitchYard configuration with a component that has a BPM implementation and open the properties in the Property dialog.
2. Select something in the Manifest/Resources table (first tab of control).
3. While column is editable, click Cancel on the Properties dialog.

Actual results:
NPE
!ENTRY org.eclipse.jface 4 2 2013-08-02 10:30:20.723
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.jface".
!STACK 0
java.lang.NullPointerException
at org.switchyard.tools.ui.bpmn2.component.BPMResourceTable$ResourceColumnEditingSupport.setValue(BPMResourceTable.java:547)
at org.eclipse.jface.viewers.EditingSupport.saveCellEditorValue(EditingSupport.java:113)
at org.eclipse.jface.viewers.ColumnViewerEditor.saveEditorValue(ColumnViewerEditor.java:456)
at org.eclipse.jface.viewers.ColumnViewerEditor.applyEditorValue(ColumnViewerEditor.java:312)
at org.eclipse.jface.viewers.ColumnViewerEditor$2.applyEditorValue(ColumnViewerEditor.java:154)
at org.eclipse.jface.viewers.CellEditor$1.run(CellEditor.java:335)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
at org.eclipse.jface.viewers.CellEditor.fireApplyEditorValue(CellEditor.java:333)
at org.eclipse.jface.viewers.CellEditor.focusLost(CellEditor.java:718)
at org.eclipse.jface.viewers.TextCellEditor$5.focusLost(TextCellEditor.java:186)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:143)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1081)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2842)
at org.eclipse.swt.widgets.Widget.wmKillFocus(Widget.java:1939)
at org.eclipse.swt.widgets.Control.WM_KILLFOCUS(Control.java:4983)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4645)
at org.eclipse.swt.widgets.Text.windowProc(Text.java:2597)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2443)
at org.eclipse.swt.widgets.Button.callWindowProc(Button.java:343)
at org.eclipse.swt.widgets.Widget.wmLButtonDown(Widget.java:2011)
at org.eclipse.swt.widgets.Control.WM_LBUTTONDOWN(Control.java:4991)
at org.eclipse.swt.widgets.Button.WM_LBUTTONDOWN(Button.java:1240)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4647)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4990)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2549)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
at org.eclipse.jface.window.Window.open(Window.java:802)
at org.switchyard.tools.ui.editor.diagram.PropertiesDialogFeature.execute(PropertiesDialogFeature.java:118)
at org.eclipse.graphiti.features.custom.AbstractCustomFeature.execute(AbstractCustomFeature.java:83)
at org.eclipse.graphiti.internal.command.GenericFeatureCommandWithContext.execute(GenericFeatureCommandWithContext.java:64)
at org.eclipse.graphiti.ui.internal.command.GefCommandWrapper.execute(GefCommandWrapper.java:51)
at org.eclipse.graphiti.ui.internal.editor.EmfOnGefCommand.execute(EmfOnGefCommand.java:54)
at org.eclipse.graphiti.internal.command.GFPreparableCommand2.doExecute(GFPreparableCommand2.java:37)
at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135)
at org.eclipse.emf.workspace.EMFCommandOperation.doExecute(EMFCommandOperation.java:119)
at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:150)
at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:513)
at org.eclipse.emf.workspace.impl.WorkspaceCommandStackImpl.doExecute(WorkspaceCommandStackImpl.java:208)
at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165)
at org.eclipse.graphiti.ui.internal.editor.GFWorkspaceCommandStackImpl.execute(GFWorkspaceCommandStackImpl.java:84)
at org.eclipse.graphiti.ui.internal.editor.GFCommandStack.execute(GFCommandStack.java:138)
at org.eclipse.graphiti.ui.editor.DiagramBehavior.executeFeature(DiagramBehavior.java:1084)
at org.eclipse.graphiti.tb.AbstractContextEntry.execute(AbstractContextEntry.java:71)
at org.eclipse.graphiti.ui.internal.contextbuttons.ContextButton.actionPerformed(ContextButton.java:643)
at org.eclipse.draw2d.Clickable.fireActionPerformed(Clickable.java:206)
at org.eclipse.draw2d.Clickable$1.actionPerformed(Clickable.java:175)
at org.eclipse.draw2d.ButtonModel.fireActionPerformed(ButtonModel.java:140)
at org.eclipse.draw2d.ButtonModel$DefaultFiringBehavior.released(ButtonModel.java:506)
at org.eclipse.draw2d.ButtonModel.fireReleased(ButtonModel.java:179)
at org.eclipse.draw2d.ButtonModel.setPressed(ButtonModel.java:466)
at org.eclipse.draw2d.ClickableEventHandler.mouseReleased(ClickableEventHandler.java:92)
at org.eclipse.draw2d.Figure.handleMouseReleased(Figure.java:944)
at org.eclipse.graphiti.ui.internal.contextbuttons.ContextButton.handleMouseReleased(ContextButton.java:548)
at org.eclipse.draw2d.SWTEventDispatcher.dispatchMouseReleased(SWTEventDispatcher.java:267)
at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchMouseReleased(DomainEventDispatcher.java:374)
at org.eclipse.draw2d.LightweightSystem$EventHandler.mouseUp(LightweightSystem.java:548)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:220)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1057)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4170)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3759)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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)

Expected results:
No NPE. Successfully canceling the operation.

Additional info:

Comment 2 Brian Fitzpatrick 2013-08-13 14:49:43 UTC
The same issue also affects the Rules implementation UI intermittently, so I will make the change there as well.

Comment 3 JBoss JIRA Server 2013-08-13 14:55:50 UTC
Brian Fitzpatrick <bfitzpat> made a comment on jira SWITCHYARD-1635

This PR updates the way we fetch the transaction domain to avoid the intermittent NPE issue with BPM and the same issue on the Rules impl UI side as well.

Comment 4 JBoss JIRA Server 2013-08-15 14:44:09 UTC
Rob Cernich <rcernich> made a comment on jira SWITCHYARD-1635

pushed

Comment 5 Brian Fitzpatrick 2013-08-15 18:03:06 UTC
Verified locally.

Comment 6 Jiri Pechanec 2013-09-17 12:24:21 UTC
Verified in ER2

Comment 10 JBoss JIRA Server 2014-06-16 23:51:05 UTC
Keith Babo <kbabo> updated the status of jira SWITCHYARD-1635 to Closed