diff --git a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt index 96d9dc349cc..c04407663b6 100644 --- a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt +++ b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/Kapt3Extension.kt @@ -55,8 +55,24 @@ class ClasspathBasedKapt3Extension( override val analyzePartially: Boolean get() = useLightAnalysis + private var annotationProcessingClassLoader: URLClassLoader? = null + + override fun analysisCompleted( + project: Project, + module: ModuleDescriptor, + bindingTrace: BindingTrace, + files: Collection + ): AnalysisResult? { + try { + return super.analysisCompleted(project, module, bindingTrace, files) + } finally { + annotationProcessingClassLoader?.close() + } + } + override fun loadProcessors(): List { val classLoader = URLClassLoader(annotationProcessingClasspath.map { it.toURI().toURL() }.toTypedArray()) + this.annotationProcessingClassLoader = classLoader val processors = ServiceLoader.load(Processor::class.java, classLoader).toList() if (processors.isEmpty()) {