hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gordon Mohr (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HTTPCLIENT-588) relative URIs with internal double-slashes ('//') misparsed
Date Sat, 17 Jun 2006 00:17:30 GMT
     [ http://issues.apache.org/jira/browse/HTTPCLIENT-588?page=all ]

Gordon Mohr updated HTTPCLIENT-588:

    Attachment: httpclient-588.patch

Attached patch avoids double-slash-triggered parsing of authority when it would be inappropriate:
when URI is a simple authority-less path. Test for setting 'isStartedWithPath' improved to
not indicate 'true' for URIs that begin '//'; 'isStartedWithPath' reused in later check to
suppress inappropriate authority-parsing. Unit test verifies problem in current code and corrected
behavior for test case after fix. 

> relative URIs with internal double-slashes ('//') misparsed
> -----------------------------------------------------------
>          Key: HTTPCLIENT-588
>          URL: http://issues.apache.org/jira/browse/HTTPCLIENT-588
>      Project: Jakarta HttpClient
>         Type: Bug

>   Components: HttpClient
>     Versions: 3.0.1
>     Reporter: Gordon Mohr
>  Attachments: httpclient-588.patch
> URI.parseUriReference()'s heuristic for interpreting URI parts is thrown off by relative
URIs which include an internal '//'. As a result, portions of the supplied relative URI (path)
can be lost. 
> For example:
> URI rel = new URI("foo//bar//baz");
> rel.toString();
> (java.lang.String) //bar//baz
> The culprit seems to be line 1961 of URI improperly concluding that two slashes later
than the beginning of 'tmp' are still indicative the URI is a 'net_path'. 
> A possible quick fix might be to add a '!isStartedFromPath &&' to the beginning
of the line 1961 test, making the line:
>             if (!isStartedFromPath && at + 2 < length && tmp.charAt(at
+ 1) == '/') {
> ... and thus preventing the misguided authority-parsing from happening when earlier analysis
already identified the current string as a strictly path-oriented URI.
> (It also appears the setting of the is_net_path boolean at the end of this if's block
may be wrong; this code is run for hier_path URIs that are not net_paths in the 2396 syntax.
For example:
> URI uri = new URI("http://www.example.com/some/page");
> uri.isNetPath();
>  (boolean) true 
> )

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

To unsubscribe, e-mail: httpclient-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-dev-help@jakarta.apache.org

View raw message