[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);
 	}
 }