From 6042a3a0f73e57e615a1519718b85a2ca8c5480e Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Wed, 12 Dec 2018 15:29:20 +0300 Subject: [PATCH] Scripts: fix NPE during accessing ScriptDependenciesCache Getting value from SLRUMap needs write lock, because it can move value from one queue to another EA-105195 Fixed --- .../kotlin/idea/core/script/ScriptDependenciesCache.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesCache.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesCache.kt index a562fc60068..6c2c5a75b08 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesCache.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesCache.kt @@ -163,11 +163,9 @@ private class ClearableLazyValue( private val compute: () -> T ) : ReadOnlyProperty { override fun getValue(thisRef: R, property: KProperty<*>): T { - lock.read { + lock.write { if (value == null) { - lock.write { - value = compute() - } + value = compute() } return value!! }