Utilizando Apache HttpClient cómo configurar el TIMEOUT en una solicitud y respuesta

Necesito establecer un tiempo de espera para la solicitud Http que hacemos a un servicio (no a un servicio web). Estamos utilizando Apache HTTP Client. He agregado estas 2 líneas de código para establecer el tiempo de espera por solicitud y respuesta al servicio.

HttpConnectionParams.setConnectionTimeout(params, 10000);
HttpConnectionParams.setSoTimeout(params, 10000);

1) Actualmente configuré 10 segundos como tiempo de espera, ya que veo que la respuesta proviene del servicio casi instantáneamente. ¿Debo aumentar o disminuir el tiempo?

2) ¿Qué sucederá cuando la respuesta se demore más de 10 segundos? ¿Lanzará una excepción y qué excepción será? ¿Hay algo más que deba agregar para configurar el tiempo de espera en el siguiente código?

public HashMap<String, Object> getJSONData(String url) throw Exception{
    DefaultHttpClient httpClient = new DefaultHttpClient();
    HttpParams params = httpClient.getParams();
    HttpConnectionParams.setConnectionTimeout(params, 10000);
    HttpConnectionParams.setSoTimeout(params, 10000);
    HttpHost proxy = new HttpHost(getProxy(), getProxyPort());
    ConnRouteParams.setDefaultProxy(params, proxy);
    URI uri;
    InputStream data = null;
    try {
        uri = new URI(url);
        HttpGet method = new HttpGet(uri);
        HttpResponse response = httpClient.execute(method);
        data = response.getEntity().getContent();
    }
    catch (Exception e) {
        e.printStackTrace();
    }
    Reader r = new InputStreamReader(data);
    HashMap<String, Object> jsonObj = (HashMap<String, Object>) GenericJSONUtil.fromJson(r);
    return jsonObj;
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta