diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/internal/efs/CDOWorkspaceStore.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/internal/efs/CDOWorkspaceStore.java | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/internal/efs/CDOWorkspaceStore.java b/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/internal/efs/CDOWorkspaceStore.java index 20445218d3..b426195c93 100644 --- a/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/internal/efs/CDOWorkspaceStore.java +++ b/plugins/org.eclipse.emf.cdo.workspace.efs/src/org/eclipse/emf/cdo/workspace/internal/efs/CDOWorkspaceStore.java @@ -397,21 +397,23 @@ public final class CDOWorkspaceStore extends AbstractResourceNodeStore else { // Single-valued cross reference - CDOObject cdoValue; - - org.eclipse.emf.common.util.URI eProxyURI = ((InternalEObject)xmiValue).eProxyURI(); - if (eProxyURI != null) + CDOObject cdoValue = null; + if (xmiValue != null) { - String href = eProxyURI.fragment(); - cdoValue = getCDOObjectByHREF(href); - if (cdoValue == null) + org.eclipse.emf.common.util.URI eProxyURI = ((InternalEObject)xmiValue).eProxyURI(); + if (eProxyURI != null) { - registerForwardReference(cdoObject, reference, -1, href); + String href = eProxyURI.fragment(); + cdoValue = getCDOObjectByHREF(href); + if (cdoValue == null) + { + registerForwardReference(cdoObject, reference, -1, href); + } + } + else + { + cdoValue = getCDOObjectByXMIID((EObject)xmiValue); } - } - else - { - cdoValue = getCDOObjectByXMIID((EObject)xmiValue); } cdoObject.eSet(reference, cdoValue); |