From 571fda0f45cc7e45cd798d13510a6ef439c650fc Mon Sep 17 00:00:00 2001 From: Alexander Podkhalyuzin Date: Wed, 13 Jun 2018 15:35:16 +0300 Subject: [PATCH] Fixed deprecation of ConcurrentFactoryMap() #KT-24892 Fixed --- .../cli/jvm/modules/CoreJrtFileSystem.kt | 23 +++++++++---------- .../KotlinScriptDependenciesClassFinder.kt | 8 +++---- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/modules/CoreJrtFileSystem.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/modules/CoreJrtFileSystem.kt index fceed586d61..44ed36bcd71 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/modules/CoreJrtFileSystem.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/modules/CoreJrtFileSystem.kt @@ -31,22 +31,21 @@ import java.nio.file.Path // There's JrtFileSystem in idea-full which we can't use in the compiler because it depends on NewVirtualFileSystem, absent in intellij-core class CoreJrtFileSystem : DeprecatedVirtualFileSystem() { - private val handlers = object : ConcurrentFactoryMap() { - override fun create(jdkHomePath: String): CoreJrtHandler? { + private val handlers = + ConcurrentFactoryMap.createMap { jdkHomePath -> val jdkHome = File(jdkHomePath) val rootUri = URI.create(StandardFileSystems.JRT_PROTOCOL + ":/") - val jrtFsJar = loadJrtFsJar(jdkHome) ?: return null + val jrtFsJar = loadJrtFsJar(jdkHome) ?: return@createMap null val fileSystem = - if (SystemInfo.isJavaVersionAtLeast("9")) { - FileSystems.newFileSystem(rootUri, mapOf("java.home" to jdkHome.absolutePath)) - } - else { - val classLoader = URLClassLoader(arrayOf(jrtFsJar.toURI().toURL()), null) - FileSystems.newFileSystem(rootUri, emptyMap(), classLoader) - } - return CoreJrtHandler(this@CoreJrtFileSystem, jdkHomePath, fileSystem.getPath("")) + if (SystemInfo.isJavaVersionAtLeast(9, 0, 0)) { + FileSystems.newFileSystem(rootUri, mapOf("java.home" to jdkHome.absolutePath)) + } + else { + val classLoader = URLClassLoader(arrayOf(jrtFsJar.toURI().toURL()), null) + FileSystems.newFileSystem(rootUri, emptyMap(), classLoader) + } + CoreJrtHandler(this, jdkHomePath, fileSystem.getPath("")) } - } internal class CoreJrtHandler( val virtualFileSystem: CoreJrtFileSystem, diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt index ec12ffe759f..0077a23d8b1 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/KotlinScriptDependenciesClassFinder.kt @@ -36,11 +36,9 @@ class KotlinScriptDependenciesClassFinder(project: Project, ) : NonClasspathClassFinder(project), KotlinSafeClassFinder { private val myCaches by lazy { - object : ConcurrentFactoryMap() { - override fun create(file: VirtualFile): PackageDirectoryCache? { - val scriptClasspath = scriptDependenciesManager.getScriptClasspath(file) - return createCache(scriptClasspath) - } + ConcurrentFactoryMap.createMap { file -> + val scriptClasspath = scriptDependenciesManager.getScriptClasspath(file) + createCache(scriptClasspath) } }