You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by gg...@apache.org on 2017/02/28 08:48:58 UTC
svn commit: r1784702 -
/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
Author: ggrzybek
Date: Tue Feb 28 08:48:57 2017
New Revision: 1784702
URL: http://svn.apache.org/viewvc?rev=1784702&view=rev
Log:
[ARIES-1682] Fallback to URL API if URI.resolve(systemId) is still relative (case of jar:file:)
Modified:
aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
Modified: aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java?rev=1784702&r1=1784701&r2=1784702&view=diff
==============================================================================
--- aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java (original)
+++ aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java Tue Feb 28 08:48:57 2017
@@ -28,6 +28,7 @@ import java.io.InputStream;
import java.io.Reader;
import java.lang.ref.Reference;
import java.lang.ref.SoftReference;
+import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
@@ -576,7 +577,17 @@ public class NamespaceHandlerRegistryImp
if (baseURI != null && systemId != null) {
URI sId = URI.create(systemId);
if (!sId.isAbsolute()) {
- return URI.create(baseURI).resolve(sId).toString();
+ URI resolved = URI.create(baseURI).resolve(sId);
+ if (resolved.isAbsolute()) {
+ return resolved.toString();
+ } else {
+ try {
+ return new URL(new URL(baseURI), systemId).toString();
+ } catch (MalformedURLException e) {
+ LOGGER.warn("Can't resolve " + systemId + " against " + baseURI);
+ return null;
+ }
+ }
}
}
return null;