From bcd3921bae5ab79ae779b61935d37b81eb267166 Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Tue, 23 Jun 2020 15:25:48 +0300 Subject: [PATCH] Fix freeze during loading script configurations through legacy scripting API Do not wrap the whole configuration loading process into readAction ^KT-39771 Fixed --- .../loader/DefaultScriptConfigurationLoader.kt | 8 +++----- .../scripting/resolve/refineCompilationConfiguration.kt | 6 ++++-- 2 files changed, 7 insertions(+), 7 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 31447583777..e1443c00a98 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 @@ -61,11 +61,9 @@ open class DefaultScriptConfigurationLoader(val project: Project) : ScriptConfig val inputs = getInputsStamp(vFile, file) val scriptingApiResult = try { - runReadAction { - refineScriptCompilationConfiguration( - KtFileScriptSource(file), scriptDefinition, file.project - ) - } + refineScriptCompilationConfiguration( + KtFileScriptSource(file), scriptDefinition, file.project + ) } catch (e: Throwable) { if (e is ControlFlowException) throw e diff --git a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/resolve/refineCompilationConfiguration.kt b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/resolve/refineCompilationConfiguration.kt index 79de1d2d2a5..8e09af1a06a 100644 --- a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/resolve/refineCompilationConfiguration.kt +++ b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/resolve/refineCompilationConfiguration.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffset 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.withCorrectExtension import java.io.File import java.net.URL @@ -228,8 +229,9 @@ fun refineScriptCompilationConfiguration( if (legacyDefinition == null) { val compilationConfiguration = definition.compilationConfiguration val collectedData = - getScriptCollectedData(ktFileSource.ktFile, compilationConfiguration, project, definition.contextClassLoader) - + runReadAction { + getScriptCollectedData(ktFileSource.ktFile, compilationConfiguration, project, definition.contextClassLoader) + } return compilationConfiguration.refineOnAnnotations(script, collectedData) .onSuccess { it.refineBeforeCompiling(script, collectedData)