From 75b860ab95af3bc659495ff992e5f38792305270 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 20 Jun 2016 18:20:21 +0200 Subject: [PATCH] handle IOException from File.getCanonicalFile() (EA-83981 - NA: KotlinToJVMBytecodeCompiler.reportRuntimeConflicts) (cherry picked from commit 765bd44) --- .../cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index 9f7266a724f..9414cbc8e8e 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -57,6 +57,7 @@ import org.jetbrains.kotlin.utils.KotlinPaths import org.jetbrains.kotlin.utils.PathUtil import org.jetbrains.kotlin.utils.newLinkedHashMapWithExpectedSize import java.io.File +import java.io.IOException import java.lang.reflect.Constructor import java.lang.reflect.InvocationTargetException import java.net.URLClassLoader @@ -487,7 +488,14 @@ object KotlinToJVMBytecodeCompiler { return if (versionIndex >= 0) substring(0, versionIndex) else this } - val runtimes = jvmClasspathRoots.map { it.canonicalFile }.filter { it.name == PathUtil.KOTLIN_JAVA_RUNTIME_JAR && it.exists() } + val runtimes = jvmClasspathRoots.map { + try { + it.canonicalFile + } + catch (e: IOException) { + it + } + }.filter { it.name == PathUtil.KOTLIN_JAVA_RUNTIME_JAR && it.exists() } val runtimeVersions = runtimes.map { JarUtil.getJarAttribute(it, Attributes.Name.IMPLEMENTATION_VERSION).orEmpty().removeIdeaVersionSuffix()