Oleg,

I think there are two things that confuse me right now:
1. When I invoked SocketTimeoutException, I checked the connection with ProcessExplorer. The connection is still there. It is gone after several IOExceptions are thrown, but not immediately. 2. Many times after SocketTimeoutException is thrown, the reader.close() is successfully executed without the warning: "Could not close BufferedReader..." So the occurences of this warning seem to be random.

Could you please advise?

Thanks for the ongoing help.

-Rudy-

------------------------------------------------------------------------------------------------------------
From: Oleg Kalnichevski <[EMAIL PROTECTED]>
To: Rudy Rusli <[EMAIL PROTECTED]>
Subject: Re: Problem closing resources using Apache HttpClient.
Date: Fri, 4 Nov 2005 09:45:06 +0100

Rudy,

Because the InputStream#close() is called in InputStreamReader#close().

------------------------------------------------------------------------------------------------------------
On Thu, Nov 03, 2005 at 11:27:01PM +0000, Rudy Rusli wrote:
> Oleg,
>
> Thanks for your email.
>
> So closing BufferedReader and InputStream will certainly fail if an I/O
> Exception has been thrown? Why do I only the warning message when I close
> the BufferedReader and not the InputStream then?
------------------------------------------------------------------------------------------------------------
> >From: Oleg Kalnichevski <[EMAIL PROTECTED]>
> >Reply-To: "HttpClient User Discussion" <[email protected]>
> >To: HttpClient User Discussion <[email protected]>
> >Subject: Re: Problem closing resources using Apache HttpClient.
> >Date: Thu, 03 Nov 2005 22:24:41 +0100
> >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
--------------------------------------------------------------------------------------------------------------
> >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?
> >>
> >
>
> >
> >> Thanks in advance for all the help.
> >> I really appreciate it.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to