hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Kalnichevski (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HTTPCLIENT-1294) CircularRedirectException is falsely thrown on URI case mismatch
Date Tue, 08 Jan 2013 21:36:13 GMT

     [ https://issues.apache.org/jira/browse/HTTPCLIENT-1294?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Oleg Kalnichevski updated HTTPCLIENT-1294:

    Fix Version/s: 4.3 Final

I see two ways to fix the problem: (1) rewrite request URIs to make sure hostname is low case
(2) change internal representation of unique redirects from a set of URIs to a set of Strings.
At the moment I am not entirely sure which approach is likely to cause fewer side effects.
At any rate I do not think this issue is severe enough to delay 4.2.3 and 4.3-alpha1 releases.
It will have to wait until 4.3-alpha2.

> CircularRedirectException is falsely thrown on URI case mismatch
> ----------------------------------------------------------------
>                 Key: HTTPCLIENT-1294
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1294
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient
>    Affects Versions: 4.1.3, 4.2.2
>            Reporter: Michiel Proce
>             Fix For: 4.3 Final
> Some servers (including IIS6) redirect wrong-cased request URIs to lower case:
> http://EXAMPLE.com/ -> http://example.com/
> Now when I'm redirected from another URI to an uppercase URI, the following redirects
> http://referrer.com/ -> http://EXAMPLE.com/ -> http://example.com/
> When running this request with HttpClient (with default ALLOW_CIRCULAR_REDIRECTS: false),
I get a org.apache.http.client.CircularRedirectException, even though a circular redirect
won't occur.
> The problem lies in java.net.URI, the following URIs are considered equal:
> URI a = new URI("http://example.com");
> URI b = new URI("http://EXAMPLE.com");
> // a.equals(b): true
> // a.hashCode() == b.hashCode(): true
> The redirect locations are stored in a HashSet<URI> in org.apache.http.impl.client.RedirectLocations.
A CircularRedirectException is thrown when an URI is already in this hashset.
> I have no real suggestions on how to fix this, because I am not known with the coding
style for HttpClient..

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

View raw message