From 844d4836f69a4081321450c034429bdad7c8e0ce Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 21 May 2014 16:58:02 +0200 Subject: [PATCH] compare virtual files by equals, not == --- .../junit/JavaRuntimeConfigurationProducerBase.java | 2 +- .../ide/projectView/impl/nodes/ClassTreeNode.java | 4 ++-- .../ide/projectView/impl/nodes/PsiFileNode.java | 2 +- .../openapi/vfs/local/SymlinkHandlingTest.java | 6 ++++-- .../com/intellij/openapi/roots/impl/RootIndex.java | 12 ++++++------ .../DumpCleanHighlightingTestdataAction.java | 2 +- .../gradle/util/GradleEditorTabTitleProvider.java | 2 +- .../idea/maven/project/MavenProjectsTree.java | 2 +- .../MavenResourceCompilerConfigurationGenerator.java | 3 ++- 9 files changed, 19 insertions(+), 16 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/junit/JavaRuntimeConfigurationProducerBase.java b/java/execution/impl/src/com/intellij/execution/junit/JavaRuntimeConfigurationProducerBase.java index e35f3e903cc4..dec2dde64a95 100644 --- a/java/execution/impl/src/com/intellij/execution/junit/JavaRuntimeConfigurationProducerBase.java +++ b/java/execution/impl/src/com/intellij/execution/junit/JavaRuntimeConfigurationProducerBase.java @@ -70,7 +70,7 @@ public abstract class JavaRuntimeConfigurationProducerBase extends RuntimeConfig else { final VirtualFile virtualFile = directory.getVirtualFile(); //choose default package when selection on content root - if (fileIndex.getContentRootForFile(virtualFile) == virtualFile) { + if (virtualFile.equals(fileIndex.getContentRootForFile(virtualFile))) { final Module module = ModuleUtilCore.findModuleForFile(virtualFile, project); if (module != null) { for (ContentEntry entry : ModuleRootManager.getInstance(module).getContentEntries()) { diff --git a/java/java-impl/src/com/intellij/ide/projectView/impl/nodes/ClassTreeNode.java b/java/java-impl/src/com/intellij/ide/projectView/impl/nodes/ClassTreeNode.java index 6ee837338113..371eed2cc50b 100644 --- a/java/java-impl/src/com/intellij/ide/projectView/impl/nodes/ClassTreeNode.java +++ b/java/java-impl/src/com/intellij/ide/projectView/impl/nodes/ClassTreeNode.java @@ -168,10 +168,10 @@ public class ClassTreeNode extends BasePsiMemberNode{ } private boolean canRepresent(final PsiClass psiClass, final Object element) { - if (psiClass == null || !psiClass.isValid()) return false; + if (psiClass == null || !psiClass.isValid() || element == null) return false; final PsiFile parentFile = parentFileOf(psiClass); - if (parentFile != null && (parentFile == element || parentFile.getVirtualFile() == element)) return true; + if (parentFile != null && (parentFile == element || element.equals(parentFile.getVirtualFile()))) return true; if (!getSettings().isShowMembers()) { if (element instanceof PsiElement && ((PsiElement)element).isValid()) { diff --git a/platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiFileNode.java b/platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiFileNode.java index 0d92e9a36015..8c232286a1ff 100644 --- a/platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiFileNode.java +++ b/platform/lang-impl/src/com/intellij/ide/projectView/impl/nodes/PsiFileNode.java @@ -201,7 +201,7 @@ public class PsiFileNode extends BasePsiNode implements NavigatableWith @Override public boolean canRepresent(final Object element) { - return super.canRepresent(element) || getValue() != null && getValue().getVirtualFile() == element; + return super.canRepresent(element) || getValue() != null && element != null && element.equals(getValue().getVirtualFile()); } @Override diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/vfs/local/SymlinkHandlingTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/vfs/local/SymlinkHandlingTest.java index bb84db557819..ea9a5fa56166 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/vfs/local/SymlinkHandlingTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/vfs/local/SymlinkHandlingTest.java @@ -236,8 +236,9 @@ public class SymlinkHandlingTest extends SymlinkTestCase { refresh(); assertTrue(vLink1.isValid()); VirtualFile vLink2 = myFileSystem.findFileByIoFile(link); + assertEquals(vLink1, vLink2); assertTrue("link=" + link + ", vLink=" + vLink2, - vLink2 == vLink1 && vLink2.isDirectory() && vLink2.is(VFileProperty.SYMLINK)); + vLink2.isDirectory() && vLink2.is(VFileProperty.SYMLINK)); assertEquals(2, vLink2.getChildren().length); assertPathsEqual(targetDir2.getPath(), vLink1.getCanonicalPath()); } @@ -261,8 +262,9 @@ public class SymlinkHandlingTest extends SymlinkTestCase { refresh(); assertTrue(vLink1.isValid()); VirtualFile vLink2 = myFileSystem.findFileByIoFile(link); + assertEquals(vLink1, vLink2); assertTrue("link=" + link + ", vLink=" + vLink2, - vLink2 == vLink1 && !vLink2.isDirectory() && vLink2.is(VFileProperty.SYMLINK)); + !vLink2.isDirectory() && vLink2.is(VFileProperty.SYMLINK)); assertEquals(FileUtil.loadFile(target2), VfsUtilCore.loadText(vLink2)); assertPathsEqual(target2.getPath(), vLink1.getCanonicalPath()); } diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootIndex.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootIndex.java index 7a3b4b113292..8e58a6b3c78c 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootIndex.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/RootIndex.java @@ -276,7 +276,7 @@ public class RootIndex extends DirectoryIndex { } DirectoryInfo info = myInfoCache.get(root); if (info != null) { - if (dir != root) { + if (!dir.equals(root)) { cacheInfos(dir, root, info); } return info == NULL_INFO ? null : info; @@ -490,7 +490,7 @@ public class RootIndex extends DirectoryIndex { VirtualFile librarySourceRoot) { VirtualFile packageRoot = findPackageRootInfo(hierarchy, moduleContentRoot, libraryClassRoot, librarySourceRoot); String prefix = packagePrefix.get(packageRoot); - if (prefix != null && packageRoot != root) { + if (prefix != null && !root.equals(packageRoot)) { assert packageRoot != null; String relative = VfsUtilCore.getRelativePath(root, packageRoot, '.'); prefix = StringUtil.isEmpty(prefix) ? relative : prefix + '.' + relative; @@ -509,10 +509,10 @@ public class RootIndex extends DirectoryIndex { librarySourceRoot == null) { return root; } - if (root == libraryClassRoot || root == librarySourceRoot) { + if (root.equals(libraryClassRoot) || root.equals(librarySourceRoot)) { return root; } - if (root == moduleContentRoot && !sourceRootOf.containsKey(root) && librarySourceRoot == null && libraryClassRoot == null) { + if (root.equals(moduleContentRoot) && !sourceRootOf.containsKey(root) && librarySourceRoot == null && libraryClassRoot == null) { return null; } } @@ -527,10 +527,10 @@ public class RootIndex extends DirectoryIndex { @NotNull MultiMap libSourceRootEntries) { LinkedHashSet orderEntries = ContainerUtil.newLinkedHashSet(); for (VirtualFile root : hierarchy) { - if (root == libraryClassRoot && !sourceRootOf.containsKey(root)) { + if (root.equals(libraryClassRoot) && !sourceRootOf.containsKey(root)) { orderEntries.addAll(libClassRootEntries.get(root)); } - if (root == librarySourceRoot && libraryClassRoot == null) { + if (root.equals(librarySourceRoot) && libraryClassRoot == null) { orderEntries.addAll(libSourceRootEntries.get(root)); } if (libClassRootEntries.containsKey(root) || sourceRootOf.containsKey(root) && librarySourceRoot == null) { diff --git a/plugins/devkit/src/internal/DumpCleanHighlightingTestdataAction.java b/plugins/devkit/src/internal/DumpCleanHighlightingTestdataAction.java index a9abc5b1d77b..aeee529d9935 100644 --- a/plugins/devkit/src/internal/DumpCleanHighlightingTestdataAction.java +++ b/plugins/devkit/src/internal/DumpCleanHighlightingTestdataAction.java @@ -67,7 +67,7 @@ public class DumpCleanHighlightingTestdataAction extends AnAction implements Dum targetDescriptor.setTitle("Choose Directory"); targetDescriptor.setDescription("Directory where highlighting-markup-free copies would be placed"); final VirtualFile destinationFolder = FileChooser.chooseFile(targetDescriptor, project, null); - if (destinationFolder == dirToProcess) { + if (dirToProcess.equals(destinationFolder)) { Messages.showErrorDialog(project, "Source and destination roots should differ", "Reject to Proceed"); return; } diff --git a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleEditorTabTitleProvider.java b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleEditorTabTitleProvider.java index 635d43749382..08d3e077efd6 100644 --- a/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleEditorTabTitleProvider.java +++ b/plugins/gradle/src/org/jetbrains/plugins/gradle/util/GradleEditorTabTitleProvider.java @@ -34,7 +34,7 @@ public class GradleEditorTabTitleProvider implements EditorTabTitleProvider { final ModuleRootManager moduleRootManager = ModuleRootManager.getInstance(module); for (VirtualFile virtualFile : moduleRootManager.getContentRoots()) { - if (virtualFile == file.getParent()) return module.getName(); + if (virtualFile.equals(file.getParent())) return module.getName(); } } } diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsTree.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsTree.java index cd0105fe9b10..89bf69711114 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsTree.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenProjectsTree.java @@ -905,7 +905,7 @@ public class MavenProjectsTree { Module module = fileIndex.getModuleForFile(pomFile); if (module == null) continue; - if (fileIndex.getContentRootForFile(pomFile) != pomFile.getParent()) continue; + if (!Comparing.equal(fileIndex.getContentRootForFile(pomFile), pomFile.getParent())) continue; updateCrc(crc, module.getName()); diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResourceCompilerConfigurationGenerator.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResourceCompilerConfigurationGenerator.java index 8de521961c34..4a8365c3f830 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResourceCompilerConfigurationGenerator.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/project/MavenResourceCompilerConfigurationGenerator.java @@ -8,6 +8,7 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.*; +import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.JDOMUtil; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; @@ -96,7 +97,7 @@ public class MavenResourceCompilerConfigurationGenerator { Module module = fileIndex.getModuleForFile(pomXml); if (module == null) continue; - if (mavenProject.getDirectoryFile() != fileIndex.getContentRootForFile(pomXml)) continue; + if (!Comparing.equal(mavenProject.getDirectoryFile(), fileIndex.getContentRootForFile(pomXml))) continue; MavenModuleResourceConfiguration resourceConfig = new MavenModuleResourceConfiguration();