From 8f72edb456f408cdff164e359343fae8e90d4cd3 Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 7 Oct 2016 14:28:59 +0200 Subject: [PATCH] execute PydevConsoleRunner in a write-safe context (EA-89529 - assert: FileDocumentManagerImpl.saveAllDocuments) --- .../src/com/jetbrains/python/console/PydevConsoleRunner.java | 4 +++- .../python/console/PythonConsoleToolWindowFactory.java | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/python/src/com/jetbrains/python/console/PydevConsoleRunner.java b/python/src/com/jetbrains/python/console/PydevConsoleRunner.java index 938dff0b3344..2476bdc11f30 100644 --- a/python/src/com/jetbrains/python/console/PydevConsoleRunner.java +++ b/python/src/com/jetbrains/python/console/PydevConsoleRunner.java @@ -43,6 +43,7 @@ import com.intellij.lang.ASTNode; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.ActionUtil; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.diagnostic.Logger; @@ -75,6 +76,7 @@ import com.intellij.psi.PsiFile; import com.intellij.remote.RemoteProcess; import com.intellij.remote.Tunnelable; import com.intellij.testFramework.LightVirtualFile; +import com.intellij.ui.GuiUtils; import com.intellij.util.ArrayUtil; import com.intellij.util.IJSwingUtilities; import com.intellij.util.PathMappingSettings; @@ -1048,7 +1050,7 @@ public class PydevConsoleRunner extends AbstractConsoleRunnerWithHistory PydevConsoleRunner.this.run()); + GuiUtils.invokeLaterIfNeeded(() -> PydevConsoleRunner.this.run(), ModalityState.defaultModalityState()); } }.queue(); } diff --git a/python/src/com/jetbrains/python/console/PythonConsoleToolWindowFactory.java b/python/src/com/jetbrains/python/console/PythonConsoleToolWindowFactory.java index 2a49d5efedd3..8ae23b99acb2 100644 --- a/python/src/com/jetbrains/python/console/PythonConsoleToolWindowFactory.java +++ b/python/src/com/jetbrains/python/console/PythonConsoleToolWindowFactory.java @@ -16,6 +16,7 @@ package com.jetbrains.python.console; import com.intellij.execution.console.LanguageConsoleView; +import com.intellij.openapi.application.TransactionGuard; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.wm.ToolWindow; @@ -37,6 +38,6 @@ public class PythonConsoleToolWindowFactory implements ToolWindowFactory, DumbAw PythonConsoleToolWindow.getInstance(project).initialized(); } }); - runner.run(); + TransactionGuard.submitTransaction(project, () -> runner.run()); } }