Browse Source

Fix NPE in ResponseBodyEmitterReturnValueHandler

The possibility of NPE was introduced in the previous commit:
971ccab038

Issue: SPR-14046
pull/1008/head
Rossen Stoyanchev 10 years ago
parent
commit
92dd4eb3ef
  1. 8
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandler.java
  2. 5
      spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandlerTests.java

8
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandler.java

@ -81,9 +81,11 @@ public class ResponseBodyEmitterReturnValueHandler implements AsyncHandlerMethod @@ -81,9 +81,11 @@ public class ResponseBodyEmitterReturnValueHandler implements AsyncHandlerMethod
}
private ResponseBodyEmitterAdapter getAdapterFor(Class<?> type) {
for (Class<?> adapteeType : getAdapterMap().keySet()) {
if (adapteeType.isAssignableFrom(type)) {
return getAdapterMap().get(adapteeType);
if (type != null) {
for (Class<?> adapteeType : getAdapterMap().keySet()) {
if (adapteeType.isAssignableFrom(type)) {
return getAdapterMap().get(adapteeType);
}
}
}
return null;

5
spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandlerTests.java

@ -81,6 +81,7 @@ public class ResponseBodyEmitterReturnValueHandlerTests { @@ -81,6 +81,7 @@ public class ResponseBodyEmitterReturnValueHandlerTests {
assertTrue(this.handler.supportsReturnType(returnType("handleResponseEntity")));
assertFalse(this.handler.supportsReturnType(returnType("handleResponseEntityString")));
assertFalse(this.handler.supportsReturnType(returnType("handleResponseEntityParameterized")));
assertFalse(this.handler.supportsReturnType(returnType("handleRawResponseEntity")));
}
@Test
@ -229,6 +230,10 @@ public class ResponseBodyEmitterReturnValueHandlerTests { @@ -229,6 +230,10 @@ public class ResponseBodyEmitterReturnValueHandlerTests {
return null;
}
private ResponseEntity handleRawResponseEntity() {
return null;
}
}
private static class SimpleBean {

Loading…
Cancel
Save