From fb61dc7e81c63793c2ea43d9fb761c1100487842 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 20 Nov 2015 16:31:53 +0300 Subject: [PATCH] Fix potential deadlock on lazy vs storage manager --- .../load/java/lazy/descriptors/LazyJavaPackageFragment.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageFragment.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageFragment.kt index ebc755ecc13..e56edac8c59 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageFragment.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaPackageFragment.kt @@ -30,7 +30,9 @@ class LazyJavaPackageFragment( private val c: LazyJavaResolverContext, private val jPackage: JavaPackage ) : PackageFragmentDescriptorImpl(c.module, jPackage.getFqName()) { - private val scope by lazy { LazyJavaPackageScope(c, jPackage, this) } + private val scope by c.storageManager.createLazyValue { + LazyJavaPackageScope(c, jPackage, this) + } private val topLevelClasses = c.storageManager.createMemoizedFunctionWithNullableValues { javaClass: JavaClass ->