diff options
| author | cbrun | 2015-10-02 12:55:00 +0000 |
|---|---|---|
| committer | cbrun | 2015-10-02 12:55:28 +0000 |
| commit | 5ceb2cbcbdac11efca918232809c6b216244c3fc (patch) | |
| tree | dfd4c1739acf8389c183fdf8ed12e27768435876 | |
| parent | d900253e97b1236728d22570f7e9d872cddc402a (diff) | |
| download | org.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.java | 8 |
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; } |
