Java Code Examples for com.google.api.client.http.HttpRequest#setIOExceptionHandler()
The following examples show how to use
com.google.api.client.http.HttpRequest#setIOExceptionHandler() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RetryHttpInitializerWrapper.java From deployment-examples with MIT License | 6 votes |
/** Initializes the given request. */ @Override public final void initialize(final HttpRequest request) { request.setReadTimeout(2 * ONEMINITUES); // 2 minutes read timeout final HttpUnsuccessfulResponseHandler backoffHandler = new HttpBackOffUnsuccessfulResponseHandler(new ExponentialBackOff()).setSleeper(sleeper); request.setInterceptor(wrappedCredential); request.setUnsuccessfulResponseHandler( (request1, response, supportsRetry) -> { if (wrappedCredential.handleResponse(request1, response, supportsRetry)) { // If credential decides it can handle it, the return code or message indicated // something specific to authentication, and no backoff is desired. return true; } else if (backoffHandler.handleResponse(request1, response, supportsRetry)) { // Otherwise, we defer to the judgement of our internal backoff handler. LOG.info("Retrying " + request1.getUrl().toString()); return true; } else { return false; } }); request.setIOExceptionHandler( new HttpBackOffIOExceptionHandler(new ExponentialBackOff()).setSleeper(sleeper)); }
Example 2
Source File: RetryHttpInitializerWrapper.java From beam with Apache License 2.0 | 6 votes |
/** Initializes the given request. */ @Override public final void initialize(final HttpRequest request) { request.setReadTimeout(2 * ONEMINITUES); // 2 minutes read timeout final HttpUnsuccessfulResponseHandler backoffHandler = new HttpBackOffUnsuccessfulResponseHandler(new ExponentialBackOff()).setSleeper(sleeper); request.setInterceptor(wrappedCredential); request.setUnsuccessfulResponseHandler( (request1, response, supportsRetry) -> { if (wrappedCredential.handleResponse(request1, response, supportsRetry)) { // If credential decides it can handle it, the return code or message indicated // something specific to authentication, and no backoff is desired. return true; } else if (backoffHandler.handleResponse(request1, response, supportsRetry)) { // Otherwise, we defer to the judgement of our internal backoff handler. LOG.info("Retrying " + request1.getUrl().toString()); return true; } else { return false; } }); request.setIOExceptionHandler( new HttpBackOffIOExceptionHandler(new ExponentialBackOff()).setSleeper(sleeper)); }
Example 3
Source File: BaseApiService.java From connector-sdk with Apache License 2.0 | 5 votes |
/** Initialize {@link HttpRequest} to setup exponential back off and automatic retries. */ @Override public void initialize(HttpRequest request) throws IOException { BackOff backOff = new ExponentialBackOff(); request.setUnsuccessfulResponseHandler(new LoggingResponseHandler(retryPolicy, backOff)); request.setIOExceptionHandler(new LoggingIOExceptionHandler(backOff)); }
Example 4
Source File: RetryInitializer.java From firebase-admin-java with Apache License 2.0 | 5 votes |
@Override public void initialize(HttpRequest request) { request.setNumberOfRetries(retryConfig.getMaxRetries()); request.setUnsuccessfulResponseHandler(newUnsuccessfulResponseHandler(request)); if (retryConfig.isRetryOnIOExceptions()) { request.setIOExceptionHandler(newIOExceptionHandler()); } }
Example 5
Source File: RetryHttpRequestInitializer.java From beam with Apache License 2.0 | 5 votes |
@Override public void initialize(HttpRequest request) throws IOException { // Set a timeout for hanging-gets. // TODO: Do this exclusively for work requests. request.setReadTimeout(HANGING_GET_TIMEOUT_SEC * 1000); request.setWriteTimeout(this.writeTimeout); LoggingHttpBackOffHandler loggingHttpBackOffHandler = new LoggingHttpBackOffHandler( sleeper, // Back off on retryable http errors and IOExceptions. // A back-off multiplier of 2 raises the maximum request retrying time // to approximately 5 minutes (keeping other back-off parameters to // their default values). new ExponentialBackOff.Builder().setNanoClock(nanoClock).setMultiplier(2).build(), new ExponentialBackOff.Builder().setNanoClock(nanoClock).setMultiplier(2).build(), ignoredResponseCodes, this.customHttpErrors); request.setUnsuccessfulResponseHandler(loggingHttpBackOffHandler); request.setIOExceptionHandler(loggingHttpBackOffHandler); // Set response initializer if (responseInterceptor != null) { request.setResponseInterceptor(responseInterceptor); } }
Example 6
Source File: ChainingHttpRequestInitializer.java From hadoop-connectors with Apache License 2.0 | 5 votes |
@Override public void initialize(HttpRequest request) throws IOException { List<HttpIOExceptionHandler> ioExceptionHandlers = new ArrayList<>(); List<HttpUnsuccessfulResponseHandler> unsuccessfulResponseHandlers = new ArrayList<>(); List<HttpExecuteInterceptor> interceptors = new ArrayList<>(); List<HttpResponseInterceptor> responseInterceptors = new ArrayList<>(); for (HttpRequestInitializer initializer : initializers) { initializer.initialize(request); if (request.getIOExceptionHandler() != null) { ioExceptionHandlers.add(request.getIOExceptionHandler()); request.setIOExceptionHandler(null); } if (request.getUnsuccessfulResponseHandler() != null) { unsuccessfulResponseHandlers.add(request.getUnsuccessfulResponseHandler()); request.setUnsuccessfulResponseHandler(null); } if (request.getInterceptor() != null) { interceptors.add(request.getInterceptor()); request.setInterceptor(null); } if (request.getResponseInterceptor() != null) { responseInterceptors.add(request.getResponseInterceptor()); request.setResponseInterceptor(null); } } request.setIOExceptionHandler( makeIoExceptionHandler(ioExceptionHandlers)); request.setUnsuccessfulResponseHandler( makeUnsuccessfulResponseHandler(unsuccessfulResponseHandlers)); request.setInterceptor( makeInterceptor(interceptors)); request.setResponseInterceptor( makeResponseInterceptor(responseInterceptors)); }
Example 7
Source File: CredentialFactory.java From hadoop-connectors with Apache License 2.0 | 5 votes |
@Override public void initialize(HttpRequest httpRequest) throws IOException { if (credential != null) { httpRequest.setInterceptor(credential); } httpRequest.setIOExceptionHandler( new HttpBackOffIOExceptionHandler(new ExponentialBackOff())); httpRequest.setUnsuccessfulResponseHandler( new HttpBackOffUnsuccessfulResponseHandler(new ExponentialBackOff())); }
Example 8
Source File: MediaUploadErrorHandler.java From google-api-java-client with Apache License 2.0 | 5 votes |
/** * Constructs a new instance from {@link MediaHttpUploader} and {@link HttpRequest}. */ public MediaUploadErrorHandler(MediaHttpUploader uploader, HttpRequest request) { this.uploader = Preconditions.checkNotNull(uploader); originalIOExceptionHandler = request.getIOExceptionHandler(); originalUnsuccessfulHandler = request.getUnsuccessfulResponseHandler(); request.setIOExceptionHandler(this); request.setUnsuccessfulResponseHandler(this); }
Example 9
Source File: RetryHttpInitializer.java From hadoop-connectors with Apache License 2.0 | 4 votes |
@Override public void initialize(HttpRequest request) { // Credential must be the interceptor to fill in accessToken fields. request.setInterceptor(credential); // Request will be retried if server errors (5XX) or I/O errors are encountered. request.setNumberOfRetries(options.getMaxRequestRetries()); // Set the timeout configurations. request.setConnectTimeout(Math.toIntExact(options.getConnectTimeout().toMillis())); request.setReadTimeout(Math.toIntExact(options.getReadTimeout().toMillis())); // IOExceptions such as "socket timed out" of "insufficient bytes written" will follow a // straightforward backoff. HttpBackOffIOExceptionHandler exceptionHandler = new HttpBackOffIOExceptionHandler(new ExponentialBackOff()); if (sleeperOverride != null) { exceptionHandler.setSleeper(sleeperOverride); } // Supply a new composite handler for unsuccessful return codes. 401 Unauthorized will be // handled by the Credential, 410 Gone will be logged, and 5XX will be handled by a backoff // handler. LoggingResponseHandler loggingResponseHandler = new LoggingResponseHandler( new CredentialOrBackoffResponseHandler(), exceptionHandler, ImmutableSet.of(HttpStatus.SC_GONE, HttpStatus.SC_SERVICE_UNAVAILABLE), ImmutableSet.of(HTTP_SC_TOO_MANY_REQUESTS)); request.setUnsuccessfulResponseHandler(loggingResponseHandler); request.setIOExceptionHandler(loggingResponseHandler); if (isNullOrEmpty(request.getHeaders().getUserAgent()) && !isNullOrEmpty(options.getDefaultUserAgent())) { logger.atFiner().log( "Request is missing a user-agent, adding default value of '%s'", options.getDefaultUserAgent()); request.getHeaders().setUserAgent(options.getDefaultUserAgent()); } request.getHeaders().putAll(options.getHttpHeaders()); }
Example 10
Source File: MediaHttpUploaderTest.java From google-api-java-client with Apache License 2.0 | 4 votes |
public void initialize(HttpRequest request) { request.setIOExceptionHandler(new HttpBackOffIOExceptionHandler(BackOff.ZERO_BACKOFF)); request.setUnsuccessfulResponseHandler( new HttpBackOffUnsuccessfulResponseHandler(BackOff.ZERO_BACKOFF)); }