From cd968ba8fe21df0d6c91acb5f926bbfd7eb95749 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 31 Oct 2018 14:59:52 +0900 Subject: [PATCH] Kapt: Clear Javac shared ZIP cache after annotation processing or stub generation (KT-25756) --- .../src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt index ee63df5bde5..6b5fd5ad53e 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt @@ -109,8 +109,17 @@ class ClasspathBasedKapt3Extension( return super.analysisCompleted(project, module, bindingTrace, files) } finally { processorLoader?.close() + clearJavacZipCaches() } } + + private fun clearJavacZipCaches() { + try { + val zipFileIndexCacheClass = Class.forName("com.sun.tools.javac.file.ZipFileIndexCache") + val zipFileIndexCacheInstance = zipFileIndexCacheClass.getMethod("getSharedInstance").invoke(null) + zipFileIndexCacheClass.getMethod("clearCache").invoke(zipFileIndexCacheInstance) + } catch (e: Throwable) {} + } } abstract class AbstractKapt3Extension(