Browse Source

Allow empty comment in ServerResponse.SseBuilder

Closes gh-34608
pull/34656/head
rstoyanchev 9 months ago
parent
commit
34c69bfc67
  1. 3
      spring-webmvc/src/main/java/org/springframework/web/servlet/function/SseServerResponse.java
  2. 22
      spring-webmvc/src/test/java/org/springframework/web/servlet/function/SseServerResponseTests.java

3
spring-webmvc/src/main/java/org/springframework/web/servlet/function/SseServerResponse.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2024 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -173,7 +173,6 @@ final class SseServerResponse extends AbstractServerResponse { @@ -173,7 +173,6 @@ final class SseServerResponse extends AbstractServerResponse {
@Override
public SseBuilder comment(String comment) {
Assert.hasLength(comment, "Comment must not be empty");
String[] lines = comment.split("\n");
for (String line : lines) {
field("", line);

22
spring-webmvc/src/test/java/org/springframework/web/servlet/function/SseServerResponseTests.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2024 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -173,6 +173,26 @@ class SseServerResponseTests { @@ -173,6 +173,26 @@ class SseServerResponseTests {
assertThat(this.mockResponse.getContentAsString()).isEqualTo(expected);
}
@Test // gh-34608
void sendHeartbeat() throws Exception {
ServerResponse response = ServerResponse.sse(sse -> {
try {
sse.comment("").send();
}
catch (IOException ex) {
throw new UncheckedIOException(ex);
}
});
ServerResponse.Context context = Collections::emptyList;
ModelAndView mav = response.writeTo(this.mockRequest, this.mockResponse, context);
assertThat(mav).isNull();
String expected = ":\n\n";
assertThat(this.mockResponse.getContentAsString()).isEqualTo(expected);
}
private static final class Person {

Loading…
Cancel
Save