void (@NotNull SuspendContextImpl suspendContext) { try { if (dialog.isDisposed()) { return; } EvaluationContextImpl evaluationContext = new EvaluationContextImpl(suspendContext, suspendContext.getFrameProxy()); MemoryAgent memoryAgent = MemoryAgent.get(evaluationContext); if (memoryAgent.isDisabled()) { dialog.setAgentCouldntBeLoadedMessage(); return; } Disposer.register(dialog.getDisposable(), () -> memoryAgent.cancelAction()); memoryAgent.setProgressIndicator(dialog.createProgressIndicator()); MemoryAgentActionResult<Pair<long[], ObjectReference[]>> result = memoryAgent.estimateObjectSize( evaluationContext, reference, Registry.get("debugger.memory.agent.action.timeout").asInteger() ); if (dialog.isDisposed()) { return; } interpretResult(result, dialog); } catch (EvaluateException e) { XDebuggerManagerImpl.getNotificationGroup().createNotification(JavaDebuggerBundle.message("action.failed"), NotificationType.ERROR); } }