diff options
author | Kenn Hussey | 2014-10-23 15:37:54 +0000 |
---|---|---|
committer | Kenn Hussey | 2014-10-23 15:37:54 +0000 |
commit | d4b7fc8a472c6160037e13c1f41ef9ce845a6f10 (patch) | |
tree | 86a905696e4c31799e108eb7cf9385080393604c | |
parent | 8f10c86a2c115f64d403717f77ff751515c09d69 (diff) | |
download | org.eclipse.uml2-d4b7fc8a472c6160037e13c1f41ef9ce845a6f10.tar.gz org.eclipse.uml2-d4b7fc8a472c6160037e13c1f41ef9ce845a6f10.tar.xz org.eclipse.uml2-d4b7fc8a472c6160037e13c1f41ef9ce845a6f10.zip |
[447901] Avoiding CCEs when migrating stereotype application references.
-rw-r--r-- | plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java index 923d379d8..9352ceee5 100644 --- a/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java +++ b/plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/operations/PackageOperations.java @@ -9,7 +9,7 @@ * IBM - initial API and implementation * Kenn Hussey (Embarcadero Technologies) - 271470 * Kenn Hussey - 323181, 348433 - * Kenn Hussey (CEA) - 327039, 369492, 313951, 163556, 418466 + * Kenn Hussey (CEA) - 327039, 369492, 313951, 163556, 418466, 447901 * Christian W. Damus (CEA) - 300957, 431998 * */ @@ -720,21 +720,24 @@ public class PackageOperations for (Setting setting : new ArrayList<EStructuralFeature.Setting>( getNonNavigableInverseReferences(key))) { - EStructuralFeature eStructuralFeature = setting - .getEStructuralFeature(); + EObject eObject = setting.getEObject(); - if (eStructuralFeature != null - && eStructuralFeature.isChangeable()) { + if (!copier.containsKey(eObject)) { + EStructuralFeature eStructuralFeature = setting + .getEStructuralFeature(); - if (eStructuralFeature.isMany()) { - Object value = setting.getEObject().eGet( - eStructuralFeature); + if (eStructuralFeature != null + && eStructuralFeature.isChangeable()) { - @SuppressWarnings("unchecked") - EList<EObject> list = ((EList<EObject>) value); - list.set(list.indexOf(key), copy); - } else { - setting.set(copy); + if (eStructuralFeature.isMany()) { + Object value = eObject.eGet(eStructuralFeature); + + @SuppressWarnings("unchecked") + EList<EObject> list = ((EList<EObject>) value); + list.set(list.indexOf(key), copy); + } else { + setting.set(copy); + } } } } |