From 5a9be61a7a7c6512b8ef356265f7af31b4b1803b Mon Sep 17 00:00:00 2001 From: Vsevolod Tolstopyatov Date: Tue, 26 Oct 2021 17:03:57 +0300 Subject: [PATCH] ~use IgnoreJreRequirement and also intentionally break compatibility --- .../jvm/src/internal/ExceptionsConstructor.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kotlinx-coroutines-core/jvm/src/internal/ExceptionsConstructor.kt b/kotlinx-coroutines-core/jvm/src/internal/ExceptionsConstructor.kt index 7f26099064..a3d276ffc9 100644 --- a/kotlinx-coroutines-core/jvm/src/internal/ExceptionsConstructor.kt +++ b/kotlinx-coroutines-core/jvm/src/internal/ExceptionsConstructor.kt @@ -19,7 +19,7 @@ internal fun tryCopyException(exception: E): E? { if (exception is CopyableThrowable<*>) { return runCatching { exception.createCopy() as E? }.getOrNull() } - return WeakMapCtorCache.get(exception.javaClass).invoke(exception) as E? + return ClassValueCtorCache.get(exception.javaClass).invoke(exception) as E? } private fun createConstructor(clz: Class): Ctor { @@ -90,6 +90,7 @@ private object WeakMapCtorCache : CtorCache() { } } +@IgnoreJreRequirement private object ClassValueCtorCache : CtorCache() { private val cache = object : ClassValue() { override fun computeValue(type: Class<*>?): Ctor {