From a9d2330c9c4cd2951072a61de1276ae4b5dec4ef Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Wed, 24 Jan 2018 14:42:48 +0300 Subject: [PATCH] do not record undo for already disposed projects --- .../com/intellij/lang/PerFileMappingsBase.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/platform/platform-api/src/com/intellij/lang/PerFileMappingsBase.java b/platform/platform-api/src/com/intellij/lang/PerFileMappingsBase.java index d9894e62954c..639b5572c819 100644 --- a/platform/platform-api/src/com/intellij/lang/PerFileMappingsBase.java +++ b/platform/platform-api/src/com/intellij/lang/PerFileMappingsBase.java @@ -294,14 +294,15 @@ public abstract class PerFileMappingsBase implements PersistentStateComponent public void before(@NotNull List events) { if (CommandProcessor.getInstance().isUndoTransparentActionInProgress()) return; Project project = CommandProcessor.getInstance().getCurrentCommandProject(); - UndoManager undoManager = (project != null ? UndoManager.getInstance(project) : UndoManager.getGlobalInstance()); - if (project == null) return; + if (project == null || !project.isOpen()) return; + MyUndoableAction action = createUndoableAction(events); - if (action != null) { - action.doRemove(action.removed); - lastAction = new WeakReference<>(action); - undoManager.undoableActionPerformed(action); - } + if (action == null) return; + + action.doRemove(action.removed); + lastAction = new WeakReference<>(action); + + UndoManager.getInstance(project).undoableActionPerformed(action); } @Override