From b5ecab31f5550ca4b8f6288afe697fc731557155 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Thu, 18 Jun 2020 22:12:15 +0200 Subject: [PATCH] Load script configuration under read action - avoid possible exception --- .../loader/DefaultScriptConfigurationLoader.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/DefaultScriptConfigurationLoader.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/DefaultScriptConfigurationLoader.kt index f9c9a98157b..31447583777 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/DefaultScriptConfigurationLoader.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/configuration/loader/DefaultScriptConfigurationLoader.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.idea.core.script.settings.KotlinScriptingSettings import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.scripting.definitions.KotlinScriptDefinition import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition +import org.jetbrains.kotlin.scripting.definitions.runReadAction import org.jetbrains.kotlin.scripting.resolve.KtFileScriptSource import org.jetbrains.kotlin.scripting.resolve.LegacyResolverWrapper import org.jetbrains.kotlin.scripting.resolve.refineScriptCompilationConfiguration @@ -60,9 +61,11 @@ open class DefaultScriptConfigurationLoader(val project: Project) : ScriptConfig val inputs = getInputsStamp(vFile, file) val scriptingApiResult = try { - refineScriptCompilationConfiguration( - KtFileScriptSource(file), scriptDefinition, file.project - ) + runReadAction { + refineScriptCompilationConfiguration( + KtFileScriptSource(file), scriptDefinition, file.project + ) + } } catch (e: Throwable) { if (e is ControlFlowException) throw e