Changelog

in development Tomcat 12.0.0-M1 (markt)

General

  • Code: 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)
  • Update: The minimum Java version has been updated to Java 21. (markt)

Catalina

  • Add: Add support for the new Servlet API method HttpServletResponse.sendEarlyHints(). (markt)
  • Fix: Add special handling for the protocols attribute of SSLHostConfig in storeconfig. (remm)
  • Fix: 69442: Fix case sensitive check on content-type when parsing request parameters. (remm)
  • Fix: Compatibility of generated embedded code with components where constructors or property related methods throw a checked exception. (remm)
  • Fix: The previous fix for incosistent resource metadata during concurrent reads and writes was incomplete. (markt)
  • Fix: #780: Fix content-range header length. Submitted by Justin Chen. (remm)
  • Fix: 69444: Ensure that the jakarta.servlet.error.message request attribute is set when an application defined error page is called. (markt)
  • Fix: Avoid quotes for numeric values in the JSON generated by the status servlet. (remm)
  • Add: 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)
  • Fix: Use client locale for directory listings. (remm)
  • Fix: 69439: Improve the handling of multiple Cache-Control headers in the ExpiresFilter. Based on pull request #777 by Chenjp. (markt)
  • Fix: 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)
  • Fix: 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)
  • Fix: 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: 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

  • Update: Change the default value of the cookiesWithoutEquals attribute of the Rfc6265CookieProcessor from name to ignore. (markt)
  • Update: Remove default password value (was changeit) for the certificateKeystorePassword attribute of a certificate. (remm)

Jasper

  • Add: Add support for the new Elvis operator (:?) in Jakarta Expression language. (markt)
  • Add: Extend the existing + operator in Jakarta Expression Language to support mergin MapMap and SetSet and concatenating Lists. (markt)
  • Update: 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

  • Fix: Documentation. Remove references to the ResourceParams element. Support for ResourceParams was removed in Tomcat 5.5.x. (markt)

Other

  • Update: Update Derby to 10.17.1.0. (markt)