[
https://issues.apache.org/jira/browse/HTTPCLIENT-2090?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17143277#comment-17143277
]
Carter Kozak commented on HTTPCLIENT-2090:
------------------------------------------
It looks like InternalExecRuntime.upgradeTls will set the endpoint socket
timeout to the connect timeout, but nothing ever resets the sockets timeout to
the socket timeout.
I don't see test coverage in the project for forward proxies, I'd appreciate if
someone could point me in the right direction for existing coverage. My local
reproducer test uses the Undertow server, I can add a test dependency on that
library to implement a test if there's not something else already available.
> Read timeout not applied for SSLHandshake when using proxy
> ----------------------------------------------------------
>
> Key: HTTPCLIENT-2090
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2090
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Components: HttpClient (classic)
> Affects Versions: 4.5.12
> Reporter: Dave Moten
> Priority: Minor
>
> When I make a connection to an https endpoint without proxy I've confirmed
> that read timeouts as specified in the RequestConfig part of the client are
> applied by putting a breakpoint against the startHandshake line in
> SSLConnectionSocketFactory:394 (I viewed the expression
> sslsock.getSoTimeout()).
> However, when I make a connection to an https endpoint (e.g.
> https://google.com) via our corporate proxy I can see via the same breakpoint
> that sslsock.getSoTimeout() returns 0.
> Here's the test code that when debugged showed the problem:
> {{RequestConfig requestConfig = RequestConfig
> .custom()
> .setConnectionRequestTimeout(10000)
> .setConnectTimeout(10000)
> .setSocketTimeout(5000)
> .build();
> HttpClient client = HttpClientBuilder
> .create()
> .setDefaultRequestConfig(requestConfig)
> .setProxy(HttpHost.create("http://proxy:8080")) //
> .build();
> HttpGet get = new HttpGet("https://google.com");
> client.execute(get);}}
> By the way the consequence of this has been hangs in our production
> environment talking to Microsoft's EWS service which seemed to be flaky last
> week.
> I have a workaround described by Li Changshu in HTTPCLIENT-1478 involving
> setting a pooling connection manager but I would like the library to behave
> consistently when using a proxy.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]