diff --git a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FilePathReferenceProvider.java b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FilePathReferenceProvider.java index b7c9419c06fd..7338c9798308 100644 --- a/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FilePathReferenceProvider.java +++ b/java/java-impl/src/com/intellij/psi/impl/source/resolve/reference/impl/providers/FilePathReferenceProvider.java @@ -138,20 +138,17 @@ public class FilePathReferenceProvider extends PsiReferenceProvider { } } - for (Module module : modules) { - moduleRootManager = ModuleRootManager.getInstance(module); - VirtualFile[] sourceRoots = moduleRootManager.getSourceRoots(); - for (VirtualFile root : sourceRoots) { - final PsiDirectory directory = psiManager.findDirectory(root); - if (directory != null) { - final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage(directory); - if (aPackage != null && aPackage.getName() != null) { - // package prefix - result.add(PackagePrefixFileSystemItem.create(directory)); - } - else { - result.add(directory); - } + VirtualFile[] sourceRoots = moduleRootManager.orderEntries().recursively().withoutSdk().withoutLibraries().getSourceRoots(); + for (VirtualFile root : sourceRoots) { + final PsiDirectory directory = psiManager.findDirectory(root); + if (directory != null) { + final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage(directory); + if (aPackage != null && aPackage.getName() != null) { + // package prefix + result.add(PackagePrefixFileSystemItem.create(directory)); + } + else { + result.add(directory); } } }