diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandler.java index de081800bd..8d07222a17 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandler.java @@ -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; diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandlerTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandlerTests.java index 1d287f05b4..0ac243a5a4 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandlerTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitterReturnValueHandlerTests.java @@ -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 { return null; } + private ResponseEntity handleRawResponseEntity() { + return null; + } + } private static class SimpleBean {