Flush headers after null ResponseBodyEmitter
Issue: SPR-14315
This commit is contained in:
parent
431a50823f
commit
f20f6c952a
|
@ -137,6 +137,7 @@ public class ResponseBodyEmitterReturnValueHandler implements AsyncHandlerMethod
|
||||||
returnValue = responseEntity.getBody();
|
returnValue = responseEntity.getBody();
|
||||||
if (returnValue == null) {
|
if (returnValue == null) {
|
||||||
mavContainer.setRequestHandled(true);
|
mavContainer.setRequestHandled(true);
|
||||||
|
outputMessage.flush();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import static org.springframework.web.servlet.mvc.method.annotation.SseEmitter.*
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
|
@ -184,11 +185,12 @@ public class ResponseBodyEmitterReturnValueHandlerTests {
|
||||||
@Test
|
@Test
|
||||||
public void responseEntitySseNoContent() throws Exception {
|
public void responseEntitySseNoContent() throws Exception {
|
||||||
MethodParameter returnType = returnType("handleResponseEntitySse");
|
MethodParameter returnType = returnType("handleResponseEntitySse");
|
||||||
ResponseEntity<?> entity = ResponseEntity.noContent().build();
|
ResponseEntity<?> entity = ResponseEntity.noContent().header("foo", "bar").build();
|
||||||
handleReturnValue(entity, returnType);
|
handleReturnValue(entity, returnType);
|
||||||
|
|
||||||
assertFalse(this.request.isAsyncStarted());
|
assertFalse(this.request.isAsyncStarted());
|
||||||
assertEquals(204, this.response.getStatus());
|
assertEquals(204, this.response.getStatus());
|
||||||
|
assertEquals(Collections.singletonList("bar"), this.response.getHeaders("foo"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleReturnValue(Object returnValue, MethodParameter returnType) throws Exception {
|
private void handleReturnValue(Object returnValue, MethodParameter returnType) throws Exception {
|
||||||
|
|
Loading…
Reference in New Issue