From d5e42e3271f384e3e17a66c53abd045804d6cc2b Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Mon, 19 Dec 2016 08:26:00 +0300 Subject: [PATCH] Clear jar cache with daemon --- .../src/org/jetbrains/kotlin/daemon/common/CompileService.kt | 3 +++ .../src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt | 2 +- .../kotlin/compilerRunner/GradleKotlinCompilerRunner.kt | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompileService.kt b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompileService.kt index 465d7997f70..7f1ea908f59 100644 --- a/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompileService.kt +++ b/compiler/daemon/daemon-common/src/org/jetbrains/kotlin/daemon/common/CompileService.kt @@ -136,6 +136,9 @@ interface CompileService : Remote { operationsTracer: RemoteOperationsTracer? ): CallResult + @Throws(RemoteException::class) + fun clearJarCache() + @Throws(RemoteException::class) fun leaseReplSession( aliveFlagPath: String?, diff --git a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt index 6e0bca0f10c..b1c6c19241f 100644 --- a/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt +++ b/compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt @@ -680,7 +680,7 @@ class CompileServiceImpl( } } - private fun clearJarCache() { + override fun clearJarCache() { ZipHandler.clearFileAccessorCache() (KotlinCoreEnvironment.applicationEnvironment?.jarFileSystem as? CoreJarFileSystem)?.clearHandlersCache() } 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 f042476a460..458f47e6fde 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 @@ -142,6 +142,9 @@ internal class GradleCompilerRunner(private val project: Project) : KotlinCompil super.compileWithDaemon(compilerClassName, argsArray, environment) } exitCode?.let { + withDaemon(environment, retryOnConnectionError = true) { daemon, sessionId -> + daemon.clearJarCache() + } logFinish(DAEMON_EXECUTION_STRATEGY) } return exitCode