From ea255135a40a18ce9317a926a6e4c1a262b38167 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Thu, 5 Jan 2023 11:27:26 +0100 Subject: [PATCH] Scripting: avoid CME in maven resolving in IDE scenarios combination of laziness in AetherResolveSession and possibly async-modifiable repos collection in MavenDependenciesResolver may lead to the CME. #KT-54733 fixed --- .../dependencies/maven/MavenDependenciesResolver.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/scripting/dependencies-maven/src/kotlin/script/experimental/dependencies/maven/MavenDependenciesResolver.kt b/libraries/scripting/dependencies-maven/src/kotlin/script/experimental/dependencies/maven/MavenDependenciesResolver.kt index b8cae982544..90cf09be4cb 100644 --- a/libraries/scripting/dependencies-maven/src/kotlin/script/experimental/dependencies/maven/MavenDependenciesResolver.kt +++ b/libraries/scripting/dependencies-maven/src/kotlin/script/experimental/dependencies/maven/MavenDependenciesResolver.kt @@ -43,7 +43,7 @@ class MavenDependenciesResolver : ExternalDependenciesResolver { val repos: ArrayList = arrayListOf() - private fun remoteRepositories() = if (repos.isEmpty()) arrayListOf(mavenCentral) else repos + private fun remoteRepositories() = if (repos.isEmpty()) arrayListOf(mavenCentral) else repos.toList() // copy to avoid sharing problems private fun String.toMavenArtifact(): DefaultArtifact? = if (this.isNotBlank() && this.count { it == ':' } >= 2) DefaultArtifact(this)