[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13748955#comment-13748955
 ] 

Jon Moore commented on HTTPCLIENT-1392:
---------------------------------------

@Saurabh: Browsers may be being "lenient in what they accept", per Postel's 
Law. There's actually considerable debate as to whether this is actually good 
engineering advice or not. Currently, HttpComponents aims pretty strongly for 
tight adherence to the RFC specs, and these indicate that HTTP header values 
(including for the Location header) may only contain ASCII characters per RFC 
2616.

If you read HTTPCLIENT-1204 you will see in the comments that there is a way to 
override the DefaultRedirectStrategy if you would prefer different behavior.

Oleg is reacting to the following behaviors:
(a) You reopened this issue despite it having been closed as a duplicate of 
another issue. It would be customary in this case to then continue discussion 
there, or at least to post a comment clarifying why you don't think this is a 
duplicate.
(b) The "posting rejected" email actually states that your post got rejected 
because you were not a member of the list.
(c) You were advised that this issue had already been discussed on the user 
list and that a little research might be appropriate, and were explicitly asked 
not to reopen the issue, yet you did.

You may not have realized it, but these are all breaches of open source 
etiquette. The maintainers of this project are largely volunteers; they do not 
owe anyone anything. Treating their time with respect is important.

For example, I googled "httpclient illegal character in redirect" (my first 
search attempt):
http://lmgtfy.com/?q=httpclient+illegal+character+in+redirect

And on the first search result page, I find:
(a) HTTPCLIENT-1204, which is the duplicate issue
(b) A StackOverflow answer explaining the problem in detail.
(c) A link to a post from the httpclient-user mailing list where this issue was 
discussed.

You may not have realized this, but you could have found the answer to this 
question pretty easily without opening an issue.

I took the time to explain this under the assumption that you just weren't 
familiar with these rules of etiquette and hadn't intended to exasperate 
anyone. Hopefully you now have enough information:

(a) to understand and solve your problem;
(b) to avoid a similar (probably unintended) negative reaction in the future 
from this or other open source projects.

                
> CLONE - redirect error!  java.net.URISyntaxException: Illegal character 
> ------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1392
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1392
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient
>         Environment: centos6.2
> jdk1.6u25
>            Reporter: Saurabh
>
> ==========Test.java===================== 
>  HttpClient client = new DefaultHttpClient();
>  HttpGet get = new HttpGet("http://localhost:8080/T/Test";);
>  client.execute(get);
>  client.getConnectionManager().shutdown();
> ==========TestServlet.java=============================
>  protected void doGet(HttpServletRequest request, HttpServletResponse 
> response) throws ServletException, IOException {
>         response.sendRedirect("/xx?name=||dsdf&user=||");
>     }
> ===============================================
> Throws an exception when I run.
> Exception in thread "main" org.apache.http.client.ClientProtocolException
>       at 
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:909)
>       at 
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
>       at 
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
>       at com.Test.main(Test.java:20)
> Caused by: org.apache.http.ProtocolException: Invalid redirect URI: 
> http://localhost:8080/xx?name=||dsdf&user=||
>       at 
> org.apache.http.impl.client.DefaultRedirectStrategy.createLocationURI(DefaultRedirectStrategy.java:189)
>       at 
> org.apache.http.impl.client.DefaultRedirectStrategy.getLocationURI(DefaultRedirectStrategy.java:140)
>       at 
> org.apache.http.impl.client.DefaultRedirectStrategy.getRedirect(DefaultRedirectStrategy.java:209)
>       at 
> org.apache.http.impl.client.DefaultRequestDirector.handleResponse(DefaultRequestDirector.java:1070)
>       at 
> org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:546)
>       at 
> org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
>       ... 3 more
> Caused by: java.net.URISyntaxException: Illegal character in query at index 
> 30: http://localhost:8080/xx?name=||dsdf&user=||
>       at java.net.URI$Parser.fail(URI.java:2810)
>       at java.net.URI$Parser.checkChars(URI.java:2983)
>       at java.net.URI$Parser.parseHierarchical(URI.java:3073)
>       at java.net.URI$Parser.parse(URI.java:3015)
>       at java.net.URI.<init>(URI.java:577)
>       at 
> org.apache.http.impl.client.DefaultRedirectStrategy.createLocationURI(DefaultRedirectStrategy.java:187)
>       ... 8 more

--
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to