From a016faa7f43b88ce579945b380d35488e9af3b61 Mon Sep 17 00:00:00 2001 From: "Kirill.Safonov" Date: Thu, 24 Mar 2011 19:06:19 +0300 Subject: [PATCH] when moving file, update itself before retargeting usages (will fix IDEA-67004) --- .../MoveDirectoryWithClassesProcessor.java | 13 +++++++------ .../MoveFilesOrDirectoriesProcessor.java | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveDirectoryWithClassesProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveDirectoryWithClassesProcessor.java index 982615d1afb6..418a0148e620 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveDirectoryWithClassesProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveDirectoryWithClassesProcessor.java @@ -214,6 +214,13 @@ public class MoveDirectoryWithClassesProcessor extends BaseRefactoringProcessor for (PsiElement newElement : oldToNewElementsMapping.values()) { ChangeContextUtil.decodeContextInfo(newElement, null, null); } + + // fix references in moved files to outer files + for (PsiFile movedFile : movedFiles) { + MoveFileHandler.forElement(movedFile).updateMovedFile(movedFile); + FileReferenceContextUtil.decodeFileReferences(movedFile); + } + myNonCodeUsages = MoveClassesOrPackagesProcessor.retargetUsages(usages, oldToNewElementsMapping); for (UsageInfo usage : usages) { if (usage instanceof RemoveOnDemandImportStatementsUsageInfo) { @@ -223,12 +230,6 @@ public class MoveDirectoryWithClassesProcessor extends BaseRefactoringProcessor } } } - // fix references in moved files to outer files - for (PsiFile movedFile : movedFiles) { - MoveFileHandler.forElement(movedFile).updateMovedFile(movedFile); - FileReferenceContextUtil.decodeFileReferences(movedFile); - } - for (PsiDirectory directory : myDirectories) { directory.delete(); } diff --git a/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesProcessor.java b/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesProcessor.java index 0979ccb9a3dd..e3e62b8b5064 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesProcessor.java +++ b/platform/lang-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/MoveFilesOrDirectoriesProcessor.java @@ -172,14 +172,14 @@ public class MoveFilesOrDirectoriesProcessor extends BaseRefactoringProcessor { } }); - retargetUsages(usages, oldToNewMap); - // fix references in moved files to outer files for (PsiFile movedFile : movedFiles) { MoveFileHandler.forElement(movedFile).updateMovedFile(movedFile); FileReferenceContextUtil.decodeFileReferences(movedFile); } + retargetUsages(usages, oldToNewMap); + // Perform CVS "add", "remove" commands on moved files. if (myMoveCallback != null) {