@Override public MultipartHttpServletRequest resolveMultipart(HttpServletRequest request) throws MultipartException { Assert.notNull(request, "Request must not be null"); if (request instanceof RequestWrapper) { final RequestWrapper requestWrapper = (RequestWrapper) request; Exception multipartException = (Exception) request.getAttribute(IMultipartConfig.FILEUPLOAD_EXCEPTION); if (multipartException != null) { if (multipartException instanceof MaxUploadSizeExceededException) { throw (MaxUploadSizeExceededException) multipartException; } else { throw new MultipartException( "Could not parse multipart servlet request", multipartException); } } if (this.resolveLazily) { return new DefaultMultipartHttpServletRequest(requestWrapper) { @Override protected void initializeMultipart() { setMultipartFiles(getMultipartFileElements(requestWrapper.getFileElements())); setMultipartParameters(getMultipartTextElements(requestWrapper.getTextElements())); } }; } else { return new DefaultMultipartHttpServletRequest( request, getMultipartFileElements(requestWrapper.getFileElements()), getMultipartTextElements(requestWrapper.getTextElements())); } } else { // The normal behaviour return super.resolveMultipart(request); } }