You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Ludwig, Sven" <SL...@CONET.DE> on 2002/02/01 09:43:53 UTC

RE: httpclient hangs indefinately

Hello,

I read about that issue of blocking IO in the constructors
of java.net.Socket with JDKs up to 1.3 some time ago on javaworld.com
It was easy to find the article again:

http://www.javaworld.com/javaworld/jw-09-1999/jw-09-timeout.html

Along with it there is an implementation "TimedSocket" available: 
(seperate thread that interrupts the connection attempts)

http://www.javaworld.com/jw-09-1999/timeout/jw-09-timeout.zip 

greetings
Sven Ludwig

> -----Original Message-----
> From: JEvans@Cyveillance.com [mailto:JEvans@Cyveillance.com]
> Sent: Thursday, January 31, 2002 7:24 PM
> To: commons-dev@jakarta.apache.org
> Subject: RE: httpclient hangs indefinately
> 
> 
> Well, since the con.open() method creates a new Socket 
> object, it is subject
> to the behavior of the Socket class.  Unfortunately, at least 
> as of 1.3,
> attempting to create a new Socket to a host/port combo that 
> does not answer
> blocks indefinately (or at least for a very long time), this can't be
> avoided directly.  (It would be really nice if the JDK 
> provided a Socket
> constructor that took a timeout value to pass to the 
> underlying OS).  The
> three ways I can think of to avoid it off hand are:
> 
> 	1. Implement a timeout mechanism outside of HttpClient with a
> seperate thread that interrupts the connection attempts.
> 	2. Implement a Socket object in the HttpClient 
> framework that uses
> this same sort of mechanism but hides the details behind the API
> 	3. Use the 1.4 JDK and upgrade everything to use the 
> new channels
> API in non-blocking mode.
> 
> I wish there were a cleaner way.  If anyone knows of one I'd 
> love to hear
> it.
> 
> -
> John
> 
> -----Original Message-----
> From: Allen, Michael B (RSCH) [mailto:Michael_B_Allen@ml.com]
> Sent: Wednesday, January 30, 2002 10:50 PM
> To: 'commons-dev@jakarta.apache.org'
> Subject: httpclient hangs indefinately
> 
> 
> If I just use a simple test program like below and try to 
> connect to certain
> IP addresses that
> are routable but don't have anything listing at the other end (returns
> nothing, dead air), the
> client hangs indefinately. Can anyone think of a solution to 
> this problem?
> 
> Thanks,
> Mike
> 
> import org.apache.commons.httpclient.*;
> 
> public class Test {
> 
>         public static void main(String[] argv) throws Exception {
>                 HttpConnection con = new HttpConnection( argv[0],
> Integer.parseInt( argv[1] ));
>                 con.open();
>                 con.printLine( "GET /index.html HTTP/1.0" );
>                 con.printLine();
>                 String s;
>                 while(( s = con.readLine() ) != null ) {
>                         System.out.println( s );
>                 }
>         }
> }
> 
> 
> --
> To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> 
> --
> To unsubscribe, e-mail:   
<ma...@jakarta.apache.org>
For additional commands, e-mail:
<ma...@jakarta.apache.org>

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>