Por que razão seria o intervalo de tempo de URLConnection após 6+ minutos em vez de 5 segundos?

Eu estou copiando este método textualmente do meu aplicativo, que ainda não está completo, mas ele tenta me fornecer um rastreamento de pilha de tempo limite se as coisas não correrem bem:

protected boolean isHttpAlive()  {
  boolean isHttpOk = false;

  HttpURLConnection httpConnection = null;
  try {
    URL gurl = new URL("http://www.amazon.com/");
    URLConnection connection = gurl.openConnection();
    connection.setConnectTimeout(5 * 1000); // 5 seconds!
    httpConnection = (HttpURLConnection) connection;
    int responseCode = httpConnection.getResponseCode();
    if (responseCode == HttpURLConnection.HTTP_OK)
      isHttpOk = true;
  } 
  catch (Exception e) {                    
    e.printStackTrace();
  }
  finally {
    if (httpConnection != null)
      httpConnection.disconnect();
  }

  return isHttpOk;
}

Agora em um dos meus dispositivos de teste (Droid), quando há um problema, eu consigoa exceção mas só depois6 minutos e 36 segundos, não 5 segundos como eu configurei no código acima.

A exceção de tempo limite é lançada para ogetResponseCode().

Por quê?

o que estou perdendo?

questionAnswers(2)

yourAnswerToTheQuestion