This release contains all of the changes up to and including those in
Apache Tomcat 11.0.1 plus the additional changes listed below. (markt)
The minimum Java version has been updated to Java 21. (markt)
Catalina
Add support for the new Servlet API method
HttpServletResponse.sendEarlyHints(). (markt)
Add special handling for the protocols attribute of
SSLHostConfig in storeconfig. (remm)
69442: Fix case sensitive check on content-type
when parsing request parameters. (remm)
Compatibility of generated embedded code with components where
constructors or property related methods throw a checked exception.
(remm)
The previous fix for incosistent resource metadata during concurrent
reads and writes was incomplete. (markt)
#780: Fix content-range header length. Submitted
by Justin Chen. (remm)
69444: Ensure that the
jakarta.servlet.error.message request attribute is set when
an application defined error page is called. (markt)
Avoid quotes for numeric values in the JSON generated by the status
servlet. (remm)
Add strong ETag support for the WebDAV and default servlet, which can
be enabled by using the useStrongETags init parameter with
a value set to true. The ETag generated will be a SHA-1
checksum of the resource content. (remm)
Use client locale for directory listings. (remm)
69439: Improve the handling of multiple
Cache-Control headers in the ExpiresFilter.
Based on pull request #777 by Chenjp. (markt)
69447: Update the support for caching classes the web
application class loader cannot find to take account of classes loaded
from external repositories. Prior to this fix, these classes could be
incorrectly marked as not found. (markt)
69466: Rework handling of HEAD requests. Headers explicitly
set by users will not be removed and any header present in a HEAD
request will also be present in the equivalent GET request. There may be
some headers, as per RFC 9110, section 9.3.2, that are present in a GET
request that are not present in the equivalent HEAD request. (markt)
69471: Log instances of CloseNowException caught
by ApplicationDispatcher.invoke() at debug level rather
than error level as they are very likely to have been caused by a client
disconnection or similar I/O issue. (markt)
Add a test case for the fix for 69442. Also refactor
references to application/x-www-form-urlencoded. Based on
pull request #779 by Chenjp. (markt)
Coyote
Change the default value of the cookiesWithoutEquals
attribute of the Rfc6265CookieProcessor from
name to ignore. (markt)
Remove default password value (was changeit) for the
certificateKeystorePassword attribute of a certificate.
(remm)
Jasper
Add support for the new Elvis operator (:?) in Jakarta
Expression language. (markt)
Extend the existing + operator in Jakarta Expression
Language to support mergin MapMap and SetSet
and concatenating Lists. (markt)
The defaults for compilerSourceVM and
compilerTargetVM have been updated to 21 to align with Java
21 being the minimum Java version required for Tomcat 12. (markt)
Web applications
Documentation. Remove references to the ResourceParams
element. Support for ResourceParams was removed in Tomcat
5.5.x. (markt)