DefaultHttpRequestRetryHandler must not retry non-idempotent http methods 
(violates RFC 2616)
---------------------------------------------------------------------------------------------

                 Key: HTTPCLIENT-989
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-989
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: HttpClient
    Affects Versions: 4.1 Alpha2, 4.0.1
            Reporter: Sylvain Laurent


In DefaultHttpRequestRetryHandler, in case of NoHttpResponseException, the 
request is retried, without taking into account whether the http method is 
idempotent or not. This violates RFC 2616 section 8.1.4 which states :
{quote}
This means that clients, servers, and proxies MUST be able to recover
   from asynchronous close events. Client software SHOULD reopen the
   transport connection and retransmit the aborted sequence of requests
   without user interaction so long as the request sequence is
   idempotent (see section 9.1.2). Non-idempotent methods or sequences
   MUST NOT be automatically retried, although user agents MAY offer a
   human operator the choice of retrying the request(s).
{quote}

The fix is simple : at line 94, just remove the {{if (exception instanceof 
NoHttpResponseException) }} block. This way the idempotency of the method will 
be taken into account a bit further in the same method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to