@Override public int getStatus() { return context.getStatus(); }
@SuppressWarnings("SimplifiableIfStatement") @Override public boolean shouldBeRetried(URI uri, int retryCount, ClientResponse response, Throwable exception, Mode mode) { if (retryCount >= maxRetries) { LOG.warning(String.format("Retries exceeded. retryCount: %d - maxRetries: %d", retryCount, maxRetries)); return false; } if ((response != null) && (mode == Mode.RETRY_ALL)) { if (response.getStatusInfo().getFamily() == Response.Status.Family.SERVER_ERROR) { LOG.info(String.format("Retrying request due to Status %d. retryCount: %d - request: %s", response.getStatus(), retryCount, uri)); return true; } } return shouldBeRetried(uri, exception, mode); }
@Override public int getStatus() { return context.getStatus(); }
@Override public int getStatus() { return context.getStatus(); }
@SuppressWarnings("MagicNumber") private ClientResponse tryFollowRedirects(boolean followRedirects, ClientResponse response, ClientRequest request) { if (!followRedirects) { return response; } while (true) { switch (response.getStatus()) { case 303: case 302: case 307: request = new ClientRequest(request); request.setUri(response.getLocation()); if (response.getStatus() == 303) { request.setMethod("GET"); } response = apply(request); break; default: return response; } } }
@Override public int getStatus() { return context.getStatus(); }
@Override public int getStatus() { return context.getStatus(); }
@Override public int getStatus() { return context.getStatus(); }
@Override public int getStatus() { return context.getStatus(); }
@Override public ClientResponse apply(ClientRequest request) { RequestRunner<ClientRequest> requestRunner = new RequestRunner<>(retryComponents, headerSetter, request.getUri(), request.getMethod()); while ( requestRunner.shouldContinue() ) { URI uri = requestRunner.prepareRequest(request); request.setUri(uri); try { ClientResponse response = connector.apply(request); if ( requestRunner.isSuccessResponse(response.getStatus()) ) { return response; } } catch ( Exception e ) { if ( !requestRunner.shouldBeRetried(e) ) { throw new ProcessingException(e); } } } throw new ProcessingException("Retries expired: " + requestRunner.getOriginalUri()); }