From c7846120902a33e676d0831ef156703795977365 Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Fri, 18 Oct 2024 11:49:54 +0100 Subject: [PATCH] Polishing in GraphQlSseHandler See gh-1067 --- .../server/webmvc/GraphQlSseHandler.java | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlSseHandler.java b/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlSseHandler.java index 361e2a3d..fd96945b 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlSseHandler.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/server/webmvc/GraphQlSseHandler.java @@ -31,8 +31,6 @@ import reactor.core.publisher.Mono; import org.springframework.graphql.execution.SubscriptionPublisherException; import org.springframework.graphql.server.WebGraphQlHandler; import org.springframework.graphql.server.WebGraphQlResponse; -import org.springframework.util.AlternativeJdkIdGenerator; -import org.springframework.util.IdGenerator; import org.springframework.web.context.request.async.AsyncRequestTimeoutException; import org.springframework.web.servlet.function.ServerRequest; import org.springframework.web.servlet.function.ServerResponse; @@ -49,9 +47,6 @@ import org.springframework.web.servlet.function.ServerResponse; */ public class GraphQlSseHandler extends AbstractGraphQlHttpHandler { - private final IdGenerator idGenerator = new AlternativeJdkIdGenerator(); - - public GraphQlSseHandler(WebGraphQlHandler graphQlHandler) { super(graphQlHandler, null); } @@ -94,12 +89,7 @@ public class GraphQlSseHandler extends AbstractGraphQlHttpHandler { private SseSubscriber(ServerResponse.SseBuilder sseBuilder) { this.sseBuilder = sseBuilder; - this.sseBuilder.onTimeout(this::onTimeout); - } - - private void onTimeout() { - this.cancel(); - this.sseBuilder.error(new AsyncRequestTimeoutException()); + this.sseBuilder.onTimeout(() -> cancelWithError(new AsyncRequestTimeoutException())); } @Override @@ -113,11 +103,15 @@ public class GraphQlSseHandler extends AbstractGraphQlHttpHandler { this.sseBuilder.data(value); } catch (IOException exception) { - cancel(); - hookOnError(exception); + cancelWithError(exception); } } + private void cancelWithError(Throwable ex) { + this.cancel(); + this.sseBuilder.error(ex); + } + @Override protected void hookOnError(Throwable ex) { if (ex instanceof SubscriptionPublisherException spe) {