Skip to content

Commit d8f0879

Browse files
authored
Fix flaky InputStreamStreamMessageTest.emptyInputStream() (#6484)
Motivation: `Subscriber.onComplete()` is invoked before `completionFuture` is completed, so a happen-before relationship between `byteStreamMessage.isOpen()` and `Subscriber.onComplete()` cannot be guaranteed. https://github.com/line/armeria/blob/0d94d0df85ba9b1184c79ffdd58d3e414b2f0c7d/core/src/main/java/com/linecorp/armeria/common/stream/InputStreamStreamMessage.java#L375-L376 Modifications: - Use `.whenComplete().join()` to explicitly wait until `InputStreamStreamMessage` completes. Result: Closes #6483
1 parent ba803e2 commit d8f0879

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

core/src/test/java/com/linecorp/armeria/common/stream/InputStreamStreamMessageTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,8 +406,9 @@ void emptyInputStream() {
406406

407407
StepVerifier.create(byteStreamMessage)
408408
.verifyComplete();
409+
byteStreamMessage.whenComplete().join();
410+
assertThat(byteStreamMessage.isOpen()).isFalse();
409411
assertThat(byteStreamMessage.isEmpty()).isTrue();
410-
await().untilAsserted(() -> assertThat(byteStreamMessage.isOpen()).isFalse());
411412
}
412413

413414
@Test

0 commit comments

Comments
 (0)