diff options
-rw-r--r-- | org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ModularClassFile.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ModularClassFile.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ModularClassFile.java index 3c5eb1fdcb..277a219daf 100644 --- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ModularClassFile.java +++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/ModularClassFile.java @@ -304,4 +304,19 @@ public class ModularClassFile extends AbstractClassFile implements IModularClass } return module; } + + private static final JavaElementInfo notExists = new JavaElementInfo(); + + @Override + public boolean exists() { + Object info = JavaModelManager.getJavaModelManager().getInfo(this); + if (info == notExists) + return false; + if (info != null) + return true; + boolean exists = super.exists(); + if (!exists) + JavaModelManager.getJavaModelManager().putInfos(this, notExists, false, Map.of(this, notExists)); + return exists; + } } |