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]

Reply via email to