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

Nicolai Stäger updated HTTPCLIENT-1800:
---------------------------------------
    Description: 
I am wondering, why the ServiceUnavailableRetryExec is before the RedirectExec 
in the execChain of the the InternalHttpClient. I am referring to the 
HttpClientBuilder.build() method where the execChain is put together something 
like this:

Client -> ... -> ServiceUnavailableRetryExec -> RedirectExec -> ...

We have the following scenario, where this causes an unexpected behavior and 
changing the order would solve this:

1. We are sending a request to endpoint A which returns a 303 with the endpoint 
B in the location-header
2. The RedirectExec redirects the request to B what returns a 503
3. Now the ServiceUnavailableRetryExec is doing its thing but retries to 
endpoint A

I would expect the behavior of the client to retry to endpoint B instead of A. 
Is there a reason why the chain is implemented this way around or is this a 
"bug".

Any help very appreciated!

  was:
I am wondering, why the ServiceUnavailableRetryExec is before the RedirectExec 
in the execChain of the the InternalHttpClient. I am referring to the 
HttpClientBuilder.build() method where the execChain is put together:

Client -> ... -> ServiceUnavailableRetryExec -> RedirectExec -> ...

We have the following scenario, where this causes an unexpected behavior and 
changing the order would solve this:

1. We are sending a request to endpoint A which returns a 303 with the endpoint 
B in the location-header
2. The RedirectExec redirects the request to B what returns a 503
3. Now the ServiceUnavailableRetryExec is doing its thing but retries to 
endpoint A

I would expect the behavior of the client to retry to endpoint B instead of A. 
Is there a reason why the chain is implemented this way around or is this a 
"bug".

Any help very appreciated!


> Why is Retry around Redirect and not the other way round
> --------------------------------------------------------
>
>                 Key: HTTPCLIENT-1800
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1800
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient (classic)
>    Affects Versions: 4.5.3
>            Reporter: Nicolai Stäger
>
> I am wondering, why the ServiceUnavailableRetryExec is before the 
> RedirectExec in the execChain of the the InternalHttpClient. I am referring 
> to the HttpClientBuilder.build() method where the execChain is put together 
> something like this:
> Client -> ... -> ServiceUnavailableRetryExec -> RedirectExec -> ...
> We have the following scenario, where this causes an unexpected behavior and 
> changing the order would solve this:
> 1. We are sending a request to endpoint A which returns a 303 with the 
> endpoint B in the location-header
> 2. The RedirectExec redirects the request to B what returns a 503
> 3. Now the ServiceUnavailableRetryExec is doing its thing but retries to 
> endpoint A
> I would expect the behavior of the client to retry to endpoint B instead of 
> A. Is there a reason why the chain is implemented this way around or is this 
> a "bug".
> Any help very appreciated!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to