Skip to content

Commit 4b3e192

Browse files
committed
Upgrade to Tomcat 11.0
This commit upgrades the baseline to Tomcat 11.0 and adapts to the following behavior changes in Tomcat: * the MimeHeaders#clear method has been removed * expired cookies do not set "Max-Age=0" anymore * responses to HEAD requests do not write the "Content-Length" header anymore. Closes gh-33916
1 parent c28cbfd commit 4b3e192

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

Diff for: framework-platform/framework-platform.gradle

+4-4
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ dependencies {
103103
api("org.apache.httpcomponents.client5:httpclient5:5.4.1")
104104
api("org.apache.httpcomponents.core5:httpcore5-reactive:5.3.1")
105105
api("org.apache.poi:poi-ooxml:5.2.5")
106-
api("org.apache.tomcat.embed:tomcat-embed-core:10.1.28")
107-
api("org.apache.tomcat.embed:tomcat-embed-websocket:10.1.28")
108-
api("org.apache.tomcat:tomcat-util:10.1.28")
109-
api("org.apache.tomcat:tomcat-websocket:10.1.28")
106+
api("org.apache.tomcat.embed:tomcat-embed-core:11.0.1")
107+
api("org.apache.tomcat.embed:tomcat-embed-websocket:11.0.1")
108+
api("org.apache.tomcat:tomcat-util:11.0.1")
109+
api("org.apache.tomcat:tomcat-websocket:11.0.1")
110110
api("org.aspectj:aspectjrt:1.9.22.1")
111111
api("org.aspectj:aspectjtools:1.9.22.1")
112112
api("org.aspectj:aspectjweaver:1.9.22.1")

Diff for: spring-web/src/main/java/org/springframework/http/server/reactive/TomcatHeadersAdapter.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -161,10 +161,11 @@ public void putAll(Map<? extends String, ? extends List<String>> map) {
161161
map.forEach(this::put);
162162
}
163163

164-
@SuppressWarnings("deprecation") // on Tomcat 10.1.16+
165164
@Override
166165
public void clear() {
167-
this.headers.clear();
166+
for (int i = 0 ; i < this.headers.size(); i++) {
167+
this.headers.removeHeader(i);
168+
}
168169
}
169170

170171
@Override

Diff for: spring-web/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public void expiredSessionEnds(HttpServer httpServer) throws Exception {
141141
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
142142
String value = response.getHeaders().getFirst("Set-Cookie");
143143
assertThat(value).isNotNull();
144-
assertThat(value).as("Actual value: " + value).contains("Max-Age=0");
144+
assertThat(value).as("Actual value: " + value).containsAnyOf("Expires=Thu, 01 Jan 1970", "Max-Age=0");
145145
}
146146

147147
@ParameterizedHttpServerTest
@@ -189,7 +189,7 @@ public void invalidate(HttpServer httpServer) throws Exception {
189189
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
190190
String value = response.getHeaders().getFirst("Set-Cookie");
191191
assertThat(value).isNotNull();
192-
assertThat(value).as("Actual value: " + value).contains("Max-Age=0");
192+
assertThat(value).as("Actual value: " + value).containsAnyOf("Expires=Thu, 01 Jan 1970", "Max-Age=0");
193193
}
194194

195195
private String extractSessionId(HttpHeaders headers) {

Diff for: spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/RequestMappingIntegrationTests.java

-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ void httpHead(HttpServer httpServer) throws Exception {
9393
HttpHeaders headers = getRestTemplate().headForHeaders(url);
9494
String contentType = headers.getFirst("Content-Type");
9595
assertThat(contentType).isNotNull();
96-
assertThat(headers.getContentLength()).isEqualTo(3);
9796
}
9897

9998
@ParameterizedHttpServerTest

0 commit comments

Comments
 (0)