From 7fbfad814ec8924ad5fa64ff97b14b87ae4492bb Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Mon, 8 Oct 2018 17:39:19 +0200 Subject: [PATCH] Fix default host configuration property - make it not shared: Shared instance is incorrect here and causes clashes when many definitions are loaded in the same process. Also make the diagnostics in case of clashes more verbose. --- .../experimental/jvm/jvmScriptingHostConfiguration.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptingHostConfiguration.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptingHostConfiguration.kt index 8f0f2290713..c63fc4b0456 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptingHostConfiguration.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/jvmScriptingHostConfiguration.kt @@ -25,9 +25,10 @@ val JvmScriptingHostConfigurationKeys.javaHome by PropertiesCollection.key val ScriptingHostConfigurationKeys.jvm get() = JvmScriptingHostConfigurationBuilder() -val defaultJvmScriptingHostConfiguration = ScriptingHostConfiguration { - getScriptingClass(JvmGetScriptingClass()) -} +val defaultJvmScriptingHostConfiguration + get() = ScriptingHostConfiguration { + getScriptingClass(JvmGetScriptingClass()) + } class JvmGetScriptingClass : GetScriptingClass { @@ -52,7 +53,9 @@ class JvmGetScriptingClass : GetScriptingClass { if (dependencies == null) { dependencies = newDeps } else { - if (newDeps != dependencies) throw IllegalArgumentException("scripting configuration dependencies changed") + if (newDeps != dependencies) throw IllegalArgumentException( + "scripting configuration dependencies changed:\nold: ${dependencies?.joinToString { (it as? JvmDependency)?.classpath.toString() }}\nnew: ${newDeps?.joinToString { (it as? JvmDependency)?.classpath.toString() }}" + ) } if (!baseClassLoaderIsInitialized) {