Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbrun2015-10-02 12:55:00 +0000
committercbrun2015-10-02 12:55:28 +0000
commit5ceb2cbcbdac11efca918232809c6b216244c3fc (patch)
treedfd4c1739acf8389c183fdf8ed12e27768435876
parentd900253e97b1236728d22570f7e9d872cddc402a (diff)
downloadorg.eclipse.sirius-5ceb2cbcbdac11efca918232809c6b216244c3fc.tar.gz
org.eclipse.sirius-5ceb2cbcbdac11efca918232809c6b216244c3fc.tar.xz
org.eclipse.sirius-5ceb2cbcbdac11efca918232809c6b216244c3fc.zip
[478902] Copy the metamodeldescriptors collection before modifying it
Bug: 478902 Change-Id: I2c2c9e7a69cf27605003e9f6c161f4dc1666eff3 Signed-off-by: Cedric Brun <cedric.brun@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.ecore.extender/src/org/eclipse/sirius/ecore/extender/business/internal/accessor/ecore/EcoreIntrinsicExtender.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/plugins/org.eclipse.sirius.ecore.extender/src/org/eclipse/sirius/ecore/extender/business/internal/accessor/ecore/EcoreIntrinsicExtender.java b/plugins/org.eclipse.sirius.ecore.extender/src/org/eclipse/sirius/ecore/extender/business/internal/accessor/ecore/EcoreIntrinsicExtender.java
index c4cdda07d8..1ac76d2344 100644
--- a/plugins/org.eclipse.sirius.ecore.extender/src/org/eclipse/sirius/ecore/extender/business/internal/accessor/ecore/EcoreIntrinsicExtender.java
+++ b/plugins/org.eclipse.sirius.ecore.extender/src/org/eclipse/sirius/ecore/extender/business/internal/accessor/ecore/EcoreIntrinsicExtender.java
@@ -42,6 +42,7 @@ import com.google.common.collect.HashMultimap;
import com.google.common.collect.Iterables;
import com.google.common.collect.Iterators;
import com.google.common.collect.Multimap;
+import com.google.common.collect.Sets;
/**
* This metamodel Extender accesses the intrinsic data of an EObject.
@@ -433,10 +434,11 @@ public class EcoreIntrinsicExtender extends AbstractMetamodelExtender {
@Override
public void updateMetamodels(final Collection<? extends MetamodelDescriptor> metamodelDescriptors) {
+ final Collection<? extends MetamodelDescriptor> metamodelDescriptorsCopy = Sets.newLinkedHashSet(metamodelDescriptors);
if (lastDescriptors != null) {
- metamodelDescriptors.removeAll(lastDescriptors);
+ metamodelDescriptorsCopy.removeAll(lastDescriptors);
}
- final Iterator<? extends MetamodelDescriptor> it = metamodelDescriptors.iterator();
+ final Iterator<? extends MetamodelDescriptor> it = metamodelDescriptorsCopy.iterator();
while (it.hasNext()) {
final Object obj = it.next();
if (obj instanceof EcoreMetamodelDescriptor) {
@@ -451,7 +453,7 @@ public class EcoreIntrinsicExtender extends AbstractMetamodelExtender {
}
}
- lastDescriptors = metamodelDescriptors;
+ lastDescriptors = metamodelDescriptorsCopy;
}

Back to the top