diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaModuleGraphUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaModuleGraphUtil.java index f62587fbd96b..912d96d4b7ed 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaModuleGraphUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/JavaModuleGraphUtil.java @@ -6,6 +6,7 @@ import com.intellij.openapi.fileTypes.FileTypeRegistry; import com.intellij.openapi.fileTypes.LanguageFileType; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; +import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ProjectFileIndex; @@ -16,6 +17,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.impl.java.stubs.index.JavaModuleNameIndex; import com.intellij.psi.impl.light.LightJavaModule; +import com.intellij.psi.search.FilenameIndex; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.ProjectScope; import com.intellij.psi.util.CachedValueProvider.Result; @@ -111,6 +113,12 @@ public final class JavaModuleGraphUtil { @Nullable private static PsiJavaModule findDescriptionByModuleInner(@NotNull Module module, boolean inTests) { Project project = module.getProject(); + GlobalSearchScope moduleScope = module.getModuleScope(); + if (!DumbService.isDumb(project) && + FilenameIndex.getFilesByName(project, PsiJavaModule.MODULE_INFO_FILE, moduleScope).length == 0 && + FilenameIndex.getFilesByName(project, JarFile.MANIFEST_NAME, moduleScope).length == 0) { + return null; + } JavaSourceRootType rootType = inTests ? JavaSourceRootType.TEST_SOURCE : JavaSourceRootType.SOURCE; List sourceRoots = ModuleRootManager.getInstance(module).getSourceRoots(rootType); List files = ContainerUtil.mapNotNull(sourceRoots, root -> root.findChild(PsiJavaModule.MODULE_INFO_FILE));