diff options
author | Esteban Dugueperoux | 2015-05-13 12:09:13 +0000 |
---|---|---|
committer | Esteban DUGUEPEROUX | 2015-05-27 14:56:16 +0000 |
commit | 8c520f81a0307ab8562f7b7d1517110a064c29f5 (patch) | |
tree | 4aa9e7af0fea3429eb6913641d18072845535338 /plugins | |
parent | 78548e95413156099ca437aa427f1204c6f2911e (diff) | |
download | cdo-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.java | 5 | ||||
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/cdo/CDOElement.java | 8 |
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) { |