Skip to content
Snippets Groups Projects
Commit a944a191 authored by Johannes Mey's avatar Johannes Mey
Browse files

Merge branch 'bugfix/forbidden-refresh-in-path-resolution' into 'develop'

Resolve "IDE Exception"

Closes #11

See merge request !7
parents 963324b2 612d6bf5
No related branches found
No related tags found
1 merge request!7Resolve "IDE Exception"
Pipeline #12026 passed
package org.jastadd.tooling.java; 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.editor.Document;
import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.util.ui.EDT;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.nio.file.Paths; import java.nio.file.Paths;
...@@ -33,8 +36,11 @@ public class GeneratedCodeUtil { ...@@ -33,8 +36,11 @@ public class GeneratedCodeUtil {
} }
String path = jastAddFileLocation.substring(0, pos); String path = jastAddFileLocation.substring(0, pos);
System.out.println(path); // the method performing the refresh is not allowed when the following condition is not met
VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByPath(path); // 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; int line;
try { try {
...@@ -45,7 +51,6 @@ public class GeneratedCodeUtil { ...@@ -45,7 +51,6 @@ public class GeneratedCodeUtil {
if (vFile == null) { if (vFile == null) {
return Paths.get(path).getFileName() + (line == 0 ? "" : ":" + line); return Paths.get(path).getFileName() + (line == 0 ? "" : ":" + line);
} }
System.out.println(line);
Document document = FileDocumentManager.getInstance().getDocument(vFile); Document document = FileDocumentManager.getInstance().getDocument(vFile);
if (document == null) { if (document == null) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment