diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/logging/jps/JpsLoggerFactory.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/logging/jps/JpsLoggerFactory.kt index 42042b066113..c68b220f7220 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/impl/logging/jps/JpsLoggerFactory.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/impl/logging/jps/JpsLoggerFactory.kt @@ -88,11 +88,34 @@ internal class JpsMessageHandler(private val context: CompilationContext, privat private var progress = -1.0f override fun processMessage(message: BuildMessage): Unit = TeamCityBuildMessageLogger.withFlow(span) { - val text = if (message is CompilerMessage) message.compilerMessageText else message.messageText + val text = message.messageText when (message.kind) { BuildMessage.Kind.ERROR, BuildMessage.Kind.INTERNAL_BUILDER_ERROR -> { - val compilerName: String = if (message is CompilerMessage) message.compilerName else "" - errorMessagesByCompiler.computeIfAbsent(compilerName) { CopyOnWriteArrayList() }.add(text) + val compilerName: String + val messageText: String + if (message is CompilerMessage) { + compilerName = message.compilerName + val sourcePath = message.sourcePath + messageText = buildString { + if (sourcePath != null) { + append(sourcePath) + if (message.line != -1L) { + append(':').append(message.line) + } + appendLine(':') + } + append(text) + val moduleNames = message.moduleNames + if (moduleNames.any()) { + append(moduleNames.joinToString(prefix = " (", postfix = ")")) + } + } + } + else { + compilerName = "" + messageText = text + } + errorMessagesByCompiler.computeIfAbsent(compilerName) { CopyOnWriteArrayList() }.add(messageText) } BuildMessage.Kind.WARNING -> context.messages.warning(text) BuildMessage.Kind.INFO, BuildMessage.Kind.JPS_INFO -> if (message is BuilderStatisticsMessage) { @@ -162,26 +185,6 @@ internal class JpsMessageHandler(private val context: CompilationContext, privat } } - private val CompilerMessage.compilerMessageText: String get() { - return buildString { - if (sourcePath != null) { - append(sourcePath) - if (line != -1L) { - append(':').append(line) - } - if (column != -1L) { - append(':').append(column) - } - appendLine(':') - } - append(messageText) - if (moduleNames.any()) { - appendLine() - append(moduleNames.joinToString(prefix = "(JPS module: ", postfix = ")")) - } - } - } - private fun reportProgress(targets: Collection>, targetSpecificMessage: String) { val targetsString = targets.joinToString(separator = ", ") { Introspector.decapitalize(it.presentableName) } val progressText = if (progress >= 0) " (${(100 * progress).toInt()}%)" else ""