diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/BasicDefaultVcsRootPolicy.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/BasicDefaultVcsRootPolicy.java index 0008113db02e..cbc508087506 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/BasicDefaultVcsRootPolicy.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/BasicDefaultVcsRootPolicy.java @@ -50,7 +50,7 @@ public class BasicDefaultVcsRootPolicy extends DefaultVcsRootPolicy { return result; } - public boolean matchesDefaultMapping(final VirtualFile file, final Object matchContext) { + public boolean matchesDefaultMapping(@NotNull final VirtualFile file, final Object matchContext) { return VfsUtil.isAncestor(ProjectBaseDirectory.getInstance(myProject).getBaseDir(myBaseDir), file, false); } @@ -60,7 +60,7 @@ public class BasicDefaultVcsRootPolicy extends DefaultVcsRootPolicy { } @Nullable - public VirtualFile getVcsRootFor(final VirtualFile file) { + public VirtualFile getVcsRootFor(@NotNull final VirtualFile file) { return ProjectBaseDirectory.getInstance(myProject).getBaseDir(myBaseDir); } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultVcsRootPolicy.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultVcsRootPolicy.java index 57eee5984492..62b354648c67 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultVcsRootPolicy.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/DefaultVcsRootPolicy.java @@ -38,13 +38,13 @@ public abstract class DefaultVcsRootPolicy { @NotNull public abstract List getDefaultVcsRoots(@NotNull NewMappings mappingList, @NotNull String vcsName); - public abstract boolean matchesDefaultMapping(final VirtualFile file, final Object matchContext); + public abstract boolean matchesDefaultMapping(@NotNull VirtualFile file, final Object matchContext); @Nullable public abstract Object getMatchContext(final VirtualFile file); @Nullable - public abstract VirtualFile getVcsRootFor(final VirtualFile file); + public abstract VirtualFile getVcsRootFor(@NotNull VirtualFile file); @NotNull public abstract Collection getDirtyRoots(); diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/ModuleDefaultVcsRootPolicy.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/ModuleDefaultVcsRootPolicy.java index 1c2ffffe52dd..b00fc6958a2c 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/ModuleDefaultVcsRootPolicy.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/ModuleDefaultVcsRootPolicy.java @@ -98,7 +98,7 @@ public class ModuleDefaultVcsRootPolicy extends DefaultVcsRootPolicy { } @Override - public boolean matchesDefaultMapping(final VirtualFile file, final Object matchContext) { + public boolean matchesDefaultMapping(@NotNull final VirtualFile file, final Object matchContext) { if (matchContext != null) { return true; } @@ -113,17 +113,17 @@ public class ModuleDefaultVcsRootPolicy extends DefaultVcsRootPolicy { @Override @Nullable - public VirtualFile getVcsRootFor(final VirtualFile file) { - if (myBaseDir != null && PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class) - .isValidAncestor(myBaseDir, file)) { + public VirtualFile getVcsRootFor(@NotNull VirtualFile file) { + FileIndexFacade indexFacade = PeriodicalTasksCloser.getInstance().safeGetService(myProject, FileIndexFacade.class); + if (myBaseDir != null && indexFacade.isValidAncestor(myBaseDir, file)) { return myBaseDir; } - final VirtualFile contentRoot = ProjectRootManager.getInstance(myProject).getFileIndex().getContentRootForFile(file, Registry.is("ide.hide.excluded.files")); + VirtualFile contentRoot = ProjectRootManager.getInstance(myProject).getFileIndex().getContentRootForFile(file, Registry.is("ide.hide.excluded.files")); if (contentRoot != null && contentRoot.isDirectory()) { return contentRoot; } if (ProjectKt.isDirectoryBased(myProject)) { - final VirtualFile ideaDir = ProjectKt.getStateStore(myProject).getDirectoryStoreFile(); + VirtualFile ideaDir = ProjectKt.getStateStore(myProject).getDirectoryStoreFile(); if (ideaDir != null && VfsUtilCore.isAncestor(ideaDir, file, false)) { return ideaDir; } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/ProjectLevelVcsManagerImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/ProjectLevelVcsManagerImpl.java index 660436c6627c..089a98929f99 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/ProjectLevelVcsManagerImpl.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/ProjectLevelVcsManagerImpl.java @@ -295,6 +295,7 @@ public class ProjectLevelVcsManagerImpl extends ProjectLevelVcsManagerEx impleme @Override @Nullable public VirtualFile getVcsRootFor(@Nullable final VirtualFile file) { + if (file == null) return null; final VcsDirectoryMapping mapping = myMappings.getMappingFor(file); if (mapping == null) { return null; diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/NewMappings.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/NewMappings.java index cac610d432c6..024f698daf03 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/NewMappings.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/projectlevelman/NewMappings.java @@ -247,7 +247,7 @@ public class NewMappings { return mapping.getVcs(); } - private boolean fileMatchesMapping(final VirtualFile file, + private boolean fileMatchesMapping(@NotNull VirtualFile file, final Object matchContext, final String systemIndependentPath, final VcsDirectoryMapping mapping) {