Skip to content

Commit 4cdded1

Browse files
committed
Remove retry logic from SplittingTransformer
1 parent 0381604 commit 4cdded1

File tree

3 files changed

+2
-56
lines changed

3 files changed

+2
-56
lines changed

core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/SplittingTransformer.java

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525
import software.amazon.awssdk.core.SplittingTransformerConfiguration;
2626
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
2727
import software.amazon.awssdk.core.async.SdkPublisher;
28-
import software.amazon.awssdk.core.exception.SdkException;
29-
import software.amazon.awssdk.core.exception.SdkServiceException;
30-
import software.amazon.awssdk.core.internal.retry.SdkDefaultRetrySetting;
31-
import software.amazon.awssdk.core.retry.RetryUtils;
3228
import software.amazon.awssdk.utils.CompletableFutureUtils;
3329
import software.amazon.awssdk.utils.Logger;
3430
import software.amazon.awssdk.utils.Validate;
@@ -344,32 +340,7 @@ public void exceptionOccurred(Throwable error) {
344340
if (!isFirstPart || onStreamCalled.get()) {
345341
publisherToUpstream.error(error);
346342
}
347-
348-
if (!isRetryableError(error)) {
349-
log.trace(() -> "error is non-retryable, forwarding upstream future to result future");
350-
CompletableFutureUtils.forwardResultTo(upstreamFuture, resultFuture);
351-
}
352-
}
353-
}
354-
355-
private boolean isRetryableError(Throwable error) {
356-
if (error instanceof SdkException) {
357-
SdkException ex = (SdkException) error;
358-
return retryOnStatusCodes(ex)
359-
|| RetryUtils.isRetryableException(ex)
360-
|| RetryUtils.isClockSkewException(ex)
361-
|| RetryUtils.isClockSkewException(ex);
362-
363-
}
364-
return false;
365-
}
366-
367-
private static boolean retryOnStatusCodes(Throwable ex) {
368-
if (ex instanceof SdkServiceException) {
369-
SdkServiceException failure = (SdkServiceException) ex;
370-
return SdkDefaultRetrySetting.RETRYABLE_STATUS_CODES.contains(failure.statusCode());
371343
}
372-
return false;
373344
}
374345

375346
/**

services/s3/pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,13 @@
128128
<artifactId>retries-spi</artifactId>
129129
<version>${awsjavasdk.version}</version>
130130
</dependency>
131+
<!-- Test Dependencies -->
131132
<dependency>
132133
<groupId>software.amazon.awssdk</groupId>
133134
<artifactId>retries</artifactId>
135+
<scope>test</scope>
134136
<version>${awsjavasdk.version}</version>
135137
</dependency>
136-
<!-- Test Dependencies -->
137138
<dependency>
138139
<artifactId>commons-io</artifactId>
139140
<groupId>commons-io</groupId>

services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/multipart/MultipartDownloaderSubscriberWiremockTest.java

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -98,32 +98,6 @@ <T> void happyPath_shouldReceiveAllBodyPartInCorrectOrder(AsyncResponseTransform
9898
util.verifyCorrectAmountOfRequestsMade(amountOfPartToTest);
9999
}
100100

101-
@ParameterizedTest
102-
@MethodSource("argumentsProvider")
103-
<T> void errorOnFirstRequest_shouldCompleteExceptionally(AsyncResponseTransformerTestSupplier<T> supplier,
104-
int amountOfPartToTest,
105-
int partSize) {
106-
stubFor(get(urlEqualTo(String.format("/%s/%s?partNumber=1", testBucket, testKey))).willReturn(
107-
aResponse()
108-
.withStatus(400)
109-
.withBody("<Error><Code>400</Code><Message>test error message</Message></Error>")));
110-
AsyncResponseTransformer<GetObjectResponse, T> transformer = supplier.transformer();
111-
AsyncResponseTransformer.SplitResult<GetObjectResponse, T> split = transformer.split(
112-
SplittingTransformerConfiguration.builder()
113-
.bufferSizeInBytes(1024 * 32L)
114-
.build());
115-
Subscriber<AsyncResponseTransformer<GetObjectResponse, GetObjectResponse>> subscriber = new MultipartDownloaderSubscriber(
116-
s3AsyncClient,
117-
GetObjectRequest.builder()
118-
.bucket(testBucket)
119-
.key(testKey)
120-
.build());
121-
122-
split.publisher().subscribe(subscriber);
123-
assertThatThrownBy(() -> split.resultFuture().join())
124-
.hasMessageContaining("test error message");
125-
}
126-
127101
@ParameterizedTest
128102
@MethodSource("argumentsProvider")
129103
<T> void errorOnThirdRequest_shouldCompleteExceptionallyOnlyPartsGreaterThanTwo(

0 commit comments

Comments
 (0)