diff --git a/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt b/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt index dc61fc60fbf..4208f5fa873 100644 --- a/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt +++ b/compiler/compiler-runner/src/org/jetbrains/kotlin/compilerRunner/KotlinCompilerRunner.kt @@ -152,7 +152,7 @@ abstract class KotlinCompilerRunner { else -> throw IllegalArgumentException("Unknown compiler type $compilerClassName") } - val res: Int = withDaemon(environment) { daemon, sessionId -> + val res: Int = withDaemon(environment, retryOnConnectionError = true) { daemon, sessionId -> KotlinCompilerClient.incrementalCompile(daemon, sessionId, targetPlatform, argsArray, services, compilerOut, daemonOut) } ?: return null @@ -164,11 +164,11 @@ abstract class KotlinCompilerRunner { return exitCode } - protected fun withDaemon(environment: Env, retryOnConnectionError: Boolean = true, fn: (CompileService, sessionId: Int)->T): T? { + protected fun withDaemon(environment: Env, retryOnConnectionError: Boolean, fn: (CompileService, sessionId: Int)->T): T? { fun retryOrFalse(e: Exception): T? { if (retryOnConnectionError) { log.debug("retrying once on daemon connection error: ${e.message}") - return withDaemon(environment, false, fn) + return withDaemon(environment, retryOnConnectionError = false, fn = fn) } log.info("daemon connection error: ${e.message}") return null diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index 8e7752bdd0b..dcc1ba8f98d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -157,7 +157,7 @@ internal class GradleCompilerRunner(private val project: Project) : KotlinCompil val compilerOut = ByteArrayOutputStream() val daemonOut = ByteArrayOutputStream() - val res = withDaemon(environment) { daemon, sessionId -> + val res = withDaemon(environment, retryOnConnectionError = true) { daemon, sessionId -> val remoteCompilerOut = RemoteOutputStreamServer(compilerOut, port) val remoteDaemonOut = RemoteOutputStreamServer(daemonOut, port) daemon.serverSideJvmIC(sessionId, argsArray, services, remoteCompilerOut, remoteDaemonOut, null)