diff --git a/CHANGELOG.md b/CHANGELOG.md index d89fc21a5..ca7c5cb2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Current SNAPSHOT. - __[FIX]__ Issue #54: AbstractDirectWrite.toArray is not efficient - __[FIX]__ Issue #55: DefaultPersistentEObject.eContainer is not efficient - __[FIX]__ Issue #56: Unnecessary backend lookups in Store.eObject(Id) +- __[FIX]__ Issue #68: Creating contained objects with Epsilon does not work ### Back-ends - __[NEW]__ Merge common code from MapDB & BerkeleyDB in Map module diff --git a/neoemf-core/src/main/java/fr/inria/atlanmod/neoemf/core/DefaultPersistentEObject.java b/neoemf-core/src/main/java/fr/inria/atlanmod/neoemf/core/DefaultPersistentEObject.java index 109d56900..8e196f03f 100644 --- a/neoemf-core/src/main/java/fr/inria/atlanmod/neoemf/core/DefaultPersistentEObject.java +++ b/neoemf-core/src/main/java/fr/inria/atlanmod/neoemf/core/DefaultPersistentEObject.java @@ -16,6 +16,7 @@ import fr.inria.atlanmod.neoemf.data.store.PersistentStore; import fr.inria.atlanmod.neoemf.resource.PersistentResource; import fr.inria.atlanmod.neoemf.util.NeoEContentsEList; +import fr.inria.atlanmod.neoemf.util.logging.NeoLogger; import org.eclipse.emf.common.util.BasicEMap; import org.eclipse.emf.common.util.EList; @@ -231,7 +232,7 @@ else if (nonNull(eStaticClass())) { } return sb.toString(); } - + @Override protected void eBasicSetContainer(InternalEObject eContainer) { this.eContainer = eContainer; @@ -345,8 +346,14 @@ public void dynamicUnset(int dynamicFeatureId) { */ @Override public InternalEObject eInternalContainer() { - // Do not load the container from the store here: it creates an important overhead and performance loss - return isNull(eContainer) ? super.eInternalContainer() : eContainer; + /* + * Don't load the container from the store here: it creates an important + * overhead and performance loss. + * [Update 21-02-2017] don't call super.eInternalContainer() either: it + * will delegate to the store. + */ + return eContainer; +// return isNull(eContainer) ? super.eInternalContainer() : eContainer; } @Override