From ce7c601cf9d4d1a323659d613affe81b7d88e968 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 10 Oct 2016 12:30:04 +0200 Subject: [PATCH] indexing should be modal in root changes caused by refactorings to prevent deadlocks with import optimization (IDEA-162154) --- .../lang-impl/src/com/intellij/ide/util/DeleteHandler.java | 3 +-- .../refactoring/copy/CopyFilesOrDirectoriesHandler.java | 2 +- .../moveFilesOrDirectories/MoveFilesOrDirectoriesDialog.java | 2 +- .../com/intellij/refactoring/safeDelete/SafeDeleteDialog.java | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/ide/util/DeleteHandler.java b/platform/lang-impl/src/com/intellij/ide/util/DeleteHandler.java index b70aac4fe6bc..b2dc54cc2657 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/DeleteHandler.java +++ b/platform/lang-impl/src/com/intellij/ide/util/DeleteHandler.java @@ -30,7 +30,6 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.fileEditor.impl.NonProjectFileWritingAccessProvider; -import com.intellij.openapi.project.DumbModePermission; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; @@ -139,7 +138,7 @@ public class DeleteHandler { dialog.close(DialogWrapper.OK_EXIT_CODE); }, elements, dialog.isSearchInComments(), dialog.isSearchForTextOccurences(), true); - DumbService.allowStartingDumbModeInside(DumbModePermission.MAY_START_BACKGROUND, processor); + processor.run(); } }) { @Override diff --git a/platform/lang-impl/src/com/intellij/refactoring/copy/CopyFilesOrDirectoriesHandler.java b/platform/lang-impl/src/com/intellij/refactoring/copy/CopyFilesOrDirectoriesHandler.java index e78bc5f071cb..26a3097cbf2e 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/copy/CopyFilesOrDirectoriesHandler.java +++ b/platform/lang-impl/src/com/intellij/refactoring/copy/CopyFilesOrDirectoriesHandler.java @@ -103,7 +103,7 @@ public class CopyFilesOrDirectoriesHandler extends CopyHandlerDelegateBase { } public static void copyAsFiles(PsiElement[] elements, @Nullable PsiDirectory defaultTargetDirectory, Project project) { - DumbService.allowStartingDumbModeInside(DumbModePermission.MAY_START_BACKGROUND, () -> + DumbService.allowStartingDumbModeInside(DumbModePermission.MAY_START_MODAL, () -> doCopyAsFiles(elements, defaultTargetDirectory, project)); } diff --git a/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesDialog.java b/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesDialog.java index c8723c58317e..9755cd426ba1 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesDialog.java +++ b/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesDialog.java @@ -238,7 +238,7 @@ public class MoveFilesOrDirectoriesDialog extends DialogWrapper { @Override public void show() { - DumbService.allowStartingDumbModeInside(DumbModePermission.MAY_START_BACKGROUND, () -> super.show()); + DumbService.allowStartingDumbModeInside(DumbModePermission.MAY_START_MODAL, () -> super.show()); } } diff --git a/platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteDialog.java b/platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteDialog.java index 25abfc67b8d7..cd0bd871da21 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteDialog.java +++ b/platform/lang-impl/src/com/intellij/refactoring/safeDelete/SafeDeleteDialog.java @@ -202,7 +202,7 @@ public class SafeDeleteDialog extends DialogWrapper { return; } - DumbService.allowStartingDumbModeInside(DumbModePermission.MAY_START_BACKGROUND, () -> NonProjectFileWritingAccessProvider.disableChecksDuring(() -> { + DumbService.allowStartingDumbModeInside(DumbModePermission.MAY_START_MODAL, () -> NonProjectFileWritingAccessProvider.disableChecksDuring(() -> { if (myCallback != null && isSafeDelete()) { myCallback.run(this); }