@@ -289,40 +289,44 @@ public void performRequestAsync(String method, String endpoint, Map<String, Stri
289289 public void performRequestAsync (String method , String endpoint , Map <String , String > params ,
290290 HttpEntity entity , HttpAsyncResponseConsumerFactory httpAsyncResponseConsumerFactory ,
291291 ResponseListener responseListener , Header ... headers ) {
292- Objects .requireNonNull (params , "params must not be null" );
293- Map <String , String > requestParams = new HashMap <>(params );
294- //ignore is a special parameter supported by the clients, shouldn't be sent to es
295- String ignoreString = requestParams .remove ("ignore" );
296- Set <Integer > ignoreErrorCodes ;
297- if (ignoreString == null ) {
298- if (HttpHead .METHOD_NAME .equals (method )) {
299- //404 never causes error if returned for a HEAD request
300- ignoreErrorCodes = Collections .singleton (404 );
292+ try {
293+ Objects .requireNonNull (params , "params must not be null" );
294+ Map <String , String > requestParams = new HashMap <>(params );
295+ //ignore is a special parameter supported by the clients, shouldn't be sent to es
296+ String ignoreString = requestParams .remove ("ignore" );
297+ Set <Integer > ignoreErrorCodes ;
298+ if (ignoreString == null ) {
299+ if (HttpHead .METHOD_NAME .equals (method )) {
300+ //404 never causes error if returned for a HEAD request
301+ ignoreErrorCodes = Collections .singleton (404 );
302+ } else {
303+ ignoreErrorCodes = Collections .emptySet ();
304+ }
301305 } else {
302- ignoreErrorCodes = Collections .emptySet ();
303- }
304- } else {
305- String [] ignoresArray = ignoreString .split ("," );
306- ignoreErrorCodes = new HashSet <>();
307- if (HttpHead .METHOD_NAME .equals (method )) {
308- //404 never causes error if returned for a HEAD request
309- ignoreErrorCodes .add (404 );
310- }
311- for (String ignoreCode : ignoresArray ) {
312- try {
313- ignoreErrorCodes .add (Integer .valueOf (ignoreCode ));
314- } catch (NumberFormatException e ) {
315- throw new IllegalArgumentException ("ignore value should be a number, found [" + ignoreString + "] instead" , e );
306+ String [] ignoresArray = ignoreString .split ("," );
307+ ignoreErrorCodes = new HashSet <>();
308+ if (HttpHead .METHOD_NAME .equals (method )) {
309+ //404 never causes error if returned for a HEAD request
310+ ignoreErrorCodes .add (404 );
311+ }
312+ for (String ignoreCode : ignoresArray ) {
313+ try {
314+ ignoreErrorCodes .add (Integer .valueOf (ignoreCode ));
315+ } catch (NumberFormatException e ) {
316+ throw new IllegalArgumentException ("ignore value should be a number, found [" + ignoreString + "] instead" , e );
317+ }
316318 }
317319 }
320+ URI uri = buildUri (pathPrefix , endpoint , requestParams );
321+ HttpRequestBase request = createHttpRequest (method , uri , entity );
322+ setHeaders (request , headers );
323+ FailureTrackingResponseListener failureTrackingResponseListener = new FailureTrackingResponseListener (responseListener );
324+ long startTime = System .nanoTime ();
325+ performRequestAsync (startTime , nextHost (), request , ignoreErrorCodes , httpAsyncResponseConsumerFactory ,
326+ failureTrackingResponseListener );
327+ } catch (Exception e ) {
328+ responseListener .onFailure (e );
318329 }
319- URI uri = buildUri (pathPrefix , endpoint , requestParams );
320- HttpRequestBase request = createHttpRequest (method , uri , entity );
321- setHeaders (request , headers );
322- FailureTrackingResponseListener failureTrackingResponseListener = new FailureTrackingResponseListener (responseListener );
323- long startTime = System .nanoTime ();
324- performRequestAsync (startTime , nextHost (), request , ignoreErrorCodes , httpAsyncResponseConsumerFactory ,
325- failureTrackingResponseListener );
326330 }
327331
328332 private void performRequestAsync (final long startTime , final HostTuple <Iterator <HttpHost >> hostTuple , final HttpRequestBase request ,
0 commit comments