Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEsteban Dugueperoux2015-05-13 12:09:13 +0000
committerEsteban DUGUEPEROUX2015-05-27 14:56:16 +0000
commit8c520f81a0307ab8562f7b7d1517110a064c29f5 (patch)
tree4aa9e7af0fea3429eb6913641d18072845535338 /plugins
parent78548e95413156099ca437aa427f1204c6f2911e (diff)
downloadcdo-8c520f81a0307ab8562f7b7d1517110a064c29f5.tar.gz
cdo-8c520f81a0307ab8562f7b7d1517110a064c29f5.tar.xz
cdo-8c520f81a0307ab8562f7b7d1517110a064c29f5.zip
[467204] Avoid potential LifecycleException with new UI contributions
Avoid potential LifecycleException with new UI contributions on object whose view/session is closed. Change-Id: Ib4b9dd3f0baad5667cdda0926491c4eed6f9e843 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=467204 Signed-off-by: Esteban Dugueperoux <esteban.dugueperoux@obeo.fr>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java5
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOElement.java8
2 files changed, 13 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java
index a90781a47b..1c1c0357bf 100644
--- a/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java
+++ b/plugins/org.eclipse.emf.cdo.explorer/src/org/eclipse/emf/cdo/explorer/CDOExplorerUtil.java
@@ -50,6 +50,11 @@ public final class CDOExplorerUtil
if (object instanceof CDOView)
{
CDOView view = (CDOView)object;
+ if (view.isClosed())
+ {
+ return null;
+ }
+
return (CDOCheckout)view.properties().get(CDOCheckoutImpl.CHECKOUT_KEY);
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOElement.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOElement.java
index 57ba6b46c1..a18ab3b616 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOElement.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOElement.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo;
import org.eclipse.emf.cdo.eresource.CDOResource;
import org.eclipse.emf.cdo.eresource.CDOResourceNode;
+import org.eclipse.emf.cdo.util.CDOUtil;
import org.eclipse.emf.cdo.view.CDOView;
import org.eclipse.net4j.util.AdapterUtil;
@@ -23,6 +24,7 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.spi.cdo.FSMUtil;
import org.eclipse.emf.spi.cdo.InternalCDOObject;
import org.eclipse.core.runtime.IAdaptable;
@@ -125,6 +127,12 @@ public class CDOElement extends AdapterImpl implements IAdaptable
return null;
}
+ CDOObject cdoObject = CDOUtil.getCDOObject(eObject, false);
+ if (cdoObject != null && FSMUtil.isInvalid(cdoObject))
+ {
+ return null;
+ }
+
EObject container = eObject.eContainer();
if (container != null)
{

Back to the top