Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGILLES Hélios2022-01-18 09:55:18 +0000
committerJay Arthanareeswaran2022-01-24 05:17:36 +0000
commit5447c5ed96ac15bf9373e90935d968a92f09ad36 (patch)
treeb0c01280035adde91694d4dd5efbc22a7c239e7b /org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core
parenta81b036a420340ffba6cb0b5d17bf936324f5d9d (diff)
downloadeclipse.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.java15
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;
+ }
}

Back to the top