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

ASF subversion and git services commented on HTTPCLIENT-2291:
-------------------------------------------------------------

Commit 360a9bfb5e5647200223ce97f271262d67a53650 in httpcomponents-client's 
branch refs/heads/HTTPCLIENT-2291 from Oleg Kalnichevski
[ https://gitbox.apache.org/repos/asf?p=httpcomponents-client.git;h=360a9bfb5 ]

HTTPCLIENT-2291: fixed inconsistency in behavior between the class and async 
implementation of the request re-execution. The async request retry exec will 
now re-start request execution from itself instead of form the very beginning 
of the execution chain


> RetryStrategy: AsyncExecChainHandler and ExecChainHandler behavior should be 
> identical
> --------------------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-2291
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2291
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient (async), HttpClient (classic)
>    Affects Versions: 5.2
>            Reporter: Lars Uffmann
>            Priority: Major
>             Fix For: 5.3-alpha2
>
>
> A RetryStrategy is enabled by default in both classic and async.
>  
> If an exec chain handler is placed *after* the retry handler, the behavior 
> between async and classic is consistent. The behavior of an Async- and  a 
> classic ExecChainHandler placed *before* the (Async)HttpRequestRetryExec is 
> different when a retry is actually executed.
>  
> In case of a retry, the classic HttpRequestRetryExec will split the exec 
> chain and proceed with all handlers configured after itself. Any handler 
> registered before would be called exactly one time with the final outcome of 
> the last retry attempt.
>  
> The Async version, however, will call any handler registered before itself 
> with every retry. The order of events is counter intuitive as well. All 
> closing events will be emitted after the last attempt.
>  
> {*}Workaround{*}: In async, ignore all but the first invocation of a handler 
> when the handler is placed before the retry handler.
>  
> {*}Expected Bahaviour{*}: Both Async and Classic ExecChainHandler behavior 
> should be identical.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to