Community
Participate
Working Groups
If a diagram connection is defined without a label (labeling the connection isn't necessary), the following NPE results at runtime. java.lang.NullPointerException at org.eclipse.sapphire.ui.diagram.editor.DiagramEmbeddedConnectionPart.init(DiagramEmbeddedConnectionPart.java:51) at org.eclipse.sapphire.ui.SapphirePart.init(SapphirePart.java:148) at org.eclipse.sapphire.ui.diagram.editor.DiagramEmbeddedConnectionTemplate.createNewConnectionPart(DiagramEmbeddedConnectionTemplate.java:221) at org.eclipse.sapphire.ui.diagram.editor.DiagramEmbeddedConnectionTemplate.init(DiagramEmbeddedConnectionTemplate.java:114) at org.eclipse.sapphire.ui.SapphirePart.init(SapphirePart.java:148) at org.eclipse.sapphire.ui.diagram.editor.DiagramNodeTemplate.init(DiagramNodeTemplate.java:111) at org.eclipse.sapphire.ui.SapphirePart.init(SapphirePart.java:148) at org.eclipse.sapphire.ui.diagram.editor.SapphireDiagramEditorPart.init(SapphireDiagramEditorPart.java:71) at org.eclipse.sapphire.ui.SapphirePart.init(SapphirePart.java:148) at org.eclipse.sapphire.ui.swt.graphiti.editor.SapphireDiagramEditor.<init>(SapphireDiagramEditor.java:95) at org.eclipse.sapphire.samples.architecture.ui.ArchitectureEditor.createDiagramPages(ArchitectureEditor.java:73) at org.eclipse.sapphire.ui.SapphireEditor.addPages(SapphireEditor.java:317) at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:138) at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:348) at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670) at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465) at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) at org.eclipse.ui.internal.EditorAreaHelper.setVisibleEditor(EditorAreaHelper.java:271) at org.eclipse.ui.internal.EditorManager.setVisibleEditor(EditorManager.java:1429) at org.eclipse.ui.internal.EditorManager$5.runWithException(EditorManager.java:942) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4125) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3742) at org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803) at org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1595) at org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4125) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3742) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) 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(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: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 192514 [details] Patch v1 Patch for easier review of change.
Fix committed.
I refactored the init() method on DiagramConnectionPart which is a super class of DiagramEmbeddedConnectionPart so that the NPE fix works for both connection parts.
Verified the fix