[521399] Extend the NPE avoidance when a final selection comes in from the Outline Viewer after the editor is closed and the workbench is shutting down.
Change-Id: I180564d5a12f323412dea24c26fac7027e4c8057
Signed-off-by: Paul Leacu <pleacu@redhat.com>
diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/DefaultBPMN2EditorDiagramBehavior.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/DefaultBPMN2EditorDiagramBehavior.java
index d678105..f86f3dc 100644
--- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/DefaultBPMN2EditorDiagramBehavior.java
+++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/DefaultBPMN2EditorDiagramBehavior.java
@@ -12,11 +12,13 @@
import java.util.ArrayList;
+import org.eclipse.gef.GraphicalViewer;
import org.eclipse.graphiti.mm.pictograms.PictogramElement;
import org.eclipse.graphiti.ui.editor.DefaultMarkerBehavior;
import org.eclipse.graphiti.ui.editor.DefaultPersistencyBehavior;
import org.eclipse.graphiti.ui.editor.DefaultUpdateBehavior;
import org.eclipse.graphiti.ui.editor.DiagramBehavior;
+import org.eclipse.graphiti.ui.editor.IDiagramContainerUI;
import org.eclipse.swt.widgets.Control;
public class DefaultBPMN2EditorDiagramBehavior extends DiagramBehavior {
@@ -58,11 +60,21 @@
@Override
protected void selectPictogramElements(PictogramElement[] pictogramElements) {
+
// Avoid NPE when a final selection comes in from the Outline Viewer AFTER
// the editor is closed and the workbench is shutting down.
- Control control = getDiagramContainer().getGraphicalViewer().getControl();
+ IDiagramContainerUI diagramContainer = getDiagramContainer();
+ if (diagramContainer == null)
+ return;
+
+ GraphicalViewer gv = diagramContainer.getGraphicalViewer();
+ if (gv == null)
+ return;
+
+ Control control = gv.getControl();
if (control==null || control.isDisposed())
return;
+
super.selectPictogramElements(pictogramElements);
}
}