Log daemon exception for In process compilation into error.log
This commit is contained in:
committed by
Space Team
parent
242b83edbd
commit
2379185398
+3
@@ -22,6 +22,8 @@ import org.jetbrains.kotlin.gradle.utils.stackTraceAsString
|
||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||
import org.jetbrains.kotlin.incremental.ClasspathChanges
|
||||
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
|
||||
import org.jetbrains.kotlin.incremental.util.ExceptionLocation
|
||||
import org.jetbrains.kotlin.incremental.util.reportException
|
||||
import org.jetbrains.kotlin.util.removeSuffixIfPresent
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.io.*
|
||||
@@ -153,6 +155,7 @@ internal class GradleKotlinCompilerWork @Inject constructor(
|
||||
try {
|
||||
return compileWithDaemon(messageCollector) to KotlinCompilerExecutionStrategy.DAEMON
|
||||
} catch (e: Throwable) {
|
||||
messageCollector.reportException(e, ExceptionLocation.DAEMON)
|
||||
if (!compilerExecutionSettings.useDaemonFallbackStrategy) {
|
||||
throw RuntimeException(
|
||||
"Failed to compile with Kotlin daemon. Fallback strategy (compiling without Kotlin daemon) is turned off. " +
|
||||
|
||||
+3
-2
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
|
||||
import org.jetbrains.kotlin.config.KotlinCompilerVersion
|
||||
import org.jetbrains.kotlin.daemon.client.DaemonReportingTargets
|
||||
import org.jetbrains.kotlin.daemon.client.launchProcessWithFallback
|
||||
import org.jetbrains.kotlin.gradle.logging.GradleErrorMessageCollector
|
||||
import org.jetbrains.kotlin.gradle.logging.GradleKotlinLogger
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy
|
||||
import org.jetbrains.org.objectweb.asm.ClassReader
|
||||
@@ -107,13 +108,13 @@ internal fun runToolInSeparateProcess(
|
||||
compilerClassName,
|
||||
"@${compilerOptions.absolutePath}"
|
||||
)
|
||||
val messageCollector = createLoggingMessageCollector(logger)
|
||||
val messageCollector = GradleErrorMessageCollector(createLoggingMessageCollector(logger))
|
||||
val process = launchProcessWithFallback(builder, DaemonReportingTargets(messageCollector = messageCollector))
|
||||
|
||||
// important to read inputStream, otherwise the process may hang on some systems
|
||||
val readErrThread = thread {
|
||||
process.errorStream!!.bufferedReader().forEachLine {
|
||||
logger.error(it)
|
||||
messageCollector.report(CompilerMessageSeverity.EXCEPTION, it)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user