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,11 +163,9 @@ 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 { lock.write {
if (value == null) { if (value == null) {
lock.write { value = compute()
value = compute()
}
} }
return value!! return value!!
} }