Skip to content

Commit a321e63

Browse files
authored
Fix the maximum retry count send to the service (was off by 1) (#2694)
1 parent 6d3c8de commit a321e63

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/utils/RetryableStageHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public void logBackingOff(Duration backoffDelay) {
146146
*/
147147
public SdkHttpFullRequest requestToSend() {
148148
return request.toBuilder()
149-
.putHeader(SDK_RETRY_INFO_HEADER, "attempt=" + attemptNumber + "; max=" + retryPolicy.numRetries())
149+
.putHeader(SDK_RETRY_INFO_HEADER, "attempt=" + attemptNumber + "; max=" + (retryPolicy.numRetries() + 1))
150150
.build();
151151
}
152152

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@
146146
<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
147147
<maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
148148
<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
149-
<japicmp-maven-plugin.version>0.14.4</japicmp-maven-plugin.version>
149+
<japicmp-maven-plugin.version>0.15.3</japicmp-maven-plugin.version>
150150

151151
<!-- These properties are used by Step functions for its dependencies -->
152152
<json-path.version>2.4.0</json-path.version>

test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/retry/AsyncRetryHeaderTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.net.URI;
1919
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
2020
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
21+
import software.amazon.awssdk.core.retry.RetryMode;
2122
import software.amazon.awssdk.regions.Region;
2223
import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonAsyncClient;
2324
import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonClient;
@@ -30,6 +31,7 @@ public class AsyncRetryHeaderTest extends RetryHeaderTestSuite<MockAsyncHttpClie
3031
public AsyncRetryHeaderTest() {
3132
super(new MockAsyncHttpClient());
3233
client = ProtocolRestJsonAsyncClient.builder()
34+
.overrideConfiguration(c -> c.retryPolicy(RetryMode.STANDARD))
3335
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("akid", "skid")))
3436
.region(Region.US_EAST_1)
3537
.endpointOverride(URI.create("http://localhost"))

test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/retry/SyncRetryHeaderTest.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.net.URI;
1919
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
2020
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
21+
import software.amazon.awssdk.core.retry.RetryMode;
2122
import software.amazon.awssdk.regions.Region;
2223
import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonClient;
2324
import software.amazon.awssdk.testutils.service.http.MockSyncHttpClient;
@@ -28,12 +29,13 @@ public class SyncRetryHeaderTest extends RetryHeaderTestSuite<MockSyncHttpClient
2829
public SyncRetryHeaderTest() {
2930
super(new MockSyncHttpClient());
3031
client = ProtocolRestJsonClient.builder()
31-
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("akid",
32-
"skid")))
33-
.region(Region.US_EAST_1)
34-
.endpointOverride(URI.create("http://localhost"))
35-
.httpClient(mockHttpClient)
36-
.build();
32+
.overrideConfiguration(c -> c.retryPolicy(RetryMode.STANDARD))
33+
.credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("akid",
34+
"skid")))
35+
.region(Region.US_EAST_1)
36+
.endpointOverride(URI.create("http://localhost"))
37+
.httpClient(mockHttpClient)
38+
.build();
3739
}
3840

3941
@Override

0 commit comments

Comments
 (0)