Set context classloader before REPL evaluation
#KT-35925 fixed
This commit is contained in:
+4
@@ -89,6 +89,9 @@ open class GenericReplEvaluator(
|
|||||||
|
|
||||||
historyActor.addPlaceholder(compileResult.lineId, EvalClassWithInstanceAndLoader(scriptClass.kotlin, null, classLoader, invokeWrapper))
|
historyActor.addPlaceholder(compileResult.lineId, EvalClassWithInstanceAndLoader(scriptClass.kotlin, null, classLoader, invokeWrapper))
|
||||||
|
|
||||||
|
val savedClassLoader = Thread.currentThread().contextClassLoader
|
||||||
|
Thread.currentThread().contextClassLoader = classLoader
|
||||||
|
|
||||||
val scriptInstance =
|
val scriptInstance =
|
||||||
try {
|
try {
|
||||||
if (invokeWrapper != null) invokeWrapper.invoke { scriptInstanceConstructor.newInstance(*constructorArgs) }
|
if (invokeWrapper != null) invokeWrapper.invoke { scriptInstanceConstructor.newInstance(*constructorArgs) }
|
||||||
@@ -104,6 +107,7 @@ open class GenericReplEvaluator(
|
|||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
historyActor.removePlaceholder(compileResult.lineId)
|
historyActor.removePlaceholder(compileResult.lineId)
|
||||||
|
Thread.currentThread().contextClassLoader = savedClassLoader
|
||||||
}
|
}
|
||||||
|
|
||||||
historyActor.addFinal(compileResult.lineId, EvalClassWithInstanceAndLoader(scriptClass.kotlin, scriptInstance, classLoader, invokeWrapper))
|
historyActor.addFinal(compileResult.lineId, EvalClassWithInstanceAndLoader(scriptClass.kotlin, scriptInstance, classLoader, invokeWrapper))
|
||||||
|
|||||||
Reference in New Issue
Block a user