Hey, guys, don't have a contribution to this thread, but wanted to point
something out. Instead of writing,
try { reader.close(); }
catch (Exception ex) { logger.warning("Could not close
BufferedReader:"+ex);}
}
Why not write...
catch (Throwable tw)
I think this is really what you want. Why trap all the exceptions, but
none of the errors?
Sorry, my $.02 worth of Java coding advice.
Thanks!
Oleg Kalnichevski wrote:
On Thu, 2005-11-03 at 20:57 +0000, Rudy Rusli wrote:
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?
Rudy,
There is absolutely no reason to close the input stream if an I/O
exception has been thrown, as the underlying connection has already been
closed by HttpClient
Oleg
Thanks in advance for all the help.
I really appreciate it.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
Thom Hehl
Heavyweight Software for Heavyweight Needs
www.heavyweightsoftware.com
--
"In every revolution, there is one man with a vision."--Jerome Bixby
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]