diff --git a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingResourceStorageLoadable.java b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingResourceStorageLoadable.java index 04efeaf6e..5c9573731 100644 --- a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingResourceStorageLoadable.java +++ b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/DirectLinkingResourceStorageLoadable.java @@ -37,6 +37,7 @@ import org.eclipse.xtext.nodemodel.impl.SerializableNodeModel; import org.eclipse.xtext.nodemodel.serialization.DeserializationConversionContext; import org.eclipse.xtext.parser.ParseResult; +import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.resource.persistence.ResourceStorageLoadable; import org.eclipse.xtext.resource.persistence.StorageAwareResource; @@ -322,7 +323,8 @@ private void addFakeModel(final StorageAwareResource resource) { protected void readNodeModel(final StorageAwareResource resource, final InputStream inputStream, final String content) throws IOException { DeserializationConversionContext deserializationContext = new ProxyAwareDeserializationConversionContext(resource, content); DataInputStream dataIn = new DataInputStream(inputStream); - SerializableNodeModel serializableNodeModel = new SerializableNodeModel(resource); + // use empty resource here so that we can leave the proxy node in place right up until the loaded model is set below. + SerializableNodeModel serializableNodeModel = new SerializableNodeModel(new XtextResource()); serializableNodeModel.readObjectData(dataIn, deserializationContext); resource.setParseResult(new ParseResult(resource.getContents().get(0), serializableNodeModel.root, deserializationContext.hasErrors())); } diff --git a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/ProxyCompositeNode.java b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/ProxyCompositeNode.java index 92428e94d..d1d0b5699 100644 --- a/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/ProxyCompositeNode.java +++ b/com.avaloq.tools.ddk.xtext/src/com/avaloq/tools/ddk/xtext/resource/persistence/ProxyCompositeNode.java @@ -118,10 +118,6 @@ static List uninstallProxyNodeModel(final Resource resource) { result = proxyNode.idToEObjectMap; } } - - if (resource instanceof XtextResource) { - ((XtextResource) resource).setParseResult(null); - } return result; }