From 4045bf48c8cce170bca1f3f3b3cf430ed4392964 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Mon, 1 Oct 2018 16:43:26 +0300 Subject: [PATCH] Filter java.endorsed.dirs in compiler runner (#2155) --- .../kotlin/gradle/plugin/konan/KonanToolRunner.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt index 89469a3788f..1974b76e5ca 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/konan/KonanToolRunner.kt @@ -51,6 +51,9 @@ internal abstract class KonanCliRunner( } ?: emptyList() } + protected val blacklistProperties: Set = + setOf("java.endorsed.dirs") + override val classpath: FileCollection = project.fileTree("${project.konanHome}/konan/lib/") .apply { include("*.jar") } @@ -73,7 +76,7 @@ internal abstract class KonanCliRunner( private fun String.escapeQuotes() = replace("\"", "\\\"") - private fun List>.escapeQuotesForWindows() = + private fun Sequence>.escapeQuotesForWindows() = if (HostManager.hostIsMingw) { map { (key, value) -> key.escapeQuotes() to value.escapeQuotes() } } else { @@ -86,7 +89,7 @@ internal abstract class KonanCliRunner( project.logger.info("Run tool: $toolName with args: ${args.joinToString(separator = " ")}") if (classpath.isEmpty) { throw IllegalStateException("Classpath of the tool is empty: $toolName\n" + - "Probably the 'konan.home' project property contains an incorrect path.\n" + + "Probably the '${KonanPlugin.ProjectProperty.KONAN_HOME}' project property contains an incorrect path.\n" + "Please change it to the compiler root directory and rerun the build.") } @@ -95,8 +98,9 @@ internal abstract class KonanCliRunner( spec.classpath = classpath spec.jvmArgs(jvmArgs) spec.systemProperties( - System.getProperties() + System.getProperties().asSequence() .map { (k, v) -> k.toString() to v.toString() } + .filter { (k, _) -> k !in blacklistProperties } .escapeQuotesForWindows() .toMap() )