From b83a490034fcd495ef216653266e27d2127f428c Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Thu, 16 Feb 2023 10:21:55 +0100 Subject: [PATCH] [Gradle] MppDependencyProjectStructureMetadataExtractorFactory: Cache on rootProject... Because composite builds might have isolated classloaders, therefore caching the MppDependencyProjectStructureMetadataExtractorFactory on a compositeBuildRoot will lead to ClassCastExceptions ^KT-56712 Verification Pending --- .../MppDependencyProjectStructureMetadataExtractorFactory.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractorFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractorFactory.kt index 28c9ef2c78c..b12e32b69cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractorFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractorFactory.kt @@ -11,7 +11,6 @@ import org.gradle.api.artifacts.result.ResolvedArtifactResult import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull import org.jetbrains.kotlin.gradle.plugin.extraProperties import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toSingleKpmModuleIdentifier -import org.jetbrains.kotlin.gradle.utils.compositeBuildRootProject import org.jetbrains.kotlin.gradle.utils.getOrPut internal val Project.kotlinMppDependencyProjectStructureMetadataExtractorFactory: MppDependencyProjectStructureMetadataExtractorFactory @@ -58,7 +57,7 @@ private constructor( companion object { private val extensionName = MppDependencyProjectStructureMetadataExtractorFactory::class.java.simpleName fun getOrCreate(project: Project): MppDependencyProjectStructureMetadataExtractorFactory = - project.compositeBuildRootProject.extraProperties.getOrPut(extensionName) { + project.rootProject.extraProperties.getOrPut(extensionName) { MppDependencyProjectStructureMetadataExtractorFactory( lazy { GlobalProjectStructureMetadataStorage.getProjectStructureMetadataProvidersFromAllGradleBuilds(project) }, collectAllProjectStructureMetadataInCurrentBuild(project)