diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java index 374194b7f7..62ec57d5dd 100644 --- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java +++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java @@ -369,14 +369,22 @@ public abstract class CDOLegacyWrapper extends CDOObjectWrapper public void cdoInternalPostInvalidate() { - if (cdoState() != CDOState.CLEAN) + if (cdoState() != CDOState.PROXY) { - InternalCDORevision revision = cdoView().getRevision(cdoID(), true); - cdoInternalSetRevision(revision); + throw new IllegalStateException(); } - revisionToInstance(); - cdoInternalSetState(CDOState.CLEAN); + InternalCDORevision revision = cdoView().getRevision(cdoID(), true); + if (revision == null) + { + cdoInternalPostDetach(true); + } + else + { + cdoInternalSetRevision(revision); + revisionToInstance(); + cdoInternalSetState(CDOState.CLEAN); + } } protected void instanceToRevision() |