Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenn Hussey2015-04-23 20:34:22 +0000
committerKenn Hussey2015-04-23 20:34:22 +0000
commit0a30e6334abd0f4b73afb1e91e5a6e9dbf8d86e0 (patch)
tree7afc059d1773a752cb6b4bbff344161bbc267466
parentdb589f3113fdf762913471f60b65425b87fc1542 (diff)
downloadorg.eclipse.uml2-0a30e6334abd0f4b73afb1e91e5a6e9dbf8d86e0.tar.gz
org.eclipse.uml2-0a30e6334abd0f4b73afb1e91e5a6e9dbf8d86e0.tar.xz
org.eclipse.uml2-0a30e6334abd0f4b73afb1e91e5a6e9dbf8d86e0.zip
[465214] Avoiding dangling references for activity nodes and groups.
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java14
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java14
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java17
3 files changed, 42 insertions, 3 deletions
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java
index 905dc9bf1..c410d32b0 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - initial API and implementation
* Kenn Hussey - 286329, 323181
- * Kenn Hussey (CEA) - 327039, 351774, 418466, 451350
+ * Kenn Hussey (CEA) - 327039, 351774, 418466, 451350, 465214
*
*/
package org.eclipse.uml2.uml.internal.impl;
@@ -323,6 +323,18 @@ public abstract class ActivityGroupImpl
return super.eBasicRemoveFromContainer(msgs);
}
+ @Override
+ public NotificationChain eBasicSetContainer(InternalEObject newContainer,
+ int newContainerFeatureID, NotificationChain msgs) {
+ InternalEObject eInternalContainer = eInternalContainer();
+ if (eInternalContainer instanceof Activity) {
+ msgs = ((InternalEList<ActivityGroup>) ((Activity) eInternalContainer)
+ .getGroups()).basicRemove(this, msgs);
+ }
+ return super.eBasicSetContainer(newContainer, newContainerFeatureID,
+ msgs);
+ }
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java
index 5b13cad07..a877b2cc7 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java
@@ -8,7 +8,7 @@
* Contributors:
* IBM - initial API and implementation
* Kenn Hussey - 323181
- * Kenn Hussey (CEA) - 327039, 351774, 418466, 451350
+ * Kenn Hussey (CEA) - 327039, 351774, 418466, 451350, 465214
*
*/
package org.eclipse.uml2.uml.internal.impl;
@@ -408,6 +408,18 @@ public abstract class ActivityNodeImpl
return super.eBasicRemoveFromContainer(msgs);
}
+ @Override
+ public NotificationChain eBasicSetContainer(InternalEObject newContainer,
+ int newContainerFeatureID, NotificationChain msgs) {
+ InternalEObject eInternalContainer = eInternalContainer();
+ if (eInternalContainer instanceof Activity) {
+ msgs = ((InternalEList<ActivityNode>) ((Activity) eInternalContainer)
+ .getNodes()).basicRemove(this, msgs);
+ }
+ return super.eBasicSetContainer(newContainer, newContainerFeatureID,
+ msgs);
+ }
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java
index 89306bd51..48a38bcec 100644
--- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java
+++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java
@@ -9,7 +9,7 @@
* IBM - initial API and implementation
* Kenn Hussey (Embarcadero Technologies) - 204200
* Kenn Hussey - 286329, 323181
- * Kenn Hussey (CEA) - 327039, 351774, 418466, 451350
+ * Kenn Hussey (CEA) - 327039, 351774, 418466, 451350, 465214
*
*/
package org.eclipse.uml2.uml.internal.impl;
@@ -1021,6 +1021,21 @@ public class StructuredActivityNodeImpl
return super.eBasicRemoveFromContainer(msgs);
}
+ @Override
+ public NotificationChain eBasicSetContainer(InternalEObject newContainer,
+ int newContainerFeatureID, NotificationChain msgs) {
+ InternalEObject eInternalContainer = eInternalContainer();
+ if (eInternalContainer instanceof Activity) {
+ Activity activity = (Activity) eInternalContainer;
+ msgs = ((InternalEList<ActivityGroup>) activity.getGroups())
+ .basicRemove(this, msgs);
+ msgs = ((InternalEList<ActivityNode>) activity.getNodes())
+ .basicRemove(this, msgs);
+ }
+ return super.eBasicSetContainer(newContainer, newContainerFeatureID,
+ msgs);
+ }
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->

Back to the top