From c8810774d1115112797bd689871f69ad8fd525d4 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Wed, 20 Dec 2017 20:13:53 +0100 Subject: [PATCH] don't recognize packages under resource roots (IDEA-184002) --- .../psi/impl/file/JavaDirectoryServiceImpl.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/file/JavaDirectoryServiceImpl.java b/java/java-impl/src/com/intellij/psi/impl/file/JavaDirectoryServiceImpl.java index 7bfd3d822380..706ef85881a9 100644 --- a/java/java-impl/src/com/intellij/psi/impl/file/JavaDirectoryServiceImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/file/JavaDirectoryServiceImpl.java @@ -40,6 +40,7 @@ import com.intellij.psi.impl.JavaPsiImplementationHelper; import com.intellij.psi.util.PsiUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jps.model.java.JavaModuleSourceRootTypes; import java.util.Collections; import java.util.Map; @@ -50,10 +51,12 @@ public class JavaDirectoryServiceImpl extends CoreJavaDirectoryService { @Override public PsiPackage getPackage(@NotNull PsiDirectory dir) { - ProjectFileIndex projectFileIndex = ProjectRootManager.getInstance(dir.getProject()).getFileIndex(); - String packageName = projectFileIndex.getPackageNameByDirectory(dir.getVirtualFile()); - if (packageName == null) return null; - return JavaPsiFacade.getInstance(dir.getProject()).findPackage(packageName); + Project project = dir.getProject(); + ProjectFileIndex projectFileIndex = ProjectRootManager.getInstance(project).getFileIndex(); + VirtualFile virtualFile = dir.getVirtualFile(); + String packageName = projectFileIndex.getPackageNameByDirectory(virtualFile); + if (packageName == null || projectFileIndex.isUnderSourceRootOfType(virtualFile, JavaModuleSourceRootTypes.RESOURCES)) return null; + return JavaPsiFacade.getInstance(project).findPackage(packageName); } @Override