diff --git a/java/debugger/openapi/resources/messages/JavaDebuggerBundle.properties b/java/debugger/openapi/resources/messages/JavaDebuggerBundle.properties index cbd7a29ea865..b98ab64de644 100644 --- a/java/debugger/openapi/resources/messages/JavaDebuggerBundle.properties +++ b/java/debugger/openapi/resources/messages/JavaDebuggerBundle.properties @@ -13,6 +13,7 @@ evaluation.error.sources.out.of.sync=Sources do not correspond to code being exe evaluation.error.cannot.find.stackframe.source=Cannot find source class for current stack frame evaluation.error.cannot.find.source=Cannot find source class for {0} evaluation.error.object.collected=Object has been collected +evaluation.error.exception.collected= evaluation.error.thread.collected=Thread has been collected evaluation.error.array.collected=Array has been collected evaluation.error.thread.resumed=Thread has been resumed diff --git a/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/EvaluateExceptionUtil.java b/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/EvaluateExceptionUtil.java index ad6fcee5eb02..176ae201fb82 100644 --- a/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/EvaluateExceptionUtil.java +++ b/java/debugger/openapi/src/com/intellij/debugger/engine/evaluation/EvaluateExceptionUtil.java @@ -75,7 +75,12 @@ public final class EvaluateExceptionUtil { return JavaDebuggerBundle.message("evaluation.error.object.collected"); } else if (th instanceof InvocationException invocationException) { - return JavaDebuggerBundle.message("evaluation.error.method.exception", invocationException.exception().referenceType().name()); + try { + return JavaDebuggerBundle.message("evaluation.error.method.exception", invocationException.exception().referenceType().name()); + } + catch (ObjectCollectedException e) { + return JavaDebuggerBundle.message("evaluation.error.exception.collected"); + } } else if (th instanceof EvaluateException) { return th.getMessage();