diff --git a/framework-platform/framework-platform.gradle b/framework-platform/framework-platform.gradle index 0e155f0a118..998c4918557 100644 --- a/framework-platform/framework-platform.gradle +++ b/framework-platform/framework-platform.gradle @@ -103,10 +103,10 @@ dependencies { api("org.apache.httpcomponents.client5:httpclient5:5.4.1") api("org.apache.httpcomponents.core5:httpcore5-reactive:5.3.1") api("org.apache.poi:poi-ooxml:5.2.5") - api("org.apache.tomcat.embed:tomcat-embed-core:10.1.28") - api("org.apache.tomcat.embed:tomcat-embed-websocket:10.1.28") - api("org.apache.tomcat:tomcat-util:10.1.28") - api("org.apache.tomcat:tomcat-websocket:10.1.28") + api("org.apache.tomcat.embed:tomcat-embed-core:11.0.1") + api("org.apache.tomcat.embed:tomcat-embed-websocket:11.0.1") + api("org.apache.tomcat:tomcat-util:11.0.1") + api("org.apache.tomcat:tomcat-websocket:11.0.1") api("org.aspectj:aspectjrt:1.9.22.1") api("org.aspectj:aspectjtools:1.9.22.1") api("org.aspectj:aspectjweaver:1.9.22.1") diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/TomcatHeadersAdapter.java b/spring-web/src/main/java/org/springframework/http/server/reactive/TomcatHeadersAdapter.java index ac49e0357f3..c921a747500 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/TomcatHeadersAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/TomcatHeadersAdapter.java @@ -161,10 +161,11 @@ class TomcatHeadersAdapter implements MultiValueMap { map.forEach(this::put); } - @SuppressWarnings("deprecation") // on Tomcat 10.1.16+ @Override public void clear() { - this.headers.clear(); + for (int i = 0 ; i < this.headers.size(); i++) { + this.headers.removeHeader(i); + } } @Override diff --git a/spring-web/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java b/spring-web/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java index 1cae7c7c96d..0b3643eafb5 100644 --- a/spring-web/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java +++ b/spring-web/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java @@ -141,7 +141,7 @@ class WebSessionIntegrationTests extends AbstractHttpHandlerIntegrationTests { assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); String value = response.getHeaders().getFirst("Set-Cookie"); assertThat(value).isNotNull(); - assertThat(value).as("Actual value: " + value).contains("Max-Age=0"); + assertThat(value).as("Actual value: " + value).containsAnyOf("Expires=Thu, 01 Jan 1970", "Max-Age=0"); } @ParameterizedHttpServerTest @@ -189,7 +189,7 @@ class WebSessionIntegrationTests extends AbstractHttpHandlerIntegrationTests { assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); String value = response.getHeaders().getFirst("Set-Cookie"); assertThat(value).isNotNull(); - assertThat(value).as("Actual value: " + value).contains("Max-Age=0"); + assertThat(value).as("Actual value: " + value).containsAnyOf("Expires=Thu, 01 Jan 1970", "Max-Age=0"); } private String extractSessionId(HttpHeaders headers) { diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java index ca52e7a255d..cfd0b5f8f36 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java @@ -93,7 +93,6 @@ class RequestMappingIntegrationTests extends AbstractRequestMappingIntegrationTe HttpHeaders headers = getRestTemplate().headForHeaders(url); String contentType = headers.getFirst("Content-Type"); assertThat(contentType).isNotNull(); - assertThat(headers.getContentLength()).isEqualTo(3); } @ParameterizedHttpServerTest