[359582] gmf-R1_4_maintenance ahunter 120214 DiagramEventBroker doesn't check if the WeakReference's get() method returns null
diff --git a/org.eclipse.gmf.runtime.diagram.core/META-INF/MANIFEST.MF b/org.eclipse.gmf.runtime.diagram.core/META-INF/MANIFEST.MF
index 33cf600..240ccc2 100644
--- a/org.eclipse.gmf.runtime.diagram.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.gmf.runtime.diagram.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.gmf.runtime.diagram.core; singleton:=true
-Bundle-Version: 1.4.0.qualifier
+Bundle-Version: 1.4.3.qualifier
Bundle-Activator: org.eclipse.gmf.runtime.diagram.core.internal.DiagramPlugin
Bundle-Vendor: %Plugin.providerName
Bundle-Localization: plugin
diff --git a/org.eclipse.gmf.runtime.diagram.core/src/org/eclipse/gmf/runtime/diagram/core/listener/DiagramEventBroker.java b/org.eclipse.gmf.runtime.diagram.core/src/org/eclipse/gmf/runtime/diagram/core/listener/DiagramEventBroker.java
index 03d066a..e8b70ee 100644
--- a/org.eclipse.gmf.runtime.diagram.core/src/org/eclipse/gmf/runtime/diagram/core/listener/DiagramEventBroker.java
+++ b/org.eclipse.gmf.runtime.diagram.core/src/org/eclipse/gmf/runtime/diagram/core/listener/DiagramEventBroker.java
@@ -1,5 +1,5 @@
/******************************************************************************
- * Copyright (c) 2002, 2007 IBM Corporation and others.
+ * Copyright 2002, 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -232,8 +232,12 @@
private static DiagramEventBroker initializeDiagramEventBroker(TransactionalEditingDomain editingDomain) {
WeakReference reference = (WeakReference) instanceMap.get(editingDomain);
- if (reference == null) {
- DiagramEventBroker diagramEventBroker = DiagramEventBrokerService.getInstance().createDiagramEventBroker(editingDomain);
+ DiagramEventBroker diagramEventBroker = null;
+ if (reference != null) {
+ diagramEventBroker = (DiagramEventBroker) reference.get();
+ }
+ if (reference == null || diagramEventBroker == null) {
+ diagramEventBroker = DiagramEventBrokerService.getInstance().createDiagramEventBroker(editingDomain);
if (null == diagramEventBroker)
diagramEventBroker = debFactory.createDiagramEventBroker(editingDomain);
if (diagramEventBroker.editingDomainRef == null) {