Skip to content

Commit 0a75aac

Browse files
committed
Add support for AWS retryable conditions
1 parent 17a6c57 commit 0a75aac

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/builder/AwsDefaultClientBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ private void configureRetryPolicy(SdkClientConfiguration.Builder config) {
350350
private void configureRetryStrategy(SdkClientConfiguration.Builder config) {
351351
RetryStrategy<?, ?> strategy = config.option(SdkClientOption.RETRY_STRATEGY);
352352
if (strategy != null) {
353-
config.option(SdkClientOption.RETRY_STRATEGY, strategy);
353+
config.option(SdkClientOption.RETRY_STRATEGY, AwsRetryStrategy.configureStrategy(strategy.toBuilder()).build());
354354
return;
355355
}
356356
config.lazyOption(SdkClientOption.RETRY_STRATEGY, this::resolveAwsRetryStrategy);

core/aws-core/src/main/java/software/amazon/awssdk/awscore/retry/AwsRetryStrategy.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,16 @@ public static AdaptiveRetryStrategy adaptiveRetryStrategy() {
128128
return builder.retryOnException(AwsRetryStrategy::retryOnAwsRetryableErrors);
129129
}
130130

131+
/**
132+
* Configures any retry strategy using its builder to add AWS-specific retry exceptions.
133+
*
134+
* @param builder The builder to add the AWS-specific retry exceptions
135+
* @return The given builder
136+
*/
137+
public static RetryStrategy.Builder<?, ?> configureStrategy(RetryStrategy.Builder<?, ?> builder) {
138+
return builder.retryOnException(AwsRetryStrategy::retryOnAwsRetryableErrors);
139+
}
140+
131141
private static boolean retryOnAwsRetryableErrors(Throwable ex) {
132142
if (ex instanceof AwsServiceException) {
133143
AwsServiceException exception = (AwsServiceException) ex;

0 commit comments

Comments
 (0)