diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ClassPathTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ClassPathTest.kt index 71ddb0fa23a..fa075374a81 100644 --- a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ClassPathTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ClassPathTest.kt @@ -52,7 +52,7 @@ class ClassPathTest : TestCase() { + jar.toURI().toURL()).toTypedArray(), null ) - val cp = cl.classPathFromTypicalResourceUrls().toList() + val cp = cl.classPathFromTypicalResourceUrls().toList().map { it.canonicalFile } Assert.assertTrue(cp.contains(jar.canonicalFile)) for (el in emulatedClasspath) { diff --git a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/impl/pathUtil.kt b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/impl/pathUtil.kt index 998f3993ad2..d33988f1182 100644 --- a/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/impl/pathUtil.kt +++ b/libraries/scripting/jvm/src/kotlin/script/experimental/jvm/impl/pathUtil.kt @@ -94,10 +94,14 @@ fun tryGetResourcePathForClassByName(name: String, classLoader: ClassLoader): Fi internal fun URL.toFileOrNull() = try { - File(toURI().schemeSpecificPart).canonicalFile + File(toURI()) + } catch (e: IllegalArgumentException) { + null } catch (e: java.net.URISyntaxException) { + null + } ?: run { if (protocol != "file") null - else File(file).canonicalFile + else File(file) } internal fun URL.toContainingJarOrNull(): File? =