diff --git a/src/main/java/org/jastadd/tooling/java/GeneratedCodeUtil.java b/src/main/java/org/jastadd/tooling/java/GeneratedCodeUtil.java
index d8ca85db4d0d7b6fd3a60a77d6eece5cdef36191..b4c84ddd616cb2bdf4018508026dc03d0f97571e 100644
--- a/src/main/java/org/jastadd/tooling/java/GeneratedCodeUtil.java
+++ b/src/main/java/org/jastadd/tooling/java/GeneratedCodeUtil.java
@@ -1,10 +1,13 @@
 package org.jastadd.tooling.java;
 
+import com.intellij.openapi.application.ApplicationManager;
+import com.intellij.openapi.application.ex.ApplicationEx;
 import com.intellij.openapi.editor.Document;
 import com.intellij.openapi.fileEditor.FileDocumentManager;
 import com.intellij.openapi.vfs.LocalFileSystem;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.psi.PsiElement;
+import com.intellij.util.ui.EDT;
 import org.jetbrains.annotations.NotNull;
 
 import java.nio.file.Paths;
@@ -33,8 +36,11 @@ public class GeneratedCodeUtil {
     }
 
     String path = jastAddFileLocation.substring(0, pos);
-    System.out.println(path);
-    VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(path);
+    // the method performing the refresh is not allowed when the following condition is not met
+    // see com.intellij.openapi.vfs.newvfs.RefreshQueueImpl:execute
+    VirtualFile vFile = ((ApplicationEx) ApplicationManager.getApplication()).holdsReadLock() || EDT.isCurrentThreadEdt()
+      ? LocalFileSystem.getInstance().findFileByPath(path)
+      : LocalFileSystem.getInstance().refreshAndFindFileByPath(path);
 
     int line;
     try {
@@ -45,7 +51,6 @@ public class GeneratedCodeUtil {
     if (vFile == null) {
       return Paths.get(path).getFileName() + (line == 0 ? "" : ":" + line);
     }
-    System.out.println(line);
 
     Document document = FileDocumentManager.getInstance().getDocument(vFile);
     if (document == null) {