Remove the framework specific authority from the url on a toExternalForm as otherwise its going to override the host and port info (FELIX-1973).
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@905833 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java b/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
index 2fcb18e..190e835 100644
--- a/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/ModuleImpl.java
@@ -1104,9 +1104,9 @@
try
{
- return m_secureAction.createURL(
- FelixConstants.BUNDLE_URL_PROTOCOL,
- m_id, port, path, m_streamHandler);
+ return m_secureAction.createURL(null,
+ FelixConstants.BUNDLE_URL_PROTOCOL + "://" +
+ m_id + ":" + port + path, m_streamHandler);
}
catch (MalformedURLException ex)
{
diff --git a/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java b/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java
index 0f6a5d7..7e856a7 100644
--- a/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java
+++ b/framework/src/main/java/org/apache/felix/framework/URLHandlersBundleStreamHandler.java
@@ -91,6 +91,31 @@
super.setURL(u, u.getProtocol(), u.getHost(), u.getPort(), "felix", u.getUserInfo(), u.getPath(), u.getQuery(), u.getRef());
}
}
+
+ protected String toExternalForm(URL u)
+ {
+ StringBuffer result = new StringBuffer();
+ result.append(u.getProtocol());
+ result.append("://");
+ result.append(u.getHost());
+ result.append(':');
+ result.append(u.getPort());
+ if (u.getPath() != null)
+ {
+ result.append(u.getPath());
+ }
+ if (u.getQuery() != null)
+ {
+ result.append('?');
+ result.append(u.getQuery());
+ }
+ if (u.getRef() != null)
+ {
+ result.append("#");
+ result.append(u.getRef());
+ }
+ return result.toString();
+ }
private boolean checkPermission(URL u)
{