From 9c889aab173e7dff652a7f0ce369c89497febf42 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 16 Jan 2020 21:13:16 +0900 Subject: [PATCH] EA-213309: Eliminate "Invalid method id" exception --- .../org/jetbrains/kotlin/idea/debugger/safeUtil.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/safeUtil.kt b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/safeUtil.kt index 2218d83e1a3..0a34842b9a6 100644 --- a/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/safeUtil.kt +++ b/idea/jvm-debugger/jvm-debugger-util/src/org/jetbrains/kotlin/idea/debugger/safeUtil.kt @@ -68,15 +68,15 @@ fun StackFrameProxy.safeStackFrame(): StackFrame? { } fun Location.safeSourceName(): String? { - return wrapAbsentInformationException { this.sourceName() } + return wrapIllegalArgumentException { wrapAbsentInformationException { this.sourceName() } } } fun Location.safeSourceName(stratum: String): String? { - return wrapAbsentInformationException { this.sourceName(stratum) } + return wrapIllegalArgumentException { wrapAbsentInformationException { this.sourceName(stratum) } } } fun Location.safeLineNumber(): Int { - return DebuggerUtilsEx.getLineNumber(this, false) + return wrapIllegalArgumentException { DebuggerUtilsEx.getLineNumber(this, false) } ?: -1 } fun Location.safeLineNumber(stratum: String): Int { @@ -118,6 +118,14 @@ private inline fun wrapEvaluateException(block: () -> T): T? { } } +private inline fun wrapIllegalArgumentException(block: () -> T): T? { + return try { + block() + } catch (e: IllegalArgumentException) { + null + } +} + private inline fun wrapAbsentInformationException(block: () -> T): T? { return try { block()