From 7ad371b21551858aa6597226dffbca39163ed50b Mon Sep 17 00:00:00 2001 From: "Nataliya.Valtman" Date: Thu, 15 Feb 2024 12:55:40 +0100 Subject: [PATCH] Fix ConcurrencyModification exception in KotlinBuildStatsBeanService #KT-65825 Fixed --- .../kotlin/gradle/plugin/statistics/BuildFusService.kt | 2 +- .../gradle/plugin/statistics/KotlinBuildStatsBeanService.kt | 2 ++ .../kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt | 6 ++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/BuildFusService.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/BuildFusService.kt index 1392b4b8587..da764c232a4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/BuildFusService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/BuildFusService.kt @@ -165,6 +165,7 @@ abstract class BuildFusService : BuildService, AutoC if (!parameters.useBuildFinishFlowAction.get()) { recordBuildFinished(buildFailed) } + KotlinBuildStatsBeanService.closeServices() log.kotlinDebug("Close ${this.javaClass.simpleName}") } @@ -176,7 +177,6 @@ abstract class BuildFusService : BuildService, AutoC loggerService.initSessionLogger(buildId) loggerService.reportBuildFinished(fusMetricsConsumer) } - KotlinBuildStatsBeanService.closeServices() } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsBeanService.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsBeanService.kt index bfe18c12a8f..cd8c9bde2ce 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsBeanService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatsBeanService.kt @@ -87,10 +87,12 @@ internal abstract class KotlinBuildStatsBeanService internal constructor( } } + @Synchronized internal fun recordBuildStart(buildId: String) { kotlinBuildStatsServicesRegistry?.recordBuildStart(buildId) } + @Synchronized fun closeServices() { kotlinBuildStatsServicesRegistry?.close() kotlinBuildStatsServicesRegistry = null diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index 4e7723158e8..f983db5093d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -556,10 +556,8 @@ internal constructor( val output = outputFile.get() output.parentFile.mkdirs() - buildFusService.orNull?.use { - it.reportFusMetrics { - NativeCompilerOptionMetrics.collectMetrics(compilerOptions, it) - } + buildFusService.orNull?.reportFusMetrics { + NativeCompilerOptionMetrics.collectMetrics(compilerOptions, it) } ArgumentUtils.convertArgumentsToStringList(arguments)