commit | 547423f1449bf17f59e1763bdf3fe3980595138e | [log] [tgz] |
---|---|---|
author | Eike Stepper <stepper@esc-net.de> | Wed Mar 09 17:19:05 2022 +0100 |
committer | Eike Stepper <stepper@esc-net.de> | Wed Mar 09 17:19:05 2022 +0100 |
tree | 544a7f3229231568e0d4c31bed65f046d09a6ccb | |
parent | 4d11f17d3f9a9f8df4f39fec01f948cb5d44dbba [diff] |
[579165] IndexOutOfBoundsException in CDOObjectImpl.forAllMapAttributes() https://bugs.eclipse.org/bugs/show_bug.cgi?id=579165
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java index 993b59e..34ac312 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
@@ -459,13 +459,15 @@ if (eSettings != null) { InternalCDOClassInfo classInfo = cdoClassInfo(); + EClass eClass = classInfo.getEClass(); + EStructuralFeature[] persistentMapFeatures = classInfo.getAllPersistentMapFeatures(); int length = persistentMapFeatures.length; for (int i = 0; i < length; i++) { EStructuralFeature feature = persistentMapFeatures[i]; - int featureID = feature.getFeatureID(); + int featureID = eClass.getFeatureID(feature); int index = classInfo.getSettingsFeatureIndex(featureID); CDOStoreEcoreEMap map = (CDOStoreEcoreEMap)eSettings[index];