From f59acb4f4a7db8162a8ce36d88fdff9c4613d222 Mon Sep 17 00:00:00 2001
From: Simon Barner <barner@fortiss.org>
Date: Fri, 22 Oct 2021 15:50:48 +0200
Subject: [PATCH] Refresh kernel model resource right before writing the
 contents to disk

Issue-Ref: 4166
Issue-Url: https://git.fortiss.org/af3/af3/-/issues/4166

Signed-off-by: Simon Barner <barner@fortiss.org>
---
 .../fortiss/tooling/kernel/internal/storage/eclipse/.ratings    | 2 +-
 .../tooling/kernel/internal/storage/eclipse/ModelContext.java   | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings
index 55afedee4..7194108f3 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/.ratings
@@ -1,5 +1,5 @@
 AutoUndoCommandStack.java fc326adf66c6cea2354884cdc240da5f2f82689a GREEN
 EMFTransactionalCommand.java ba4b5bead9768b6ce6c955b9238cd96cb722533c GREEN
 EclipseResourceStorageService.java e917c822c53eacada70188e66215d91241a29a5c GREEN
-ModelContext.java efa60d240cd7bd8900685c35afcc87f56e6995fb GREEN
+ModelContext.java 76eeaef7f56da5f0e288cf96792850be606b7757 YELLOW
 NonDirtyingEMFTransactionalCommand.java d288ebe35d22442c603496b0c917fb99a8febeea GREEN
diff --git a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
index efa60d240..76eeaef7f 100644
--- a/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
+++ b/org.fortiss.tooling.kernel/src/org/fortiss/tooling/kernel/internal/storage/eclipse/ModelContext.java
@@ -16,6 +16,7 @@
 package org.fortiss.tooling.kernel.internal.storage.eclipse;
 
 import static java.lang.Math.max;
+import static org.eclipse.core.resources.IResource.DEPTH_ZERO;
 import static org.eclipse.emf.common.util.URI.createPlatformResourceURI;
 import static org.fortiss.tooling.kernel.utils.EMFResourceUtils.buildOptionsMap;
 import static org.fortiss.tooling.kernel.utils.LoggingUtils.error;
@@ -316,6 +317,7 @@ class ModelContext implements ITopLevelElement, CommandStackListener {
 			try {
 				// Step 3: write file content to disk (for resource managed by kernel)
 				ByteArrayInputStream stream = new ByteArrayInputStream(bytes.toByteArray());
+				file.refreshLocal(DEPTH_ZERO, monitor);
 				file.setContents(stream, false, true, monitor);
 			} catch(CoreException e) {
 				if(exception == null) {
-- 
GitLab