diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java | 37 |
1 files changed, 28 insertions, 9 deletions
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 322b86f187..d684bac29b 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 @@ -131,7 +131,7 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements CDOObject { if (this instanceof CDOResourceImpl) { - ((CDOResourceImpl)this).cdoSetAdapter(adapter); + ((CDOResourceImpl)this).cdoSetView(adapter); } } @@ -263,7 +263,10 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements CDOObject revision.set(cdoFeature, 0, setting); } - eSettings[i] = null; + if (eSettings != null) + { + eSettings[i] = null; + } } public CDORevisionImpl copyRevision() @@ -301,6 +304,11 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements CDOObject { if (cdoTransient()) { + if (eSettings == null) + { + return null; + } + return eSettings[dynamicFeatureID]; } @@ -313,6 +321,11 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements CDOObject if (cdoTransient()) { // TODO What about defaultValues != null? + if (eSettings == null) + { + return false; + } + return eSettings[eDynamicFeatureID(feature)] != null; } @@ -324,11 +337,13 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements CDOObject { if (cdoTransient()) { + eSettings(); // Important to create eSettings array if necessary eSettings[dynamicFeatureID] = value; - return; } - - super.dynamicSet(dynamicFeatureID, value); + else + { + super.dynamicSet(dynamicFeatureID, value); + } } @Override @@ -336,11 +351,15 @@ public class CDOObjectImpl extends EStoreEObjectImpl implements CDOObject { if (cdoTransient()) { - eSettings[dynamicFeatureID] = null; - return; + if (eSettings != null) + { + eSettings[dynamicFeatureID] = null; + } + } + else + { + super.dynamicUnset(dynamicFeatureID); } - - super.dynamicUnset(dynamicFeatureID); } @Override |