Set context classloader before REPL evaluation

#KT-35925 fixed
This commit is contained in:
Ilya Chernikov
2020-08-17 19:16:49 +02:00
parent d0366d3bcb
commit f713e8ad36
@@ -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))