Riprendo questa questione dal post:
http://forum.html.it/forum/showthrea...readid=1414862

A fronte del semplice codice di esempio

codice:
import java.net.*;

public class Prova
{
  public static void main(String[] args) throws Exception
  {
    URL url = new URL(args[0]);

    HttpURLConnection conn = (HttpURLConnection)url.openConnection();

    conn.setConnectTimeout(1);

    conn.connect();

    return;
  }
}
sto riscontrando un comportamento inaspettato da parte del metodo setConnectTimeout():
- se args[0] è "http://www.googlea.it" (che non esiste, e quindi il DNS non è in grado di risolverlo) mi genera una UnknownHostException;
- se args[0] è "http://www.google.it" (che esiste) il programma termina correttamente, senza generare nessuna eccezione.
Ora, in entrambi i casi, mi sembra ben difficile che tutto il procedimento di connessione avvenga in meno di 1 millisecondo (specie visto che un ping me ne riporta circa 100)... per questo mi aspettavo che mi venisse generata una eccezione di connessione.
Quindi, precisamente, che timeout viene monitorato?
Da documentazione segnala che implementazioni non-standard della JVM potrebbero ignorare il setConnectTimeout()... ma io utilizzo una JDK 6 standard