From 23e79bb32ba0b83a04aabfd09a5d7a18a00e43d5 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Fri, 16 Aug 2019 16:54:50 +0700 Subject: [PATCH] ScriptDefinitionsManager: `safeGetDefinitions` shouldn't catch `ControlFlowException` #EA-210332 Fixed --- .../kotlin/idea/core/script/ScriptDefinitionsManager.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt index 493adefedb6..06fb97aa6c4 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDefinitionsManager.kt @@ -24,6 +24,7 @@ import com.intellij.ide.scratch.ScratchRootType import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.application.runWriteAction import com.intellij.openapi.components.ServiceManager +import com.intellij.openapi.diagnostic.ControlFlowException import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.extensions.Extensions @@ -203,6 +204,7 @@ class ScriptDefinitionsManager(private val project: Project) : LazyScriptDefinit if (!failedContributorsHashes.contains(this@safeGetDefinitions.hashCode())) try { return definitions.toList() } catch (t: Throwable) { + if (t is ControlFlowException) throw t // reporting failed loading only once LOG.error("[kts] cannot load script definitions using $this", t) failedContributorsHashes.add(this@safeGetDefinitions.hashCode())