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