[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.