From 6210da0c982b8faf98b73ad92885179db0a1d0d7 Mon Sep 17 00:00:00 2001 From: "Nataliya.Valtman" Date: Mon, 13 Nov 2023 19:51:29 +0100 Subject: [PATCH] Ignore ConcurrencyModificationExceptions at project.tasks.names #KT-62131: Fixed --- .../statistics/KotlinBuildStatHandler.kt | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt index db3165e2664..c7d0dd2ad51 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/KotlinBuildStatHandler.kt @@ -16,7 +16,6 @@ import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics import org.jetbrains.kotlin.statistics.metrics.NumericalMetrics import org.jetbrains.kotlin.statistics.metrics.StringMetrics import org.jetbrains.kotlin.statistics.MetricValueValidationFailed -import java.io.File import java.lang.management.ManagementFactory import javax.management.MBeanServer import javax.management.ObjectName @@ -180,12 +179,30 @@ class KotlinBuildStatHandler { configurationTimeMetrics.put(NumericalMetrics.NUMBER_OF_SUBPROJECTS, 1) - val taskNames = project.tasks.names.toList() configurationTimeMetrics.put( BooleanMetrics.KOTLIN_KTS_USED, project.buildscript.sourceFile?.name?.endsWith(".kts") ?: false ) + + addTaskMetrics(project, configurationTimeMetrics) + + if (project.name == "buildSrc") { + configurationTimeMetrics.put(NumericalMetrics.BUILD_SRC_COUNT, 1) + configurationTimeMetrics.put(BooleanMetrics.BUILD_SRC_EXISTS, true) + } + } + sessionLogger.report(NumericalMetrics.STATISTICS_VISIT_ALL_PROJECTS_OVERHEAD, statisticOverhead) + + return configurationTimeMetrics + } + + private fun addTaskMetrics( + project: Project, + configurationTimeMetrics: MetricContainer, + ) { + try { + val taskNames = project.tasks.names.toList() configurationTimeMetrics.put(NumericalMetrics.GRADLE_NUMBER_OF_TASKS, taskNames.size.toLong()) configurationTimeMetrics.put( NumericalMetrics.GRADLE_NUMBER_OF_UNCONFIGURED_TASKS, @@ -197,15 +214,9 @@ class KotlinBuildStatHandler { } }.toLong() ) - - if (project.name == "buildSrc") { - configurationTimeMetrics.put(NumericalMetrics.BUILD_SRC_COUNT, 1) - configurationTimeMetrics.put(BooleanMetrics.BUILD_SRC_EXISTS, true) - } + } catch (e: Exception) { + //ignore exceptions for KT-62131. } - sessionLogger.report(NumericalMetrics.STATISTICS_VISIT_ALL_PROJECTS_OVERHEAD, statisticOverhead) - - return configurationTimeMetrics } private fun collectAppliedPluginsStatistics(