From 5745a1624b9ed52c84c8abfb49ed9831c83f03b4 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 23 Dec 2014 19:22:12 +0300 Subject: [PATCH] Take read action instead of simply asserting it --- .../lang/resolve/kotlin/KotlinBinaryClassCache.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/kotlin/KotlinBinaryClassCache.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/kotlin/KotlinBinaryClassCache.java index e4f69ba299b..7d95255e7fe 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/kotlin/KotlinBinaryClassCache.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/kotlin/KotlinBinaryClassCache.java @@ -20,6 +20,7 @@ import com.intellij.ide.highlighter.JavaClassFileType; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.util.Computable; import com.intellij.openapi.vfs.VirtualFile; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -48,7 +49,7 @@ public final class KotlinBinaryClassCache implements Disposable { }; @Nullable - public static KotlinJvmBinaryClass getKotlinBinaryClass(@NotNull VirtualFile file) { + public static KotlinJvmBinaryClass getKotlinBinaryClass(@NotNull final VirtualFile file) { if (file.getFileType() != JavaClassFileType.INSTANCE) return null; KotlinBinaryClassCache service = ServiceManager.getService(KotlinBinaryClassCache.class); @@ -58,10 +59,14 @@ public final class KotlinBinaryClassCache implements Disposable { return requestCache.virtualFileKotlinClass; } else { - ApplicationManager.getApplication().assertReadAccessAllowed(); + VirtualFileKotlinClass aClass = ApplicationManager.getApplication().runReadAction(new Computable() { + @Override + public VirtualFileKotlinClass compute() { + //noinspection deprecation + return VirtualFileKotlinClass.OBJECT$.create(file); + } + }); - //noinspection deprecation - VirtualFileKotlinClass aClass = VirtualFileKotlinClass.OBJECT$.create(file); return requestCache.cache(file, aClass); } }