[
https://issues.apache.org/jira/browse/HTTPCLIENT-1921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16460973#comment-16460973
]
elise badr commented on HTTPCLIENT-1921:
----------------------------------------
It is an API that uses spring remoting HTTP invoker (http client and http core)
to communicate with a server.
Test cases examples:
* server is busy, it does not respond within 20000 milliseconds, in api, the
configured socket time out is 10000 and pool time out 2000, max active 2: run
10 threads: expected result is to have 8 threads throws pool time out after
waiting 2 secs while 2 of them will throw socket time out after 10 secs.
Actual result: socket time out throws after 60 secs (our configuration of 10000
ms is not used)
* server is down, the connection time out is 1 sec instead of the configured
value.
I tried to put breakpoints in the following getters in RequestConfig:
* int getConnectTimeout()
* int getSocketTimeout()
* int getConnectionRequestTimeout()
The getters were called 3 times in 1 operation, the first time the getters are
called, the above values are the same one as the ones i configured in the XML
context.
The second time, i debugged -1 as value for the connect time out and connection
request time out and 60000 for the socket time out
The third time, I debugged correct value for the connect time out and
connection request time out and 60000 for the socket time out
Please let me know if you need more details.
> Time out values not correctly used
> ----------------------------------
>
> Key: HTTPCLIENT-1921
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1921
> Project: HttpComponents HttpClient
> Issue Type: Bug
> Affects Versions: 4.5.5
> Reporter: elise badr
> Priority: Blocker
> Labels: SocketTimeout, httpclient, timeout
>
> I was obliged to migrate to httpclient *4.5.5* and httpcore *4.4.9* while i
> was upgrading to Spring 4.
> I started using the following configuration to set my time out values:
>
> <bean id="httpClient"
> class="org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor">
> <property name="httpClient" ref="httpClientBld"/>
> </bean>
> <bean id="requestConfigBuilder"
> class="org.apache.http.client.config.RequestConfig" factory-method="custom">
> <property name="socketTimeout" value="3000" />
> <property name="connectTimeout" value="4000" />
> <property name="staleConnectionCheckEnabled" value="true"/>
> <property name="connectionRequestTimeout" value="2000" />
> </bean>
> <bean id="requestConfig" factory-bean="requestConfigBuilder"
> factory-method="build" />
> <bean id="httpClientBuilder"
> class="org.apache.http.impl.client.HttpClientBuilder" factory-method="create">
> <property name="defaultRequestConfig" ref="requestConfig" />
> <property name="maxConnTotal" value="2" />
> <property name="maxConnPerRoute" value="2" />
> </bean>
> <bean id="httpClientBld" factory-bean="httpClientBuilder"
> factory-method="build" />
>
> However, while testing, the socket time out and connection time out doesn't
> seem to be working correctly... it always waits around 1000 ms for the
> connection timeout and 60000 for the socket time out instead of the
> configured values. The request connection time out seems to be working fine.
> Can you please help... is it a bug from your side? or a wrong configuration
> from my side?
>
> Note that it seems the issues exists also in older versions as the following
> link from stack overflow discuss a similar issue for an older version:
> [https://stackoverflow.com/questions/21576414/setting-time-out-in-apache-http-client]
> Note that it was working fine before with Spring 3 requiring commons http
> client
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]