Skip to content

Commit a3484ae

Browse files
committed
Minor fix in ServletResponseMethodArgumentResolver
Issues: SPR-8983
1 parent 6fd476e commit a3484ae

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

Diff for: org.springframework.web.servlet/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ServletResponseMethodArgumentResolver.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,10 @@ public Object resolveArgument(
6161
MethodParameter parameter, ModelAndViewContainer mavContainer,
6262
NativeWebRequest webRequest, WebDataBinderFactory binderFactory)
6363
throws IOException {
64-
65-
mavContainer.setRequestHandled(true);
64+
65+
if (mavContainer != null) {
66+
mavContainer.setRequestHandled(true);
67+
}
6668

6769
HttpServletResponse response = webRequest.getNativeResponse(HttpServletResponse.class);
6870
Class<?> paramType = parameter.getParameterType();

Diff for: org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ServletResponseMethodArgumentResolverTests.java

+10
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ public void servletResponse() throws Exception {
7070
assertTrue(mavContainer.isRequestHandled());
7171
}
7272

73+
// SPR-8983
74+
75+
public void servletResponseNoMavContainer() throws Exception {
76+
MethodParameter servletResponseParameter = new MethodParameter(method, 0);
77+
assertTrue("ServletResponse not supported", resolver.supportsParameter(servletResponseParameter));
78+
79+
Object result = resolver.resolveArgument(servletResponseParameter, null, webRequest, null);
80+
assertSame("Invalid result", servletResponse, result);
81+
}
82+
7383
@Test
7484
public void outputStream() throws Exception {
7585
MethodParameter outputStreamParameter = new MethodParameter(method, 1);

0 commit comments

Comments
 (0)