The Apache Tomcat Servlet/JSP Container

Apache Tomcat 7

Version 7.0.70, Jun 15 2016
Apache Logo


User Guide


Apache Tomcat Development


Tomcat 7.0.70 (violetagg)
fix 59219: Ensure AsyncListener.onError() is called if an Exception is thrown during async processing. (markt)
fix 59220: Ensure that AsyncListener.onComplete() is called if the async request times out and the response is already committed. (markt)
fix 59261: ServletRequest.getAsyncContext() now throws an IllegalStateException as required by the Servlet specification if the request is not in asynchronous mode when called. (markt)
fix 59310: Do not add a Content-Length: 0 header for custom responses to HEAD requests that do not set a Content-Length value. (markt)
fix When normalizing paths, improve the handling when paths end with /. or /.. and ensure that input and output are consistent with respect to whether or not they end with /. (markt)
fix 59317: Ensure that HttpServletRequest.getRequestURI() returns an encoded URI rather than a decoded URI after a dispatch. (markt)
fix Ensure that the value for the header X-Frame-Options is constructed correctly according to the specification when ALLOW-FROM option is used. (violetagg)
add 59399: Add a new option to the Realm implementations that ship with Tomcat that allows the HTTP status code used for HTTP -> HTTPS redirects to be controlled per Realm. (markt)
fix 59449: In ContainerBase, ensure that the process to remove a child container is the reverse of the process to add one. Patch provided by Huxing Zhang. (markt)
fix RMI Target related memory leaks are avoidable which makes them an application bug that needs to be fixed rather than a JRE bug to work around. Therefore, start logging RMI Target related memory leaks on web application stop. Add an option that controls if the check for these leaks is made. Log a warning if running on Java 9 with this check enabled but without the command line option it requires. (markt)
fix Fix potential concurrency issue with web application class loader with concurrent reads and writes of the resource cache. (markt)
fix 59619: Within the web application class loader, always use path as the key for the resource cache to improve the hit ration. This also fixes a problem exposed by the fix for 56777 that enabled file based configuration resources to be loaded from the class path. (markt)
fix Fix error message when failed to register MBean. (kfujino)
fix 58970: Fix a connection counting bug in the NIO connector that meant some dropped connections were not removed from the current connection count. (markt)
fix 59289: Do not recycle upgrade processors in unexpected close situations. (remm)
fix Ensure that requests with HTTP method names that are not tokens (as required by RFC 7231) are rejected with a 400 response. (markt)
fix When an asynchronous request is processed by the AJP connector, ensure that request processing has fully completed before starting the next request. (markt)
fix If an async dispatch results in the completion of request processing, ensure that any remaining request body is swallowed before starting the processing of the next request else the remaining body may be read as the start of the next request leading to a 400 response. (markt)
fix Fix a memory leak in the expression language implementation that caused the class loader of the first web application to use expressions to be pinned in memory. (markt)
fix 59654: Enforce the requirements of section 7.3.1 of the JSP specification regarding the permitted locations for TLD files. Patch provided by Huxing Zhang. (markt)
fix Ensure that a client disconnection triggers the error handling for the associated WebSocket end point. (markt)
Web Applications
fix Correct a typo in SSL/TLS Configuration How-To. Issue reported via (violetagg)
fix 58891: Update the SSL how-to. Based on a suggestion by Alexander Kjäll. (markt)
fix Fix potential NPE that depends on the setting order of attributes of static member when using the static cluster. (kfujino)
add Add get/set method for the channel that is related to ChannelInterceptorBase. (kfujino)
fix As with the multicast cluster environment, in the static cluster environment, the local member inherits properties from the cluster receiver. (kfujino)
add Add get/set method for the channel that is related to each Channel services. (kfujino)
add Add name to channel in order to identify channels. In tomcat cluster environment, it is set the cluster name + "-Channel" as default value. (kfujino)
add Add the channel name to the thread which is invoked by channel services in order to identify the associated channel. (kfujino)
fix Ensure that clear the channel instance from channel services when stopping channel. (kfujino)
add Implement map state in the replication map. (kfujino)
fix Ensure that the ping is not executed during the start/stop of the replication map. (kfujino)
fix In ping processing in the replication map, send not the INIT message but the newly introduced PING message. (kfujino)
fix Fix a memory leak with the pool cleaner thread that retained a reference to the web application class loader for the first web application to use a connection pool. (markt)
update Update the packaged version of the Tomcat Native Library to 1.2.7 to pick up the Windows binaries that are based on OpenSSL 1.0.2h and APR 1.5.2. (violetagg/markt)
update Remove native code (Windows Service Wrapper, APR/native connector) support for Windows Itanium. (markt)
update Update the internal fork of Commons File Upload to r1743698 (1.3.1 plus additional fixes). (markt)
fix 58626: Add support for a new environment variable (USE_NOHUP) that causes nohup to be used when starting Tomcat. It is disabled by default except on HP-UX where it is enabled by default since it is required when starting Tomcat at boot on HP-UX. (markt)
Tomcat 7.0.69 (violetagg)released 2016-04-15
fix Fix the type of InstanceManager attribute of mbean definition of StandardContext. (kfujino)
add 58351: Make the server build date and server version number accessible via JMX. Patch provided by Huxing Zhang. (markt)
fix 59001: Correctly handle the case when Tomcat is installed on a path where one of the segments ends in an exclamation mark. (markt)
fix Expand the fix for 59001 to cover the special sequences used in Tomcat's custom jar:war: URLs. (markt)
fix 59043: Avoid warning while expiring sessions associated with a single sign on if HttpServletRequest.logout() is used. (markt)
fix 59054: Ensure that using the CrawlerSessionManagerValve in a distributed environment does not trigger an error when the Valve registers itself in the session. (markt)
add Log a warning message if a user tries to configure the default session timeout via the deprecated (and ignored) Manager.setMaxInactiveInterval() method. (markt)
fix Correct a regression introduced in 7.0.68 where the deprecated Manager.getMaxInactiveInterval() method returned the current default session timeout in minutes rather than seconds. (markt)
fix When a Host is configured with an appBase that does not exist, create the appBase before trying to expand an external WAR file into it. (markt)
fix 59115: When using the Servlet 3.0 file upload, the submitted file name may be provided as a token or a quoted-string. If a quoted-string, unquote the string before returning it to the user. (markt)
fix 59123: Close NamingEnumeration objects used by the JNDIRealm once they are no longer required. (fschumacher/markt)
fix 59138: Correct a false positive warning for ThreadLocal related memory leaks when the key class but not the value class has been loaded by the web application class loader. (markt)
fix 59145: Don't log an invalid warning when a user logs out of a session associated with SSO. (markt)

403 Forbidden