diff options
author | GILLES Hélios | 2022-01-18 09:55:18 +0000 |
---|---|---|
committer | Jay Arthanareeswaran | 2022-01-24 05:17:36 +0000 |
commit | 5447c5ed96ac15bf9373e90935d968a92f09ad36 (patch) | |
tree | b0c01280035adde91694d4dd5efbc22a7c239e7b /org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core | |
parent | a81b036a420340ffba6cb0b5d17bf936324f5d9d (diff) | |
download | eclipse.jdt.core-5447c5ed96ac15bf9373e90935d968a92f09ad36.tar.gz eclipse.jdt.core-5447c5ed96ac15bf9373e90935d968a92f09ad36.tar.xz eclipse.jdt.core-5447c5ed96ac15bf9373e90935d968a92f09ad36.zip |
Bug 578098 - ModularClassFile#exists is time consuming for Jar withoutI20220126-0520I20220125-1800I20220125-0320I20220124-0510
module-info.class
Change-Id: I1a0e5279892fad27adec7841f2364c7d19bf7323
Reviewed-on: https://git.eclipse.org/r/c/jdt/eclipse.jdt.core/+/189729
Tested-by: JDT Bot <jdt-bot@eclipse.org>
Reviewed-by: Jay Arthanareeswaran <jarthana@in.ibm.com>
Diffstat (limited to 'org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core')
-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; + } } |