Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2009-10-21 11:34:45 -0400
committerEike Stepper2009-10-21 11:34:45 -0400
commit51e72579fc8a91d804806cb85c46e3d56720b917 (patch)
treeb4b7e9b5bc88dda7e2b127205bb48a16d25ec557 /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util
parent87d984af66eff82d346b9a8047e77fc1ddde0143 (diff)
downloadcdo-51e72579fc8a91d804806cb85c46e3d56720b917.tar.gz
cdo-51e72579fc8a91d804806cb85c46e3d56720b917.tar.xz
cdo-51e72579fc8a91d804806cb85c46e3d56720b917.zip
[289932] Objects that are contained by a transient feature could be persisted
https://bugs.eclipse.org/bugs/show_bug.cgi?id=289932
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java
index 421319aec8..64752a777f 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/util/FSMUtil.java
@@ -33,6 +33,7 @@ import org.eclipse.emf.ecore.EGenericType;
import org.eclipse.emf.ecore.EModelElement;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.DynamicEObjectImpl;
@@ -270,7 +271,9 @@ public final class FSMUtil
{
InternalEObject eObject = (InternalEObject)delegate.next();
- if (isResource || eObject.eDirectResource() == null)
+ EStructuralFeature eContainingFeature = eObject.eContainingFeature();
+ if (isResource || eObject.eDirectResource() == null
+ && (eContainingFeature == null || !eContainingFeature.isTransient()))
{
next = adapt(eObject, cdoView);
if (next instanceof InternalCDOObject)

Back to the top