Fix flaky tests with ConcurrentModificationException
This commit is contained in:
committed by
Space Team
parent
6e732f2f4d
commit
dce1c1c70a
+9
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.plugin.statistics
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.invocation.Gradle
|
||||
import org.gradle.api.logging.Logging
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.services.BuildService
|
||||
@@ -16,6 +17,7 @@ import org.gradle.tooling.events.OperationCompletionListener
|
||||
import org.gradle.tooling.events.task.TaskFailureResult
|
||||
import org.gradle.tooling.events.task.TaskFinishEvent
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
||||
import org.jetbrains.kotlin.gradle.plugin.BuildEventsListenerRegistryHolder
|
||||
import org.jetbrains.kotlin.gradle.plugin.StatisticsBuildFlowManager
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.isProjectIsolationEnabled
|
||||
@@ -30,6 +32,11 @@ import java.io.Serializable
|
||||
|
||||
internal abstract class BuildFlowService : BuildService<BuildFlowService.Parameters>, AutoCloseable, OperationCompletionListener {
|
||||
private var buildFailed: Boolean = false
|
||||
private val log = Logging.getLogger(this.javaClass)
|
||||
|
||||
init {
|
||||
log.kotlinDebug("Initialize ${this.javaClass.simpleName}")
|
||||
}
|
||||
|
||||
interface Parameters : BuildServiceParameters {
|
||||
val configurationMetrics: Property<MetricContainer>
|
||||
@@ -91,6 +98,7 @@ internal abstract class BuildFlowService : BuildService<BuildFlowService.Paramet
|
||||
}
|
||||
|
||||
override fun onFinish(event: FinishEvent?) {
|
||||
parameters.fusStatisticsAvailable.get() //force to calculate configuration metrics before build finish
|
||||
if ((event is TaskFinishEvent) && (event.result is TaskFailureResult)) {
|
||||
buildFailed = true
|
||||
}
|
||||
@@ -103,6 +111,7 @@ internal abstract class BuildFlowService : BuildService<BuildFlowService.Paramet
|
||||
KotlinBuildStatsService.applyIfInitialised {
|
||||
it.close()
|
||||
}
|
||||
log.kotlinDebug("Close ${this.javaClass.simpleName}")
|
||||
}
|
||||
|
||||
internal fun recordBuildFinished(action: String?, buildFailed: Boolean) {
|
||||
|
||||
+3
-2
@@ -105,7 +105,8 @@ class KotlinBuildStatHandler {
|
||||
gradle.allprojects { project ->
|
||||
collectAppliedPluginsStatistics(project, configurationTimeMetrics)
|
||||
|
||||
for (configuration in project.configurations) {
|
||||
val configurations = project.configurations.asMap.values
|
||||
for (configuration in configurations) {
|
||||
try {
|
||||
val configurationName = configuration.name
|
||||
val dependencies = configuration.dependencies
|
||||
@@ -144,7 +145,7 @@ class KotlinBuildStatHandler {
|
||||
// log?
|
||||
}
|
||||
}
|
||||
val taskNames = project.tasks.names
|
||||
val taskNames = project.tasks.names.toList()
|
||||
|
||||
configurationTimeMetrics.put(NumericalMetrics.NUMBER_OF_SUBPROJECTS, 1)
|
||||
configurationTimeMetrics.put(
|
||||
|
||||
Reference in New Issue
Block a user