Skip to content

Commit 17fa6cb

Browse files
committed
fix and test added for the bug
1 parent 4bf8e38 commit 17fa6cb

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ public void request(long n) {
8787
int i = index.getAndIncrement();
8888

8989
if (i >= buffers.length) {
90+
if (completed.compareAndSet(false, true)) {
91+
s.onComplete();
92+
}
9093
return;
9194
}
9295

core/sdk-core/src/test/java/software/amazon/awssdk/core/internal/async/ByteBuffersAsyncRequestBodyTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,16 @@ public void subscriberIsMarkedAsCompleted() {
8181
assertEquals(1, subscriber.publishedResults.size());
8282
}
8383

84+
@Test
85+
public void subscriberIsMarkedAsCompletedWhenNoBufferIsGiven() {
86+
AsyncRequestBody requestBody = ByteBuffersAsyncRequestBody.of();
87+
TestSubscriber subscriber = new TestSubscriber();
88+
89+
requestBody.subscribe(subscriber);
90+
subscriber.request(1);
91+
assertTrue(subscriber.onCompleteCalled);
92+
}
93+
8494
@Test
8595
public void subscriberIsMarkedAsCompletedWhenARequestIsMadeForMoreBuffersThanAreAvailable() {
8696
AsyncRequestBody requestBody = ByteBuffersAsyncRequestBody.from("Hello World!".getBytes(StandardCharsets.UTF_8));

0 commit comments

Comments
 (0)