From df00d608e2a2eb3f83f4a301dfb143a5dcff12db Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Fri, 16 Jul 2010 13:47:19 +0000 Subject: [PATCH] SPR-7381 - HTTP headers returned as part of ResponseEntity(MultiValueMap headers, HttpStatus statusCode) are ignored when using this constructor git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@3488 50f2f4bb-b051-0410-bef5-90022cba6387 --- .../mvc/annotation/AnnotationMethodHandlerAdapter.java | 4 ++++ .../mvc/annotation/ServletAnnotationControllerTests.java | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java index 56e396e7fc0..fe6f4848a25 100644 --- a/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java +++ b/org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.java @@ -938,6 +938,10 @@ public class AnnotationMethodHandlerAdapter extends WebContentGenerator if (body != null) { writeWithMessageConverters(body, inputMessage, outputMessage); } + else { + // flush headers + outputMessage.getBody(); + } } @SuppressWarnings("unchecked") diff --git a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java index 1eb75f530bb..0087ed29ec9 100644 --- a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java +++ b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java @@ -1212,6 +1212,7 @@ public class ServletAnnotationControllerTests { request = new MockHttpServletRequest("PUT", "/bar"); response = new MockHttpServletResponse(); servlet.service(request, response); + assertEquals("MyValue", response.getHeader("MyResponseHeader")); assertEquals(404, response.getStatus()); } @@ -2716,7 +2717,9 @@ public class ServletAnnotationControllerTests { @RequestMapping("/bar") public ResponseEntity bar() { - return new ResponseEntity(new HttpHeaders(), HttpStatus.NOT_FOUND); + HttpHeaders responseHeaders = new HttpHeaders(); + responseHeaders.set("MyResponseHeader", "MyValue"); + return new ResponseEntity(responseHeaders, HttpStatus.NOT_FOUND); } }