diff --git a/core/util.runtime/src/org/jetbrains/kotlin/storage/LockBasedStorageManager.java b/core/util.runtime/src/org/jetbrains/kotlin/storage/LockBasedStorageManager.java index 78f4abaa135..bb6cf36c67f 100644 --- a/core/util.runtime/src/org/jetbrains/kotlin/storage/LockBasedStorageManager.java +++ b/core/util.runtime/src/org/jetbrains/kotlin/storage/LockBasedStorageManager.java @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.storage; import kotlin.Unit; import kotlin.jvm.functions.Function0; import kotlin.jvm.functions.Function1; +import kotlin.text.StringsKt; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.utils.ExceptionUtilsKt; @@ -32,6 +33,8 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class LockBasedStorageManager implements StorageManager { + private static final String PACKAGE_NAME = StringsKt.substringBeforeLast(LockBasedStorageManager.class.getCanonicalName(), ".", ""); + public interface ExceptionHandlingStrategy { ExceptionHandlingStrategy THROW = new ExceptionHandlingStrategy() { @NotNull @@ -480,14 +483,13 @@ public class LockBasedStorageManager implements StorageManager { @NotNull private static T sanitizeStackTrace(@NotNull T throwable) { - String storagePackageName = LockBasedStorageManager.class.getPackage().getName(); StackTraceElement[] stackTrace = throwable.getStackTrace(); int size = stackTrace.length; int firstNonStorage = -1; for (int i = 0; i < size; i++) { // Skip everything (memoized functions and lazy values) from package org.jetbrains.kotlin.storage - if (!stackTrace[i].getClassName().startsWith(storagePackageName)) { + if (!stackTrace[i].getClassName().startsWith(PACKAGE_NAME)) { firstNonStorage = i; break; }