Community
Participate
Working Groups
When deleting a diagram node, we also try to delete incoming/outgoing connections associated with the node. If a connection part has null endpoints, we'd get NPE with the following stack trace: java.lang.NullPointerException at org.eclipse.sapphire.ui.diagram.actions.DiagramDeleteActionHandler.deleteNodeC onnections(DiagramDeleteActionHandler.java:125) at org.eclipse.sapphire.ui.diagram.actions.DiagramDeleteActionHandler.run(Diagram DeleteActionHandler.java:71) at org.eclipse.sapphire.ui.SapphireActionHandler.execute(SapphireActionHandler.ja va:89) at org.eclipse.sapphire.ui.swt.graphiti.actions.SapphireActionHandlerDelegate.run (SapphireActionHandlerDelegate.java:89) at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionCo ntributionItem.java:584) at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionIte m.java:501) at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributi onItem.java:411) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754) 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.ja va:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:19 6) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ec lipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppL auncher.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.j ava: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) at org.eclipse.equinox.launcher.Main.main(Main.java:1386) java.lang.NullPointerException at org.eclipse.sapphire.ui.diagram.actions.DiagramDeleteActionHandler.deleteNodeC onnections(DiagramDeleteActionHandler.java:125) at org.eclipse.sapphire.ui.diagram.actions.DiagramDeleteActionHandler.run(Diagram DeleteActionHandler.java:71) at org.eclipse.sapphire.ui.SapphireActionHandler.execute(SapphireActionHandler.ja va:89) at org.eclipse.sapphire.ui.swt.graphiti.features.SapphireDeleteFeature.deleteBusi nessObject(SapphireDeleteFeature.java:84) at @ org.eclipse.graphiti.ui.features.DefaultDeleteFeature.deleteBusinessObjects(De @ faultDeleteFeature.java:112) at org.eclipse.sapphire.ui.swt.graphiti.features.SapphireDeleteFeature.delete(Sap phireDeleteFeature.java:69) at @ org.eclipse.graphiti.ui.features.DefaultDeleteFeature.execute(DefaultDeleteFea ture.java:145) at org.eclipse.graphiti.internal.command.GenericFeatureCommandWithContext.execute (GenericFeatureCommandWithContext.java:64) at org.eclipse.graphiti.internal.command.CommandContainer.execute(CommandContaine r.java:81) at org.eclipse.graphiti.ui.internal.command.GefCommandWrapper.execute(GefCommandW rapper.java:51) at org.eclipse.graphiti.ui.internal.editor.EmfOnGefCommand.execute(EmfOnGefComman d.java:59) at org.eclipse.graphiti.internal.command.GFPreparableCommand2.doExecute(GFPrepara bleCommand2.java:37) at org.eclipse.emf.transaction.RecordingCommand.execute(RecordingCommand.java:135 ) at org.eclipse.emf.workspace.EMFCommandOperation.doExecute(EMFCommandOperation.ja va:119) at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.ja va:150) at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOp erationHistory.java:513) at org.eclipse.emf.workspace.impl.WorkspaceCommandStackImpl.doExecute(WorkspaceCo mmandStackImpl.java:208) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(Abs tractTransactionalCommandStack.java:165) at org.eclipse.graphiti.ui.internal.editor.GFWorkspaceCommandStackImpl.execute(GF WorkspaceCommandStackImpl.java:71) at org.eclipse.graphiti.ui.internal.editor.GFCommandStack.execute(GFCommandStack. java:108) at org.eclipse.graphiti.ui.internal.action.AbstractPreDefinedAction.executeOnComm andStack(AbstractPreDefinedAction.java:75) at org.eclipse.graphiti.ui.internal.action.AbstractPreDefinedAction.genericRun(Ab stractPreDefinedAction.java:93) at org.eclipse.graphiti.ui.internal.action.DeleteAction.run(DeleteAction.java:96) at org.eclipse.gef.KeyHandler.performStroke(KeyHandler.java:83) at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:55) at org.eclipse.gef.KeyHandler.keyPressed(KeyHandler.java:59) at org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler.keyPressed(GraphicalViewerK eyHandler.java:355) at org.eclipse.gef.tools.SelectionTool.handleKeyDown(SelectionTool.java:331) at org.eclipse.gef.tools.PanningSelectionTool.handleKeyDown(PanningSelectionTool. java:161) at org.eclipse.gef.tools.AbstractTool.keyDown(AbstractTool.java:1016) at org.eclipse.gef.tools.SelectionTool.keyDown(SelectionTool.java:491) at org.eclipse.gef.EditDomain.keyDown(EditDomain.java:169) at org.eclipse.gef.ui.parts.DomainEventDispatcher.dispatchKeyPressed(DomainEventD ispatcher.java:252) at org.eclipse.draw2d.LightweightSystem$EventHandler.keyPressed(LightweightSystem java:497) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:167) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100) at org.eclipse.swt.widgets.Widget.wmKeyDown(Widget.java:1809) at org.eclipse.swt.widgets.Control.WM_KEYDOWN(Control.java:4892) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4560) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341) at org.eclipse.swt.widgets.Display.windowProc(Display.java:4985) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2530) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752) 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.ja va:123) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:19 6) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Ec lipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppL auncher.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.j ava: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) at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Created attachment 200762 [details] Fix the NPE
The NPE should be fixed with the attached patch
verified on 0.3.1.201108021709
Closing based on Raj's verification.