I'm using Apache HTTPClient to connect to a data source.
I set the connection timeout and the socket timeout in the constructor of
the
class like the following:
httpClient.getHttpConnectionManager().getParams().setSoTimeout(1000*60*2);
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(1000*
60*2);
In one of the methods in the class, I catch a SocketTimeoutException and
close resources in the finally clause.
try
{
GetMethod getMethodObject = new GetMethod(DATA_URL);
int statusCode = httpClient.executeMethod(getMethodObject);
responseBody = getMethodObject.getResponseBodyAsStream();
reader = new BufferedReader(new InputStreamReader(responseBody));
String line= "";
while( (line = reader.readLine()) != null )
{
...
}
}
catch(...)
...
finally
{
if( reader != null )
{
try { reader.close(); }
catch (Exception ex) { logger.warning("Could not close
BufferedReader:"+ex);}
}
if( responseBody != null )
{
try { responseBody.close(); }
catch (Exception ex) { logger.warning("Could not close InputStream from
the server."); }
}
if( getMethodObject != null )
{
try { getMethodObject.releaseConnection(); }
catch (Exception ex) { logger.warning("Could not release connection."); }
}
}
Once in a while when I get a SocketTimeoutException, I get the message
could not close BufferedReader.
These are the messages that I get:
"Could not Close BufferedReader: java.net.SocketException:Connection Reset."
"Could not Close BufferedReader: java.net.SocketTimeoutException:Read
Timeout."
In other programs that use the same program flow, I get this message:
"Could not Close BufferedReader: CRLF expected at the end of chunk"
These exceptions seem to happen randomly. I'm wondering what is going on
with these exceptions. Could somebody please advise?
Is there a way to get around all these exceptions?
Thanks in advance for all the help.
I really appreciate it.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]