From 1a35d01fe152d3468a90c04354460fe013a423c1 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Tue, 19 Sep 2023 12:34:05 +0200 Subject: [PATCH] [Gradle] Fix possible CME in sourceSetsMetadataOutputs Iterating over source sets and waiting for compilation wasn't safe. Because compilation upon configuration were able to add more source sets. Awaiting source sets first should solve the issue. ^KT-61652 Verification Pending --- .../kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt index f3e432aa1cc..029727ae8b6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt @@ -64,9 +64,7 @@ internal suspend fun Project.collectSourceSetMetadataOutputs(): Map { - KotlinPluginLifecycle.Stage.AfterFinaliseDsl.await() - - return sourceSets.associateWith { sourceSet -> + return awaitSourceSets().associateWith { sourceSet -> when (val compilation = project.findMetadataCompilation(sourceSet)) { null -> null is KotlinCommonCompilation -> compilation.output.classesDirs