diff --git a/platform/execution-impl/src/com/intellij/diagnostic/logging/LogConsoleBase.java b/platform/execution-impl/src/com/intellij/diagnostic/logging/LogConsoleBase.java index 196072eac231..a753fe18d7c4 100644 --- a/platform/execution-impl/src/com/intellij/diagnostic/logging/LogConsoleBase.java +++ b/platform/execution-impl/src/com/intellij/diagnostic/logging/LogConsoleBase.java @@ -19,6 +19,7 @@ import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.CustomComponentAction; import com.intellij.openapi.actionSystem.impl.ActionButton; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.application.WriteIntentReadAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; @@ -45,6 +46,7 @@ import com.intellij.ui.components.panels.NonOpaquePanel; import com.intellij.util.Alarm; import com.intellij.util.ArrayUtilRt; import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.ui.EDT; import com.intellij.util.ui.JBEmptyBorder; import com.intellij.util.ui.accessibility.AccessibleContextUtil; import com.intellij.util.ui.accessibility.ScreenReader; @@ -439,7 +441,14 @@ public abstract class LogConsoleBase extends AdditionalTabComponent implements L @Override public void processTerminated(final @NotNull ProcessEvent event) { process.removeProcessListener(this); - WriteIntentReadAction.run((Runnable)() ->stopRunning(true)); + if (EDT.isCurrentThreadEdt()) { + WriteIntentReadAction.run((Runnable)() -> stopRunning(true)); + } + else { + ApplicationManager.getApplication().invokeAndWait(() -> { + stopRunning(true); + }, ModalityState.any()); + } } }; process.addProcessListener(stopListener);