execute PydevConsoleRunner in a write-safe context (EA-89529 - assert: FileDocumentManagerImpl.saveAllDocuments)

This commit is contained in:
peter
2016-10-07 14:54:54 +02:00
parent 3bf9743d59
commit 8f72edb456
2 changed files with 5 additions and 2 deletions
@@ -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<PythonC
myProcessHandler.waitFor();
}
UIUtil.invokeLaterIfNeeded(() -> PydevConsoleRunner.this.run());
GuiUtils.invokeLaterIfNeeded(() -> PydevConsoleRunner.this.run(), ModalityState.defaultModalityState());
}
}.queue();
}
@@ -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());
}
}