From 96768cbf2d652a485b5bfb8b2b18921c575fe4c0 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Fri, 25 Oct 2019 22:05:28 +0200 Subject: [PATCH] Clean up after acquire lock for several seconds to create LightClasses to workaround dead-lock over resolve Relates to #KT-34279 --- .../kotlin/asJava/classes/KotlinClassInnerStuffCache.kt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt index a8619b70c34..3e8acd60262 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/classes/KotlinClassInnerStuffCache.kt @@ -58,8 +58,7 @@ class KotlinClassInnerStuffCache(val myClass: PsiExtensibleClass, externalDepend // TODO: NOTE: acquire lock for a several seconds to avoid dead-lock via resolve is a WORKAROUND - val notRunning = !initIsRunning.get() - if (notRunning && lock.tryLock(500, TimeUnit.MILLISECONDS)) { + if (!initIsRunning.get() && lock.tryLock(5, TimeUnit.SECONDS)) { try { initIsRunning.set(true) try { @@ -71,9 +70,6 @@ class KotlinClassInnerStuffCache(val myClass: PsiExtensibleClass, externalDepend lock.unlock() } } else { - if (notRunning) { // means unable to acquire lock within specified time limit - Logger.getInstance(KotlinClassInnerStuffCache::class.java).error("failed to acquire lock for $initializer") - } computeValue() } }