Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Not A Problem
-
4.5.5
-
None
Description
Hello,
I've been using the httpclient-4.5.5. jar library to create HTTP connections and it has been implemented in production environment, but the user is getting Connection reset and Read time out exeptions...
Do you know something about this kind of exceptions with the 4.5.5 library?
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:139)
at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:155)
at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:284)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138)
at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56)
at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:165)
at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at com.hp.vzw.spc.nrb.util.HistoricalRequestWork.call(HistoricalRequestWork.java:177)
at com.hp.vzw.spc.nrb.util.HistoricalRequestWork.call(HistoricalRequestWork.java:33)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Dec 04, 2018 18:48:49 PM [pool-1-thread-25
The method to create the connections:
public CloseableHttpClient createHttpClientHistorical(int JSONTimeout)
{
logger.info("Creating http client JSONTimeout value received: "+ JSONTimeout);
int jsonTimeout;
if (JSONTimeout == 0){
jsonTimeout = Integer.parseInt(getPropertyFromFile("JSONTIMEOUT").trim());
logger.info("Setting JSONTimeout from file: "+ jsonTimeout);
}
else{
jsonTimeout = JSONTimeout;
logger.info("Setting JSONTimeout from screen: "+ jsonTimeout);
}
RequestConfig defaultRequestConfig = RequestConfig.custom()
.setConnectTimeout(jsonTimeout)
.setSocketTimeout(jsonTimeout)
.setConnectionRequestTimeout(jsonTimeout)
.build();
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultRequestConfig(defaultRequestConfig)
.build();
return httpClient;
}
Regards,
Sandra H.