[
https://issues.apache.org/jira/browse/HTTPCLIENT-2291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17760763#comment-17760763
]
ASF subversion and git services commented on HTTPCLIENT-2291:
-------------------------------------------------------------
Commit 8a54e70359dd511956728d3ca073ce94f71ac729 in httpcomponents-client's
branch refs/heads/master from Oleg Kalnichevski
[ https://gitbox.apache.org/repos/asf?p=httpcomponents-client.git;h=8a54e7035 ]
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: [email protected]
For additional commands, e-mail: [email protected]