hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject svn commit: r1546315 - in /httpcomponents/httpclient/trunk: RELEASE_NOTES.txt httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java httpclient/src/test/java/org/apache/http/client/utils/TestURIUtils.java
Date Thu, 28 Nov 2013 08:57:04 GMT
Author: olegk
Date: Thu Nov 28 08:57:04 2013
New Revision: 1546315

URL: http://svn.apache.org/r1546315
Log:
HTTPCLIENT-1440: 'file' scheme in redirect location URI causes NPE.
Contributed by James Leigh <james at 3roundstones dot com>

Modified:
    httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
    httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
    httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/utils/TestURIUtils.java

Modified: httpcomponents/httpclient/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/RELEASE_NOTES.txt?rev=1546315&r1=1546314&r2=1546315&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/RELEASE_NOTES.txt (original)
+++ httpcomponents/httpclient/trunk/RELEASE_NOTES.txt Thu Nov 28 08:57:04 2013
@@ -1,6 +1,9 @@
 Changes since 4.3.1
 -------------------
 
+* [HTTPCLIENT-1440] 'file' scheme in redirect location URI causes NPE.
+  Contributed by James Leigh <james at 3roundstones dot com>
+
 * [HTTPCLIENT-1437] Made Executor#execute thread safe.
   Contributed by Oleg Kalnichevski <olegk at apache.org>
 

Modified: httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java?rev=1546315&r1=1546314&r2=1546315&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/client/utils/URIUtils.java
Thu Nov 28 08:57:04 2013
@@ -259,7 +259,8 @@ public class URIUtils {
      * @return the URI without dot segments
      */
     private static URI normalizeSyntax(final URI uri) {
-        if (uri.isOpaque()) {
+        if (uri.isOpaque() || uri.getAuthority() == null) {
+            // opaque and file: URIs
             return uri;
         }
         Args.check(uri.isAbsolute(), "Base URI must be absolute");

Modified: httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/utils/TestURIUtils.java
URL: http://svn.apache.org/viewvc/httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/utils/TestURIUtils.java?rev=1546315&r1=1546314&r2=1546315&view=diff
==============================================================================
--- httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/utils/TestURIUtils.java
(original)
+++ httpcomponents/httpclient/trunk/httpclient/src/test/java/org/apache/http/client/utils/TestURIUtils.java
Thu Nov 28 08:57:04 2013
@@ -174,6 +174,20 @@ public class TestURIUtils {
     }
 
     @Test
+    public void testResolveOpaque() {
+        Assert.assertEquals("example://a/b/c/%7Bfoo%7D", URIUtils.resolve(this.baseURI, "eXAMPLE://a/./b/../b/%63/%7bfoo%7d").toString());
+        Assert.assertEquals("file://localhost/etc/fstab", URIUtils.resolve(this.baseURI,
"file://localhost/etc/fstab").toString());
+        Assert.assertEquals("file:///etc/fstab", URIUtils.resolve(this.baseURI, "file:///etc/fstab").toString());
+        Assert.assertEquals("file://localhost/c:/WINDOWS/clock.avi", URIUtils.resolve(this.baseURI,
"file://localhost/c:/WINDOWS/clock.avi").toString());
+        Assert.assertEquals("file:///c:/WINDOWS/clock.avi", URIUtils.resolve(this.baseURI,
"file:///c:/WINDOWS/clock.avi").toString());
+        Assert.assertEquals("file://hostname/path/to/the%20file.txt", URIUtils.resolve(this.baseURI,
"file://hostname/path/to/the%20file.txt").toString());
+        Assert.assertEquals("file:///c:/path/to/the%20file.txt", URIUtils.resolve(this.baseURI,
"file:///c:/path/to/the%20file.txt").toString());
+        Assert.assertEquals("urn:issn:1535-3613", URIUtils.resolve(this.baseURI, "urn:issn:1535-3613").toString());
+        Assert.assertEquals("mailto:user@example.com", URIUtils.resolve(this.baseURI, "mailto:user@example.com").toString());
+        Assert.assertEquals("ftp://example.org/resource.txt", URIUtils.resolve(this.baseURI,
"ftp://example.org/resource.txt").toString());
+    }
+
+    @Test
     public void testExtractHost() throws Exception {
         Assert.assertEquals(new HttpHost("localhost"),
                 URIUtils.extractHost(new URI("http://localhost/abcd")));



Mime
View raw message