From 5b47816183e4e9a0dc2ad5d2175065ac17539719 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 23 Apr 2014 14:36:14 +0200 Subject: [PATCH] DispatcherServlet skips multipart resolution if error page exception attribute indicates MultipartException as root cause Issue: SPR-11716 --- .../org/springframework/web/servlet/DispatcherServlet.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java index fdb07351cf3..d7fc620a584 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java @@ -904,7 +904,7 @@ public class DispatcherServlet extends FrameworkServlet { try { processedRequest = checkMultipart(request); - multipartRequestParsed = processedRequest != request; + multipartRequestParsed = (processedRequest != request); // Determine handler for the current request. mappedHandler = getHandler(processedRequest); @@ -1059,6 +1059,10 @@ public class DispatcherServlet extends FrameworkServlet { logger.debug("Request is already a MultipartHttpServletRequest - if not in a forward, " + "this typically results from an additional MultipartFilter in web.xml"); } + else if (request.getAttribute(WebUtils.ERROR_EXCEPTION_ATTRIBUTE) instanceof MultipartException) { + logger.debug("Multipart resolution failed for current request before - " + + "skipping re-resolution for undisturbed error rendering"); + } else { return this.multipartResolver.resolveMultipart(request); }