From 07e19a683bd570d38a58f0083d90064d9dc2c9aa Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Tue, 25 Aug 2015 13:51:40 +0200 Subject: [PATCH] fix NPE if MultipleFileMergeDialog was created without project (as ICS does) --- .../src/com/intellij/diff/merge/TextMergeTool.java | 7 ++++++- .../src/com/intellij/openapi/command/undo/UndoManager.java | 5 +++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/platform/diff-impl/src/com/intellij/diff/merge/TextMergeTool.java b/platform/diff-impl/src/com/intellij/diff/merge/TextMergeTool.java index a0c1ca24d1b3..26e58ddabf0e 100644 --- a/platform/diff-impl/src/com/intellij/diff/merge/TextMergeTool.java +++ b/platform/diff-impl/src/com/intellij/diff/merge/TextMergeTool.java @@ -701,13 +701,18 @@ public class TextMergeTool implements MergeTool { } private void registerUndoRedo(final boolean undo) { + Project project = getProject(); + if (project == null) { + return; + } + List affectedChanges = getAffectedChanges(); final List states = new ArrayList(affectedChanges.size()); for (TextMergeChange change : affectedChanges) { states.add(change.storeState()); } - UndoManager.getInstance(getProject()).undoableActionPerformed(new BasicUndoableAction(myDocument) { + UndoManager.getInstance(project).undoableActionPerformed(new BasicUndoableAction(myDocument) { @Override public void undo() throws UnexpectedUndoException { if (undo) restoreStates(states); diff --git a/platform/platform-api/src/com/intellij/openapi/command/undo/UndoManager.java b/platform/platform-api/src/com/intellij/openapi/command/undo/UndoManager.java index bcbe7afb9d6e..b6f60a55f968 100644 --- a/platform/platform-api/src/com/intellij/openapi/command/undo/UndoManager.java +++ b/platform/platform-api/src/com/intellij/openapi/command/undo/UndoManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2009 JetBrains s.r.o. + * Copyright 2000-2015 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,12 +21,13 @@ import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Pair; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public abstract class UndoManager { public static final Key ORIGINAL_DOCUMENT = new Key("ORIGINAL_DOCUMENT"); - public static UndoManager getInstance(Project project) { + public static UndoManager getInstance(@NotNull Project project) { return project.getComponent(UndoManager.class); }