IDEA-386054, debugger: properly show internal errors during thread dump

^IDEA-386054 fixed


(cherry picked from commit 5884774e2e3e6223f9091a3f39cc9d8b8f0374d8)

IJ-CR-192450

GitOrigin-RevId: 55aeac876590f4fa1ab3f64c952179ea1a7e9e26
This commit is contained in:
Vladimir Parfinenko
2026-02-20 16:32:06 +00:00
committed by intellij-monorepo-bot
parent 04156bfe33
commit 7494a65751
@@ -593,22 +593,15 @@ internal class JavaVirtualThreadsProvider : ThreadDumpItemsProviderFactory() {
val lookupImpl = getMethodHandlesImplLookup(evaluationContext)
if (lookupImpl == null) {
thisLogger().error("Cannot get MethodHandles.Lookup.IMPL_LOOKUP")
return emptyList()
throw EvaluateException("Cannot get MethodHandles.Lookup.IMPL_LOOKUP")
}
val evaluated = try {
val evaluated =
DebuggerUtilsImpl.invokeHelperMethod(
evaluationContext,
VirtualThreadDumper::class.java, "getAllVirtualThreadsWithStackTracesAndContainers",
listOf(lookupImpl)
)
}
catch (e: EvaluateException) {
thisLogger().error(e)
return emptyList()
}
if (evaluated == null) return emptyList()
val packedThreadsAndStackTraces = ((evaluated as ArrayReference).values[0] as ArrayReference).values
val threadIds = (evaluated.values[1] as ArrayReference).values