diff --git a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaModuleIndexImpl.java b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaModuleIndexImpl.java index e347b33eb8d7..a9c9ff721d76 100644 --- a/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaModuleIndexImpl.java +++ b/jps/model-impl/src/org/jetbrains/jps/model/java/impl/JavaModuleIndexImpl.java @@ -26,6 +26,7 @@ import org.jetbrains.jps.model.module.JpsModuleSourceRoot; import org.jetbrains.jps.util.JpsPathUtil; import java.io.*; +import java.util.Collections; import java.util.Map; import java.util.Properties; import java.util.Set; @@ -36,15 +37,22 @@ public class JavaModuleIndexImpl extends JavaModuleIndex { private static final String MODULE_INFO_FILE = "module-info.java"; private final Map myMapping; + private final boolean myComplete; + + private JavaModuleIndexImpl() { + myMapping = ContainerUtil.newHashMap(); + myComplete = false; + } private JavaModuleIndexImpl(Map mapping) { - myMapping = mapping; + myMapping = Collections.unmodifiableMap(mapping); + myComplete = true; } @Override public @Nullable File getModuleInfoFile(@NotNull JpsModule module) { String key = module.getName(); - if (myMapping.containsKey(key)) { + if (myComplete || myMapping.containsKey(key)) { return myMapping.get(key); } @@ -97,8 +105,7 @@ public class JavaModuleIndexImpl extends JavaModuleIndex { public static JavaModuleIndex load(@NotNull File storageRoot) { File index = new File(storageRoot, INDEX_PATH); if (!index.exists()) { - Map mapping = ContainerUtil.newHashMap(); - return new JavaModuleIndexImpl(mapping); + return new JavaModuleIndexImpl(); } Properties p = new Properties();