call resolver with file: prefix (as directed by csalter) and strip the prefix on return
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
index c978800..e50f758 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
@@ -176,7 +176,19 @@
}
public String getLocationByURI(String uri, String baseReference, boolean resolveCrossProjectLinks) {
- return URIResolverPlugin.createResolver().resolve(FILE_PREFIX + baseReference, null, uri);
+ boolean usePrefix = baseReference != null && baseReference.startsWith(FILE_PREFIX);
+ String reference = null;
+ if (usePrefix) {
+ reference = baseReference;
+ }
+ else {
+ reference = FILE_PREFIX + baseReference;
+ }
+ String result = URIResolverPlugin.createResolver().resolve(baseReference, null, uri);
+ if (!usePrefix && result.startsWith(FILE_PREFIX) && result.length() > FILE_PREFIX.length()) {
+ result = result.substring(FILE_PREFIX.length());
+ }
+ return result;
}
public IProject getProject() {