Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2021-11-23 09:49:33 +0000
committerFlorian NOYRIT2021-11-23 12:55:27 +0000
commit6e846956330f664c0c89f6e3ce6b76fef3dfa970 (patch)
treecf8a1e01b1966f85b9a5c0ed8ce8c14bfc26b72d
parente1fd9acbf8c75df7b1b47e826112b891ee69c2c7 (diff)
downloadorg.eclipse.papyrus-collaborativemodeling-6e846956330f664c0c89f6e3ce6b76fef3dfa970.tar.gz
org.eclipse.papyrus-collaborativemodeling-6e846956330f664c0c89f6e3ce6b76fef3dfa970.tar.xz
org.eclipse.papyrus-collaborativemodeling-6e846956330f664c0c89f6e3ce6b76fef3dfa970.zip
Bug 575899: CDOCacheAdapter issue when unloading modelSet
Change-Id: I0d9298680b4f202c0afa43441814b9776139c5cb Signed-off-by: Eike Stepper <stepper@esc-net.de>
-rw-r--r--cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant2
-rw-r--r--cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java12
-rw-r--r--cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java2
3 files changed, 3 insertions, 13 deletions
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
index a84c254b..420f0a59 100644
--- a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/migrate.ant
@@ -122,7 +122,7 @@
-->
<replacestring from="private static final int ADAPTING = 1 &lt;&lt; 7;" to="private boolean adapting;" />
<replacestring from="(eFlags &amp; ADAPTING) == 0" to="!adapting" />
- <replacestring from="eFlags |= ADAPTING;" to="adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || (view != null &amp;&amp; !view.isClosed())) {" />
+ <replacestring from="eFlags |= ADAPTING;" to="adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || (view != null &amp;&amp; !view.isClosing())) {" />
<replacestring from="eFlags &amp;= ~ADAPTING;" to="adapting = false; }" />
<tokenfilter>
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
index e87eae09..8ba25a2f 100644
--- a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/impl/ElementImpl.java
@@ -21,27 +21,18 @@ import org.eclipse.emf.common.CommonPlugin;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
-
import org.eclipse.emf.common.util.DiagnosticChain;
-
import org.eclipse.emf.common.util.EList;
-
import org.eclipse.emf.ecore.EAnnotation;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.EModelElementImpl;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.util.InternalEList;
-
import org.eclipse.uml2.common.util.CacheAdapter;
import org.eclipse.uml2.common.util.DerivedUnionEObjectEList;
-
import org.eclipse.uml2.uml.Comment;
import org.eclipse.uml2.uml.DirectedRelationship;
import org.eclipse.uml2.uml.Element;
@@ -49,7 +40,6 @@ import org.eclipse.uml2.uml.Model;
import org.eclipse.uml2.uml.Relationship;
import org.eclipse.uml2.uml.Stereotype;
import org.eclipse.uml2.uml.UMLPackage;
-
import org.eclipse.uml2.uml.internal.operations.ElementOperations;
/**
@@ -912,7 +902,7 @@ public abstract class ElementImpl
public EList<Adapter> eAdapters() {
if (!adapting && !eBasicHasAdapters()) {
- adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || (view != null && !view.isClosed())) {
+ adapting = true; org.eclipse.emf.spi.cdo.InternalCDOView view = cdoView(); if (view == null || !view.isClosing()) {
CacheAdapter cacheAdapter = getCacheAdapter();
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java
index f88c027a..d89063f8 100644
--- a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/CDOCacheAdapter.java
@@ -211,7 +211,7 @@ public class CDOCacheAdapter
List<EStructuralFeature.Setting> result = new ArrayList<EStructuralFeature.Setting>();
for (CDOObjectReference xref : view
.queryXRefs(Collections.singleton(cdoObject))) {
- EReference sourceReference = (EReference) xref.getSourceFeature();
+ EReference sourceReference = xref.getSourceReference();
if (!nonNavigable || sourceReference.getEOpposite() == null) {
InternalCDOObject object = (InternalCDOObject) view
.getObject(xref.getSourceID());

Back to the top