Skip to content

Commit fbe781b

Browse files
committed
Merge branch '6.1.x'
2 parents 3487646 + 152914a commit fbe781b

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

spring-web/src/main/java/org/springframework/web/context/request/async/WebAsyncManager.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ public final class WebAsyncManager {
7979

8080
private AsyncTaskExecutor taskExecutor = DEFAULT_TASK_EXECUTOR;
8181

82+
private boolean isMultipartRequestParsed;
83+
8284
@Nullable
8385
private volatile Object concurrentResult = RESULT_NONE;
8486

@@ -242,6 +244,24 @@ public void registerDeferredResultInterceptors(DeferredResultProcessingIntercept
242244
}
243245
}
244246

247+
/**
248+
* Mark the {@link WebAsyncManager} as wrapping a
249+
* multipart async request.
250+
* @since 6.1.12
251+
*/
252+
public void setMultipartRequestParsed(boolean isMultipart) {
253+
this.isMultipartRequestParsed = isMultipart;
254+
}
255+
256+
/**
257+
* Return {@code true} if this {@link WebAsyncManager} was previously marked
258+
* as wrapping a multipart async request, {@code false} otherwise.
259+
* @since 6.1.12
260+
*/
261+
public boolean isMultipartRequestParsed() {
262+
return this.isMultipartRequestParsed;
263+
}
264+
245265
/**
246266
* Clear {@linkplain #getConcurrentResult() concurrentResult} and
247267
* {@linkplain #getConcurrentResultContext() concurrentResultContext}.

spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,10 +1117,11 @@ protected void doDispatch(HttpServletRequest request, HttpServletResponse respon
11171117
if (mappedHandler != null) {
11181118
mappedHandler.applyAfterConcurrentHandlingStarted(processedRequest, response);
11191119
}
1120+
asyncManager.setMultipartRequestParsed(multipartRequestParsed);
11201121
}
11211122
else {
11221123
// Clean up any resources used by a multipart request.
1123-
if (multipartRequestParsed) {
1124+
if (multipartRequestParsed || asyncManager.isMultipartRequestParsed()) {
11241125
cleanupMultipart(processedRequest);
11251126
}
11261127
}

0 commit comments

Comments
 (0)