From 5d8c5b0d9bf1ecb3b902ed55c320a4ea4fae0b38 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Mon, 20 Jan 2020 11:26:58 +0000 Subject: [PATCH] Avoid NPE on comment SSE event Closes gh-24389 --- .../http/codec/ServerSentEventHttpMessageReader.java | 9 ++++++--- .../codec/ServerSentEventHttpMessageReaderTests.java | 11 +++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageReader.java index 7677c48ebf..86ee2988be 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/ServerSentEventHttpMessageReader.java @@ -135,7 +135,10 @@ public class ServerSentEventHttpMessageReader implements HttpMessageReader buildEvent(lines, valueType, shouldWrap, hints)); + .concatMap(lines -> { + Object event = buildEvent(lines, valueType, shouldWrap, hints); + return (event != null ? Mono.just(event) : Mono.empty()); + }); } @Nullable @@ -168,7 +171,7 @@ public class ServerSentEventHttpMessageReader implements HttpMessageReader data = this.reader.read( + ResolvableType.forType(String.class), request, Collections.emptyMap()); + + StepVerifier.create(data).expectComplete().verify(); + } + @Test // SPR-15331 public void decodeFullContentAsString() { String body = "data:foo\ndata:bar\n\ndata:baz\n\n";