mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-17 08:24:13 +00:00
Merge branch '7.0.x'
This commit is contained in:
+5
-2
@@ -115,8 +115,11 @@ final class DefaultAsyncServerResponse extends ErrorHandlingServerResponse imple
|
||||
throws ServletException, IOException {
|
||||
|
||||
WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request);
|
||||
AsyncWebRequest asyncWebRequest = WebAsyncUtils.createAsyncWebRequest(request, response);
|
||||
asyncManager.setAsyncWebRequest(asyncWebRequest);
|
||||
AsyncWebRequest asyncWebRequest = asyncManager.getAsyncWebRequest();
|
||||
if (asyncWebRequest == null) {
|
||||
asyncWebRequest = WebAsyncUtils.createAsyncWebRequest(request, response);
|
||||
asyncManager.setAsyncWebRequest(asyncWebRequest);
|
||||
}
|
||||
try {
|
||||
asyncManager.startDeferredResultProcessing(deferredResult);
|
||||
}
|
||||
|
||||
+28
@@ -18,15 +18,43 @@ package org.springframework.web.servlet.function;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
import jakarta.servlet.AsyncContext;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.web.context.request.async.AsyncWebRequest;
|
||||
import org.springframework.web.context.request.async.DeferredResult;
|
||||
import org.springframework.web.context.request.async.WebAsyncManager;
|
||||
import org.springframework.web.context.request.async.WebAsyncUtils;
|
||||
import org.springframework.web.testfixture.servlet.MockHttpServletRequest;
|
||||
import org.springframework.web.testfixture.servlet.MockHttpServletResponse;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link DefaultAsyncServerResponse}.
|
||||
* @author Arjen Poutsma
|
||||
*/
|
||||
class DefaultAsyncServerResponseTests {
|
||||
|
||||
@Test
|
||||
void writeAsyncReusesExistingAsyncWebRequestTimeout() throws Exception {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
|
||||
request.setAsyncSupported(true);
|
||||
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||
|
||||
AsyncWebRequest existingAsyncWebRequest = WebAsyncUtils.createAsyncWebRequest(request, response);
|
||||
existingAsyncWebRequest.setTimeout(1000L);
|
||||
WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request);
|
||||
asyncManager.setAsyncWebRequest(existingAsyncWebRequest);
|
||||
|
||||
DeferredResult<Object> deferredResult = new DeferredResult<>();
|
||||
DefaultAsyncServerResponse.writeAsync(request, response, deferredResult);
|
||||
|
||||
assertThat(asyncManager.getAsyncWebRequest()).isSameAs(existingAsyncWebRequest);
|
||||
AsyncContext asyncContext = request.getAsyncContext();
|
||||
assertThat(asyncContext.getTimeout()).isEqualTo(1000L);
|
||||
}
|
||||
|
||||
@Test
|
||||
void blockCompleted() {
|
||||
ServerResponse wrappee = ServerResponse.ok().build();
|
||||
|
||||
Reference in New Issue
Block a user