Skip to content

Commit 42ff48d

Browse files
hfmehmedKSP Auto Pick
authored andcommitted
Clean up file handlers (intellij)
(cherry picked from commit 98154aa)
1 parent ff1076a commit 42ff48d

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/KotlinSymbolProcessing.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import com.intellij.openapi.application.runWriteAction
5050
import com.intellij.openapi.project.Project
5151
import com.intellij.openapi.util.Disposer
5252
import com.intellij.openapi.vfs.StandardFileSystems
53+
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
5354
import com.intellij.psi.PsiFileSystemItem
5455
import com.intellij.psi.PsiJavaFile
5556
import com.intellij.psi.PsiManager
@@ -464,9 +465,11 @@ class KotlinSymbolProcessing(
464465
}
465466

466467
val projectDisposable: Disposable = Disposer.newDisposable("StandaloneAnalysisAPISession.project")
468+
var kotlinCoreProjectEnvironment: KotlinCoreProjectEnvironment? = null
467469
try {
468-
val (analysisAPISession, kotlinCoreProjectEnvironment, modules) =
470+
val (analysisAPISession, env, modules) =
469471
createAASession(projectDisposable)
472+
kotlinCoreProjectEnvironment = env
470473
val project = analysisAPISession.project
471474
// Initializes it
472475
KSPCoreEnvironment(project as MockProject)
@@ -478,11 +481,11 @@ class KotlinSymbolProcessing(
478481

479482
// Initializing environments
480483
val javaFileManager = if (kspConfig is KSPJvmConfig) {
481-
IncrementalJavaFileManager(kotlinCoreProjectEnvironment)
484+
IncrementalJavaFileManager(env)
482485
} else null
483486

484487
val allKSFiles =
485-
prepareAllKSFiles(kotlinCoreProjectEnvironment, modules, javaFileManager)
488+
prepareAllKSFiles(env, modules, javaFileManager)
486489
val anyChangesWildcard = AnyChanges(kspConfig.projectBaseDir)
487490
val codeGenerator = CodeGeneratorImpl(
488491
kspConfig.classOutputDir,
@@ -586,7 +589,7 @@ class KotlinSymbolProcessing(
586589
dropCaches()
587590

588591
newKSFiles = prepareNewKSFiles(
589-
kotlinCoreProjectEnvironment,
592+
env,
590593
javaFileManager,
591594
codeGenerator.generatedFile.filter { it.extension.lowercase() == "kt" },
592595
codeGenerator.generatedFile.filter { it.extension.lowercase() == "java" },
@@ -620,6 +623,7 @@ class KotlinSymbolProcessing(
620623
codeGenerator.closeFiles()
621624
} finally {
622625
maybeRunInWriteAction {
626+
(kotlinCoreProjectEnvironment?.environment?.jarFileSystem as? CoreJarFileSystem)?.clearHandlersCache()
623627
Disposer.dispose(projectDisposable)
624628
ResolverAAImpl.tearDown()
625629
KSPCoreEnvironment.tearDown()

0 commit comments

Comments
 (0)