Clear cleanFileAccessorsCache for FastJarFileSystem

This commit is contained in:
Denis.Zharkov
2021-06-04 18:17:11 +03:00
committed by TeamCityServer
parent 7ca2a83f08
commit 4e11c670c6
4 changed files with 18 additions and 6 deletions
@@ -69,6 +69,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.common.toBooleanLenient
import org.jetbrains.kotlin.cli.jvm.JvmRuntimeVersionsConsistencyChecker
import org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarFileSystem
import org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarHandler
import org.jetbrains.kotlin.cli.jvm.config.*
import org.jetbrains.kotlin.cli.jvm.index.*
import org.jetbrains.kotlin.cli.jvm.javac.JavacWrapperRegistrar
@@ -93,11 +94,11 @@ import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.CodeAnalyzerInitializer
import org.jetbrains.kotlin.resolve.ModuleAnnotationsResolver
import org.jetbrains.kotlin.resolve.extensions.ExtraImportsProviderExtension
import org.jetbrains.kotlin.resolve.jvm.extensions.SyntheticJavaResolveExtension
import org.jetbrains.kotlin.resolve.extensions.SyntheticResolveExtension
import org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade
import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisHandlerExtension
import org.jetbrains.kotlin.resolve.jvm.extensions.PackageFragmentProviderExtension
import org.jetbrains.kotlin.resolve.jvm.extensions.SyntheticJavaResolveExtension
import org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleResolver
import org.jetbrains.kotlin.resolve.lazy.declarations.CliDeclarationProviderFactoryService
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactoryService
@@ -538,6 +539,7 @@ class KotlinCoreEnvironment private constructor(
ourApplicationEnvironment = null
Disposer.dispose(environment.parentDisposable)
ZipHandler.clearFileAccessorCache()
FastJarHandler.cleanFileAccessorsCache()
}
}
@@ -16,9 +16,8 @@ import java.io.IOException
import java.io.RandomAccessFile
import java.nio.MappedByteBuffer
import java.nio.channels.FileChannel
import java.util.*
internal class FastJarHandler(val fileSystem: FastJarFileSystem, path: String) : ZipHandler(path) {
class FastJarHandler(val fileSystem: FastJarFileSystem, path: String) : ZipHandler(path) {
private val myRoot: VirtualFile?
private val ourEntryMap: Map<String, ZipEntryDescription>
@@ -145,6 +144,12 @@ internal class FastJarHandler(val fileSystem: FastJarFileSystem, path: String) :
}
}
}
companion object {
fun cleanFileAccessorsCache() {
cachedOpenFileHandles.clear()
}
}
}
private const val MANIFEST_PATH = "META-INF/MANIFEST.MF"