Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java18
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()

Back to the top