From 54694e6d1ceec2e8fa06a741d0d27eae1b2fc3f7 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 19 Sep 2016 09:03:46 +0200 Subject: [PATCH] IDEA-161426 Class initialization dead-lock during IDEA startup (promise.kt, Promise.java) --- .../src/org/jetbrains/concurrency/promise.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/platform/projectModel-api/src/org/jetbrains/concurrency/promise.kt b/platform/projectModel-api/src/org/jetbrains/concurrency/promise.kt index 39a9677784ca..d4f831a0a416 100644 --- a/platform/projectModel-api/src/org/jetbrains/concurrency/promise.kt +++ b/platform/projectModel-api/src/org/jetbrains/concurrency/promise.kt @@ -36,11 +36,11 @@ val Promise<*>.isPending: Boolean val Promise<*>.isFulfilled: Boolean get() = state == Promise.State.FULFILLED -internal val OBSOLETE_ERROR = createError("Obsolete") +internal val OBSOLETE_ERROR by lazy { createError("Obsolete") } -private val REJECTED: Promise<*> = RejectedPromise(createError("rejected")) -private val DONE: Promise<*> = DonePromise(null) -private val CANCELLED_PROMISE = RejectedPromise(OBSOLETE_ERROR) +private val REJECTED: Promise<*> by lazy { RejectedPromise(createError("rejected")) } +private val DONE: Promise<*> by lazy { DonePromise(null) } +private val CANCELLED_PROMISE: Promise<*> by lazy { RejectedPromise(OBSOLETE_ERROR) } @Suppress("UNCHECKED_CAST") fun resolvedPromise(): Promise = DONE as Promise