diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassesOrPackagesHandler.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassesOrPackagesHandler.java index 17fa05b478c9..94834f031bbb 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassesOrPackagesHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/JavaMoveClassesOrPackagesHandler.java @@ -45,13 +45,13 @@ import com.intellij.refactoring.util.CommonRefactoringUtil; import com.intellij.refactoring.util.RadioUpDownListener; import com.intellij.refactoring.util.RefactoringUtil; import com.intellij.util.IncorrectOperationException; -import java.util.HashSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; import java.util.Arrays; +import java.util.HashSet; public class JavaMoveClassesOrPackagesHandler extends MoveHandlerDelegate { private static final Logger LOG = Logger.getInstance(JavaMoveClassesOrPackagesHandler.class); @@ -221,6 +221,7 @@ public class JavaMoveClassesOrPackagesHandler extends MoveHandlerDelegate { boolean searchInComments, boolean searchForTextOccurences) { final MoveDestination destination = createDestination(aPackage, targetDirectory); + if (destination == null) return null; try { for (PsiDirectory dir: directories) { MoveFilesOrDirectoriesUtil.checkIfMoveIntoSelf(dir, WriteAction.compute(() -> destination.getTargetDirectory(dir))); diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesToNewDirectoryDialog.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesToNewDirectoryDialog.java index 8df6f855b6ea..293b7e1fbaa6 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesToNewDirectoryDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesToNewDirectoryDialog.java @@ -216,6 +216,7 @@ public class MoveClassesOrPackagesToNewDirectoryDialog extends MoveDialogBase { boolean searchInComments, boolean searchForTextOccurences) { final MoveDestination destination = createDestination(aPackage, directory); + if (destination == null) return null; MoveClassesOrPackagesProcessor processor = createMoveClassesOrPackagesProcessor(myDirectory.getProject(), myElementsToMove, destination, searchInComments, searchForTextOccurences, myMoveCallback); @@ -227,6 +228,7 @@ public class MoveClassesOrPackagesToNewDirectoryDialog extends MoveDialogBase { return null; } + @Nullable protected MoveDestination createDestination(PsiPackage aPackage, PsiDirectory directory) { final Project project = aPackage.getProject(); final VirtualFile sourceRoot = ProjectRootManager.getInstance(project).getFileIndex().getSourceRootForFile(directory.getVirtualFile());