Skip to content

Commit c4a1239

Browse files
committed
Revert the change to offload metrics reporting and remove false comment
1 parent e10a3f3 commit c4a1239

File tree

2 files changed

+5
-10
lines changed

2 files changed

+5
-10
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,10 @@ private CompletableFuture<Void> doExecuteHttpRequest(RequestExecutionContext con
174174
long callStart = System.nanoTime();
175175
CompletableFuture<Void> httpClientFuture = sdkAsyncHttpClient.execute(executeRequest);
176176

177-
// Offload the metrics reporting from this stage onto the future completion executor
178-
CompletableFuture<Void> result = httpClientFuture.whenCompleteAsync((r, t) -> {
177+
CompletableFuture<Void> result = httpClientFuture.whenComplete((r, t) -> {
179178
long duration = System.nanoTime() - callStart;
180179
metricCollector.reportMetric(CoreMetric.SERVICE_CALL_DURATION, Duration.ofNanos(duration));
181-
}, futureCompletionExecutor);
180+
});
182181

183182
// Make sure failures on the result future are forwarded to the http client future.
184183
CompletableFutureUtils.forwardExceptionTo(result, httpClientFuture);

test/protocol-tests/src/test/java/software/amazon/awssdk/protocol/tests/AsyncResponseThreadingTest.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import static org.mockito.ArgumentMatchers.any;
2424
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
2525
import static org.mockito.Matchers.any;
26-
import static org.mockito.Mockito.times;
2726
import static org.mockito.Mockito.verify;
2827
import static software.amazon.awssdk.core.client.config.SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR;
2928

@@ -69,8 +68,7 @@ public void completionWithNioThreadWorksCorrectly() {
6968
client.streamingOutputOperation(StreamingOutputOperationRequest.builder().build(),
7069
AsyncResponseTransformer.toBytes()).join();
7170

72-
// #1 reporting metrics, #2 completing response
73-
verify(mockExecutor, times(2)).execute(any());
71+
verify(mockExecutor).execute(any());
7472

7573
byte[] arrayCopy = response.asByteArray();
7674
assertThat(arrayCopy).containsExactly('t', 'e', 's', 't');
@@ -96,8 +94,7 @@ public void connectionError_completionWithNioThreadWorksCorrectly() {
9694
AsyncResponseTransformer.toBytes()).join())
9795
.hasCauseInstanceOf(SdkClientException.class);
9896

99-
// #1 reporting metrics, #2 completing response
100-
verify(mockExecutor, times(2)).execute(any());
97+
verify(mockExecutor).execute(any());
10198
}
10299

103100
@Test
@@ -118,8 +115,7 @@ public void serverError_completionWithNioThreadWorksCorrectly() {
118115
assertThatThrownBy(() ->
119116
client.streamingOutputOperation(StreamingOutputOperationRequest.builder().build(),
120117
AsyncResponseTransformer.toBytes()).join()).hasCauseInstanceOf(ProtocolRestJsonException.class);
121-
// #1 reporting metrics, #2 completing response
122-
verify(mockExecutor, times(2)).execute(any());
118+
verify(mockExecutor).execute(any());
123119
}
124120

125121
private static class SpyableExecutor implements Executor {

0 commit comments

Comments
 (0)