diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/BuildMessages.kt b/platform/build-scripts/groovy/org/jetbrains/intellij/build/BuildMessages.kt index d458ecdb1645..61140f11932d 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/BuildMessages.kt +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/BuildMessages.kt @@ -1,6 +1,8 @@ // Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package org.jetbrains.intellij.build +import com.intellij.openapi.util.ThrowableComputable + interface BuildMessages: System.Logger { fun info(message: String) @@ -26,7 +28,7 @@ interface BuildMessages: System.Logger { fun setParameter(parameterName: String, value: String) - fun block(blockName: String, task: () -> V): V + fun block(blockName: String, task: ThrowableComputable): V fun artifactBuilt(relativeArtifactPath: String) diff --git a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/logging/BuildMessagesImpl.kt b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/logging/BuildMessagesImpl.kt index 19c5f2e4338d..c03e8d2fcf6e 100644 --- a/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/logging/BuildMessagesImpl.kt +++ b/platform/build-scripts/groovy/org/jetbrains/intellij/build/impl/logging/BuildMessagesImpl.kt @@ -2,6 +2,7 @@ package org.jetbrains.intellij.build.impl.logging import com.intellij.diagnostic.telemetry.useWithScope +import com.intellij.openapi.util.ThrowableComputable import com.intellij.util.containers.Stack import org.jetbrains.intellij.build.* import org.jetbrains.intellij.build.TraceManager.spanBuilder @@ -120,12 +121,12 @@ class BuildMessagesImpl private constructor(private val logger: BuildMessageLogg processMessage(LogMessage(LogMessage.Kind.SET_PARAMETER, "$parameterName=$value")) } - override fun block(blockName: String, task: () -> V): V { + override fun block(blockName: String, task: ThrowableComputable): V { spanBuilder(blockName.lowercase(Locale.getDefault())).useWithScope { try { blockNames.push(blockName) processMessage(LogMessage(LogMessage.Kind.BLOCK_STARTED, blockName)) - return task() + return task.compute() } catch (e: Throwable) { // print all pending spans @@ -219,4 +220,4 @@ private class PrintWriterBuildMessageLogger( override fun dispose() { disposer.accept(this) } -} \ No newline at end of file +}