[ 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:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]