public final class TimeoutExceptionHandlingStage<OutputT> extends Object implements RequestToResponsePipeline<OutputT>
Exception is caused by either ApiCallTimeout or ApiAttemptTimeout and translate that
exception to a more appropriate timeout related exception so that it can be handled in other stages.| Constructor and Description |
|---|
TimeoutExceptionHandlingStage(HttpClientDependencies dependencies,
RequestPipeline<software.amazon.awssdk.http.SdkHttpFullRequest,Response<OutputT>> requestPipeline) |
| Modifier and Type | Method and Description |
|---|---|
Response<OutputT> |
execute(software.amazon.awssdk.http.SdkHttpFullRequest request,
RequestExecutionContext context)
Translate an
Exception caused by timeout based on the following criteria:
If the Exception is caused by ClientOverrideConfiguration.apiCallTimeout, translates it to
InterruptedException so it can be handled
appropriately in ApiCallTimeoutTrackingStage. |
public TimeoutExceptionHandlingStage(HttpClientDependencies dependencies, RequestPipeline<software.amazon.awssdk.http.SdkHttpFullRequest,Response<OutputT>> requestPipeline)
public Response<OutputT> execute(software.amazon.awssdk.http.SdkHttpFullRequest request, RequestExecutionContext context) throws Exception
Exception caused by timeout based on the following criteria:
Exception is caused by ClientOverrideConfiguration.apiCallTimeout, translates it to
InterruptedException so it can be handled
appropriately in ApiCallTimeoutTrackingStage. ClientOverrideConfiguration.apiCallAttemptTimeout(), clear the interrupt status,
translates it to ApiCallAttemptTimeoutException so that it might be retried
in RetryableStage
ApiCallTimeout takes precedence because it is not retryable.
execute in interface RequestPipeline<software.amazon.awssdk.http.SdkHttpFullRequest,Response<OutputT>>request - the requestcontext - Context containing both request dependencies, and a container for any mutable state that must be shared
between stages.Exception - the translated exception or the original exceptionCopyright © 2022. All rights reserved.