From 11cf978394bda237203f223c933d726c4391a84e Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Tue, 20 Nov 2012 15:12:58 -0500 Subject: [PATCH] Define behavior of null Callable or DeferredResult When a controller method declares Callable or DeferredResult as its return value, and returns null, async processing will not start and the request will be considered "handled" by the controller method. Issue: SPR-9951 --- .../mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java | 1 + .../mvc/method/annotation/CallableMethodReturnValueHandler.java | 1 + .../annotation/DeferredResultMethodReturnValueHandler.java | 1 + 3 files changed, 3 insertions(+) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java index d2a98220dd..3855fe388c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/AsyncTaskMethodReturnValueHandler.java @@ -49,6 +49,7 @@ public class AsyncTaskMethodReturnValueHandler implements HandlerMethodReturnVal NativeWebRequest webRequest) throws Exception { if (returnValue == null) { + mavContainer.setRequestHandled(true); return; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CallableMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CallableMethodReturnValueHandler.java index 5b6f04d36a..22471f7c3f 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CallableMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/CallableMethodReturnValueHandler.java @@ -42,6 +42,7 @@ public class CallableMethodReturnValueHandler implements HandlerMethodReturnValu NativeWebRequest webRequest) throws Exception { if (returnValue == null) { + mavContainer.setRequestHandled(true); return; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/DeferredResultMethodReturnValueHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/DeferredResultMethodReturnValueHandler.java index bda8ac8eb0..fbb7c8531a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/DeferredResultMethodReturnValueHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/DeferredResultMethodReturnValueHandler.java @@ -41,6 +41,7 @@ public class DeferredResultMethodReturnValueHandler implements HandlerMethodRetu NativeWebRequest webRequest) throws Exception { if (returnValue == null) { + mavContainer.setRequestHandled(true); return; }