Hi Oleg
Oleg Kalnichevski schrieb:
Is java.net.URI.resolve(String str) being used anywhere in HttpClient?
Yep, o.a.h..impl.client.DefaultRedirectHandler method getLocationURI.
If so, what do you suggest we do?
Create a resolve(URI, String) method in o.a.h.client.utils.URLUtils? See
attached patch.
<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708535> suggests:
Specially check for this case in invoking code,
replace "" by "#" and then remove "#" manually later.
(Review ID: 148122)
--
Johannes Koch
BIKA Web Compliance Center - Fraunhofer FIT
Schloss Birlinghoven, D-53757 Sankt Augustin, Germany
Phone: +49-2241-142628 Fax: +49-2241-142065
Index: C:/Dokumente und Einstellungen/Koch/Eigene
Dateien/koch/opt/eclipse/workspace_p/httpclient_trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
===================================================================
--- C:/Dokumente und Einstellungen/Koch/Eigene
Dateien/koch/opt/eclipse/workspace_p/httpclient_trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
(revision 630775)
+++ C:/Dokumente und Einstellungen/Koch/Eigene
Dateien/koch/opt/eclipse/workspace_p/httpclient_trunk/module-client/src/main/java/org/apache/http/impl/client/DefaultRedirectHandler.java
(working copy)
@@ -138,7 +138,7 @@
try {
URI requestURI = new URI(request.getRequestLine().getUri());
URI absoluteRequestURI = URLUtils.rewriteURI(requestURI,
target, true);
- uri = absoluteRequestURI.resolve(uri);
+ uri = URLUtils.resolve(absoluteRequestURI, uri);
} catch (URISyntaxException ex) {
throw new ProtocolException(ex.getMessage(), ex);
}
Index: C:/Dokumente und Einstellungen/Koch/Eigene
Dateien/koch/opt/eclipse/workspace_p/httpclient_trunk/module-client/src/main/java/org/apache/http/client/utils/URLUtils.java
===================================================================
--- C:/Dokumente und Einstellungen/Koch/Eigene
Dateien/koch/opt/eclipse/workspace_p/httpclient_trunk/module-client/src/main/java/org/apache/http/client/utils/URLUtils.java
(revision 630775)
+++ C:/Dokumente und Einstellungen/Koch/Eigene
Dateien/koch/opt/eclipse/workspace_p/httpclient_trunk/module-client/src/main/java/org/apache/http/client/utils/URLUtils.java
(working copy)
@@ -195,6 +195,45 @@
}
/**
+ * Resolves a URI reference aginast a base URI. Work-around for bug in
+ * java.net.URI
(<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708535>)
+ *
+ * @param baseURI the base URI
+ * @param reference the URI reference
+ * @return the resulting URI
+ */
+ public static URI resolve(URI baseURI, String reference)
+ {
+ return URLUtils.resolve(baseURI, URI.create(reference));
+ }
+
+ /**
+ * Resolves a URI reference aginast a base URI. Work-around for bug in
+ * java.net.URI
(<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4708535>)
+ *
+ * @param baseURI the base URI
+ * @param reference the URI reference
+ * @return the resulting URI
+ */
+ public static URI resolve(URI baseURI, URI reference)
+ {
+ boolean emptyReference = "".equals(reference.toString());
+ if (emptyReference)
+ {
+ reference = URI.create("#");
+ }
+ URI resolved = baseURI.resolve(reference);
+ if (emptyReference)
+ {
+ String resolvedString = resolved.toString();
+ resolved = URI.create(resolvedString.substring(0,
+ resolvedString.indexOf('#')));
+ }
+ return resolved;
+ }
+
+
+ /**
* This class should not be instantiated.
*/
private URLUtils() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]