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 5bf7430ac611..94ed70a4ac20 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -1065,6 +1065,9 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb } catch (Throwable ignored) { } + finally { + DebuggerManagerThreadImpl.getCurrentThread().setVmProxy(null); + } } var attachedNewThread = unstashAndReattach(); diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt b/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt index cb12a1a65537..e22c784cb3fa 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebuggerManagerThreadImpl.kt @@ -61,9 +61,9 @@ class DebuggerManagerThreadImpl @ApiStatus.Internal constructor( get() = _vmProxy.get() @ApiStatus.Internal - fun setVmProxy(proxy: VirtualMachineProxyImpl) { + fun setVmProxy(proxy: VirtualMachineProxyImpl?) { val current = vmProxy - if (current != null && current.virtualMachine !== proxy.virtualMachine) { + if (current != null && proxy != null && current.virtualMachine !== proxy.virtualMachine) { LOG.error("VM proxy changed from $current to $proxy") } _vmProxy = WeakReference(proxy)