From 27a22fc1e996cab3279bfc12a85c62c10bfe9e10 Mon Sep 17 00:00:00 2001 From: Vladimir Ilmov Date: Mon, 20 Jul 2020 14:56:07 +0200 Subject: [PATCH] Cleanup Coroutine panel in case connection gets disposed soon after creation. --- .../kotlin/idea/debugger/coroutine/DebuggerConnection.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/DebuggerConnection.kt b/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/DebuggerConnection.kt index b4a919f3342..cd609b51f74 100644 --- a/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/DebuggerConnection.kt +++ b/idea/jvm-debugger/jvm-debugger-coroutine/src/org/jetbrains/kotlin/idea/debugger/coroutine/DebuggerConnection.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.idea.debugger.coroutine import com.intellij.debugger.DebuggerInvocationUtil import com.intellij.debugger.engine.JavaDebugProcess -import com.intellij.debugger.engine.SuspendContextImpl import com.intellij.execution.configurations.DebuggingRunnerData import com.intellij.execution.configurations.JavaParameters import com.intellij.execution.configurations.RunConfigurationBase @@ -17,6 +16,7 @@ import com.intellij.openapi.Disposable import com.intellij.openapi.project.Project import com.intellij.openapi.util.Disposer import com.intellij.ui.content.Content +import com.intellij.util.IncorrectOperationException import com.intellij.util.messages.MessageBusConnection import com.intellij.xdebugger.XDebugProcess import com.intellij.xdebugger.XDebugSession @@ -24,7 +24,6 @@ import com.intellij.xdebugger.XDebuggerManager import com.intellij.xdebugger.XDebuggerManagerListener import com.intellij.xdebugger.impl.XDebugSessionImpl import org.apache.maven.artifact.versioning.DefaultArtifactVersion -import org.jetbrains.kotlin.idea.debugger.coroutine.proxy.ManagerThreadExecutor import org.jetbrains.kotlin.idea.debugger.coroutine.util.CreateContentParamsProvider import org.jetbrains.kotlin.idea.debugger.coroutine.util.logger import org.jetbrains.kotlin.idea.debugger.coroutine.view.XCoroutineView @@ -80,8 +79,10 @@ class DebuggerConnection( override fun processStarted(debugProcess: XDebugProcess) { DebuggerInvocationUtil.swingInvokeLater(project) { if (debugProcess is JavaDebugProcess) { - registerXCoroutinesPanel(debugProcess.session)?.let { - Disposer.register(this, it) + if (!Disposer.isDisposed(this)) { + registerXCoroutinesPanel(debugProcess.session)?.let { + Disposer.register(this, it) + } } } }