From abfda50077d1c8670275224de6b5fbc2b52e28fe Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Sun, 1 May 2016 11:29:03 +0200 Subject: [PATCH] Workaround URISyntaxException in tests on windows + JDK 6 --- .../kotlin/scripts/TestScriptDefinitions.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/compiler/tests-common/org/jetbrains/kotlin/scripts/TestScriptDefinitions.kt b/compiler/tests-common/org/jetbrains/kotlin/scripts/TestScriptDefinitions.kt index 5761535ac13..d7a5d8da816 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/scripts/TestScriptDefinitions.kt +++ b/compiler/tests-common/org/jetbrains/kotlin/scripts/TestScriptDefinitions.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.psi.KtScript import org.jetbrains.kotlin.script.* import org.jetbrains.kotlin.types.KotlinType import java.io.File +import java.net.URL import java.net.URLClassLoader import kotlin.reflect.KClass @@ -80,8 +81,17 @@ fun classpathFromProperty(): List = .map { File(it).canonicalPath } } ?: emptyList() +private fun URL.toFile() = + try { + File(toURI().schemeSpecificPart) + } + catch (e: java.net.URISyntaxException) { + if (protocol != "file") null + else File(file) + } + fun classpathFromClassloader(classLoader: ClassLoader): List = (classLoader as? URLClassLoader)?.urLs - ?.map { File(it.toURI()).canonicalPath } + ?.mapNotNull { it.toFile()?.canonicalPath } ?: emptyList()