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
This commit is contained in:
Natalia Selezneva
2018-12-12 15:29:20 +03:00
parent 8ceae8bd6d
commit 6042a3a0f7
@@ -163,12 +163,10 @@ private class ClearableLazyValue<in R, out T : Any>(
private val compute: () -> T private val compute: () -> T
) : ReadOnlyProperty<R, T> { ) : ReadOnlyProperty<R, T> {
override fun getValue(thisRef: R, property: KProperty<*>): T { override fun getValue(thisRef: R, property: KProperty<*>): T {
lock.read {
if (value == null) {
lock.write { lock.write {
if (value == null) {
value = compute() value = compute()
} }
}
return value!! return value!!
} }
} }