diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java index 1136db3dd846..8c2912a99d8d 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -775,6 +775,7 @@ public abstract class DebugProcessImpl implements DebugProcess { myReturnValueWatcher = null; myNodeRederersMap.clear(); myRenderers.clear(); + DebuggerUtils.cleanupAfterProcessFinish(this); myState.set(STATE_DETACHED); try { myDebugProcessDispatcher.getMulticaster().processDetached(this, closedByUser); diff --git a/java/debugger/openapi/src/com/intellij/debugger/engine/DebuggerUtils.java b/java/debugger/openapi/src/com/intellij/debugger/engine/DebuggerUtils.java index 9671d72a853f..418e442ecada 100644 --- a/java/debugger/openapi/src/com/intellij/debugger/engine/DebuggerUtils.java +++ b/java/debugger/openapi/src/com/intellij/debugger/engine/DebuggerUtils.java @@ -54,6 +54,10 @@ public abstract class DebuggerUtils { "byte", "short", "int", "long", "float", "double", "boolean", "char" )); + public static void cleanupAfterProcessFinish(DebugProcess debugProcess) { + debugProcess.putUserData(TO_STRING_METHOD_KEY, null); + } + @NonNls public static String getValueAsString(final EvaluationContext evaluationContext, Value value) throws EvaluateException { try {