From be8ee9b15bd3e9351bec16e46b25deb032a78757 Mon Sep 17 00:00:00 2001 From: Arnab Nandy Date: Sat, 19 Sep 2026 17:47:19 +0530 Subject: [PATCH] Fix flaky Reactor Netty attributes test Signed-off-by: Arnab Nandy --- .../function/client/WebClientIntegrationTests.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java index 2e40a36c1fcf..df3ec84a6feb 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/WebClientIntegrationTests.java @@ -46,7 +46,6 @@ import mockwebserver3.RecordedRequest; import org.eclipse.jetty.client.Request; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -1323,10 +1322,12 @@ void retrieveTextDecodedToFlux(ClientHttpConnector connector) throws IOException .verify(Duration.ofSeconds(3)); } - @Disabled("Disabled because it's flaky (gh-36589)") @Test // gh-36158 void reactorNettyAttributes() throws IOException { - startServer(new ReactorClientHttpConnector()); + Sinks.Empty connectionReleased = Sinks.empty(); + HttpClient httpClient = HttpClient.create() + .doOnDisconnected(connection -> connectionReleased.tryEmitEmpty()); + startServer(new ReactorClientHttpConnector(httpClient)); prepareResponse(builder -> builder.setHeader("Content-Type", "text/plain").body("Hello Spring!")); @@ -1342,6 +1343,7 @@ void reactorNettyAttributes() throws IOException { .bodyToMono(String.class); StepVerifier.create(result).expectNext("Hello Spring!").expectComplete().verify(Duration.ofSeconds(3)); + StepVerifier.create(connectionReleased.asMono()).expectComplete().verify(Duration.ofSeconds(3)); assertThat(channelRef.get().attr(ReactorClientHttpConnector.ATTRIBUTES_KEY).get()).isNull(); }