[ https://issues.apache.org/jira/browse/HTTPCLIENT-2326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17838549#comment-17838549 ]
Oscar commented on HTTPCLIENT-2326: ----------------------------------- Hi [~olegk] . Thanks for your reply. Do you mean modifying HttpClient to do not throw a TunnelRefusedExcepcion in this scenario? Or is this something that can be implemented in my code using the current version of HttpClient? Thanks! > Support any Exception in RetryStrategy > -------------------------------------- > > Key: HTTPCLIENT-2326 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2326 > Project: HttpComponents HttpClient > Issue Type: Improvement > Reporter: Oscar > Priority: Minor > > It would be useful to modify {{HttpRequestRetryExec}} to allow > {{HttpRequestRetryStrategy}} to support all kind of exceptions, not only > those extending {{{}IOException{}}}. > I would like HttpClient to retry requests when facing a > [TunnelRefusedException|https://hc.apache.org/httpcomponents-client-5.1.x/current/httpclient5/apidocs/org/apache/hc/client5/http/impl/TunnelRefusedException.html] > (it happens randomly that the proxy refuses the initial connection, but it > usually works ok when retrying). > I have tried extending > [DefaultHttpRequestRetryStrategy|https://github.com/apache/httpcomponents-client/blob/master/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultHttpRequestRetryStrategy.java] > but it can only capture exceptions inheriting from {{IOException.}} > So, maybe {{HttpRequestRetryStrategy}} interface should support any kind of > {{Exception }} or maybe {{TunnelRefusedException}} should be an > {{IOException}} > > This is an example of a stacktrace that I would like to retry: > > {code:java} > org.apache.hc.client5.http.ClientProtocolException: CONNECT refused by proxy: > HTTP/1.1 500 Internal Server Error > at > org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:173) > at > org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:245) > at > org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:188) > [...] > at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) > at java.base/java.lang.Thread.run(Thread.java:1583) > Caused by: org.apache.hc.client5.http.impl.TunnelRefusedException: CONNECT > refused by proxy: HTTP/1.1 500 Internal Server Error > at > org.apache.hc.client5.http.impl.classic.ConnectExec.createTunnelToTarget(ConnectExec.java:284) > at > org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:151) > at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > at > org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:192) > at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > at > org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:96) > at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > at > org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:152) > at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > at > org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:115) > at > org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51) > at > org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:170){code} -- 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