From f713e8ad367ac2ecb07f699b66f62f452eee13bd Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Mon, 17 Aug 2020 19:16:49 +0200 Subject: [PATCH] Set context classloader before REPL evaluation #KT-35925 fixed --- .../jetbrains/kotlin/cli/common/repl/GenericReplEvaluator.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/repl/GenericReplEvaluator.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/repl/GenericReplEvaluator.kt index aef8fd0526f..6fab8e51296 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/repl/GenericReplEvaluator.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/repl/GenericReplEvaluator.kt @@ -89,6 +89,9 @@ open class GenericReplEvaluator( historyActor.addPlaceholder(compileResult.lineId, EvalClassWithInstanceAndLoader(scriptClass.kotlin, null, classLoader, invokeWrapper)) + val savedClassLoader = Thread.currentThread().contextClassLoader + Thread.currentThread().contextClassLoader = classLoader + val scriptInstance = try { if (invokeWrapper != null) invokeWrapper.invoke { scriptInstanceConstructor.newInstance(*constructorArgs) } @@ -104,6 +107,7 @@ open class GenericReplEvaluator( } finally { historyActor.removePlaceholder(compileResult.lineId) + Thread.currentThread().contextClassLoader = savedClassLoader } historyActor.addFinal(compileResult.lineId, EvalClassWithInstanceAndLoader(scriptClass.kotlin, scriptInstance, classLoader, invokeWrapper))