[153409] HTMLModelQueryImpl.getCMElementDeclaration() is very slow
diff --git a/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
index 0ddf11b..289e90c 100644
--- a/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
Bundle-Name: Modulecore Plug-in
Bundle-Vendor: %provider
Bundle-SymbolicName: org.eclipse.wst.common.modulecore; singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.1.2.qualifier
Bundle-Activator: org.eclipse.wst.common.componentcore.internal.ModulecorePlugin
Bundle-Localization: plugin
Export-Package: org.eclipse.wst.common.componentcore,
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentResolver.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentResolver.java
index 7a3b01f..8580398 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentResolver.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentResolver.java
@@ -40,7 +40,7 @@
* Various resolvers disagree on how many preceding slashes should
* actually be used. On Win32, 2 slashes results in a URL object where the
* volume is stripped out of the file path as the host name, but on Unix 2
- * is the correct number. On Win32. java.io.File.toURL adds only 1 slash,
+ * is the correct number. On Win32, java.io.File.toURL adds only 1 slash,
* and on Unix it adds 2.
*
* @param uri
@@ -51,19 +51,19 @@
String location = null;
long time0 = -1;
+ if (_DEBUG)
+ time0 = System.currentTimeMillis();
if (uri.startsWith(HTTP_PROTOCOL)) {
- if (_DEBUG)
- time0 = System.currentTimeMillis();
IFile files[] = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(URI.create(uri));
for (int i = 0; i < files.length && file == null; i++) {
if (files[i].isAccessible()) {
file = files[i];
}
}
- if (_DEBUG)
+ if (_DEBUG) {
System.out.println("\"" + uri + "\" findFilesForLocationURI:" + (System.currentTimeMillis() - time0));
- if (_DEBUG)
time0 = System.currentTimeMillis();
+ }
}
else {
if (uri.startsWith(FILE_PROTOCOL)) {
@@ -92,9 +92,10 @@
if (_DEBUG) {
System.out.print("ComponentResolver: resolve \"[{" + publicId + "}{" + systemId + "}]\" from \"" + baseLocation + "\""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
+ // argument sanity checks
/*
* Check for a system reference; without one, there's no point in
- * continuing.
+ * continuing (we can't resolve just a public identifier).
*/
if (systemId == null || systemId.length() == 0) {
if (_DEBUG) {
@@ -106,6 +107,10 @@
/* Recompute the IFile, if needed, from the base location. */
if (file == null) {
if (baseLocation == null || baseLocation.length() == 0) {
+ /*
+ * We can't proceed if we lack both an IFile and a system
+ * reference
+ */
if (_DEBUG) {
System.out.println(" (no base location or file given)"); //$NON-NLS-1$
}
@@ -113,7 +118,7 @@
}
file = recalculateFile(baseLocation);
}
-
+
/*
* If a workspace IFile is (still) not the base point of reference,
* don't continue.