| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!DOCTYPE document [ |
| <!ENTITY project SYSTEM "project.xml"> |
| ]> |
| <?xml-stylesheet type="text/xsl" href="tomcat-docs.xsl"?> |
| <document url="changelog.html"> |
| |
| &project; |
| |
| <properties> |
| <title>Changelog</title> |
| <no-comments /> |
| </properties> |
| |
| <body> |
| <!-- |
| Subsection ordering: |
| General, Catalina, Coyote, Jasper, Cluster, WebSocket, Web applications, |
| Extras, Tribes, Other |
| |
| Item Ordering: |
| |
| Fixes having an issue number are sorted by their number, ascending. |
| |
| There is no ordering by add/update/fix. |
| |
| Other fixed issues are added to the end of the list, chronologically. |
| They eventually become mixed with the numbered issues. (I.e., numbered |
| issues to not "pop up" wrt. others). |
| --> |
| <section name="Tomcat 8.0.8 (markt)"> |
| <subsection name="Catalina"> |
| <changelog> |
| <fix> |
| <bug>56536</bug>: Ensure that |
| <code>HttpSessionBindingListener.valueUnbound()</code> uses the correct |
| class loader when the <code>SingleSignOn</code> valve is used. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Jasper"> |
| <changelog> |
| <fix> |
| <bug>56529</bug>: Avoid <code>NoSuchElementException</code> while handling |
| attributes with empty string value in custom tags. Patch provided by |
| Hariprasad Manchi. (violetagg) |
| </fix> |
| </changelog> |
| </subsection> |
| </section> |
| <section name="Tomcat 8.0.7 (markt)" rtext="not released"> |
| <subsection name="Catalina"> |
| <changelog> |
| <fix> |
| <bug>56523</bug>: When using SPNEGO authentication, log the exceptions |
| associated with failed user logins at debug level rather than error |
| level. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Coyote"> |
| <changelog> |
| <add> |
| <bug>56399</bug>: Assert that both Coyote and Catalina request objects |
| have been properly recycled. (kkolinko) |
| </add> |
| </changelog> |
| </subsection> |
| <subsection name="Jasper"> |
| <changelog> |
| <fix> |
| <bug>56522</bug>: When setting a value for a |
| <code>ValueExpression</code>, ensure that the expected coercions take |
| place such as a <code>null</code> string being coerced to an empty |
| string. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Other"> |
| <changelog> |
| <fix> |
| Copy missing resources file from Apache Commons DBCP 2 to packaged |
| renamed copy of DBCP 2. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| </section> |
| <section name="Tomcat 8.0.6 (markt)" rtext="not released"> |
| <subsection name="Catalina"> |
| <changelog> |
| <fix> |
| Fix extension validation which was broken by refactoring for new |
| resources implementation. (markt) |
| </fix> |
| <fix> |
| Fix custom UTF-8 decoder so that a byte of value 0xC1 is always rejected |
| immediately as it is never valid in a UTF-8 byte sequence. Update UTF-8 |
| decoder tests to account for UTF-8 decoding improvements in Java 8. |
| The custom UTF-8 decoder is still required due to bugs in the UTF-8 |
| decoder provided by Java. Java 8's decoder is better than Java |
| 7's but it is still buggy. (markt) |
| </fix> |
| <fix> |
| <bug>56027</bug>: Add more options for managing FIPS mode in the |
| AprLifecycleListener. (schultz/kkolinko) |
| </fix> |
| <fix> |
| <bug>56320</bug>: Fix a file descriptor leak in the default servlet when |
| sendfile is used. (markt) |
| </fix> |
| <fix> |
| <bug>56321</bug>: When a WAR is modified, undeploy the web application |
| before deleting any expanded directory as the undeploy process may |
| refer to classes that need to be loaded from the expanded directory. If |
| the expanded directory is deleted first, any attempt to load a new class |
| during undeploy will fail. (markt) |
| </fix> |
| <fix> |
| <bug>56327</bug>: Enable AJP as well as HTTP connectors to be created |
| via JMX. Patch by kiran. (markt) |
| </fix> |
| <fix> |
| <bug>56339</bug>: Avoid an infinite loop if an application calls |
| <code>session.invalidate()</code> from the session destroyed event for |
| that session. (markt) |
| </fix> |
| <scode> |
| <bug>56365</bug>: Simplify file name pattern matching code in |
| <code>StandardJarScanner</code>. Improve documentation. (kkolinko) |
| </scode> |
| <fix> |
| Ensure that the static resource cache is able to detect when a cache |
| entry is invalidated by being overridden by a new resource in a |
| different <code>WebResourceSet</code>. (markt) |
| </fix> |
| <fix> |
| <bug>56369</bug>: Ensure that removing an MBean notification listener |
| reverts all the operations performed when adding an MBean notification |
| listener. (markt) |
| </fix> |
| <scode> |
| Improve implementation of <code>Lifecycle</code> for |
| <code>WebappClassLoader</code>. State is now correctly reported rather |
| than always reporting as <code>NEW</code>. (markt) |
| </scode> |
| <add> |
| <bug>56382</bug>: Information about finished deployment and its execution |
| time is added to the log files. Patch is provided by Danila Galimov. |
| (violetagg) |
| </add> |
| <add> |
| <bug>56383</bug>: Properties for disabling server information and error |
| report are added to the <code>org.apache.catalina.valves.ErrorReportValve</code>. |
| Based on the patch provided by Nick Bunn. (violetagg/kkolinko) |
| </add> |
| <fix> |
| <bug>56390</bug>: Fix JAR locking issue with JARs containing TLDs and |
| the TLD cache that prevented the undeployment of web applications when |
| the WAR was deleted. (markt) |
| </fix> |
| <fix> |
| Only create XML parsing objects if required and fix associated potential |
| memory leak in the default Servlet. (markt) |
| </fix> |
| <fix> |
| Modify generic exception handling so that |
| <code>StackOverflowError</code> is not treated as a fatal error and can |
| handled and/or logged as required. (markt) |
| </fix> |
| <fix> |
| <bug>56409</bug>: Avoid <code>StackOverflowError</code> on non-Windows |
| systems if a file named <code>\</code> is encountered when scanning for |
| TLDs. (markt) |
| </fix> |
| <add> |
| <bug>56430</bug>: Extend checks for suspicious URL patterns to include |
| patterns of the form <code>*.a.b</code> which are not valid patterns for |
| extension mappings. (markt) |
| </add> |
| <add> |
| Extend XML factory, parser etc. memory leak protection to cover some |
| additional locations where, theoretically, a memory leak could occur. |
| (markt) |
| </add> |
| <fix> |
| <bug>56441</bug>: Raise the visibility of exceptions thrown when a |
| problem is encountered calling a getter or setter on a component |
| attribute. The logging level is raised from debug to warning. (markt) |
| </fix> |
| <add> |
| <bug>56463</bug>: Property for disabling server information is added to |
| the <code>DefaultServlet</code>. Server information is presented in the |
| response sent to the client when directory listings is enabled. |
| (violetagg) |
| </add> |
| <fix> |
| <bug>56472</bug>: Allow NamingContextListener to clean up on stop if its |
| start failed. (kkolinko) |
| </fix> |
| <fix> |
| <bug>56481</bug>: Work around case insensitivity issue in |
| <code>URLClassLoader</code> exposed by some recent refactoring. (markt) |
| </fix> |
| <add> |
| <bug>56492</bug>: Avoid eclipse debugger pausing on uncaught exceptions |
| when tomcat renews its threads. (slaurent) |
| </add> |
| <add> |
| Add the <code>org.apache.naming</code> package to the packages requiring |
| code to have the <code>defineClassInPackage</code> permission when |
| running under a security manager. (markt) |
| </add> |
| <fix> |
| Make the naming context tokens for containers more robust by using a |
| separate object. Require RuntimePermission when introducing a new token. |
| (markt/kkolinko) |
| </fix> |
| <fix> |
| <bug>56501</bug>: <code>HttpServletRequest.getContextPath()</code> |
| should return the undecoded context path used by the user agent. (markt) |
| </fix> |
| <fix> |
| Minor fixes to <code>ThreadLocalLeakPreventionListener</code>. Do not |
| trigger threads renewal for failed contexts. Do not ignore |
| <code>threadRenewalDelay</code> setting. Improve documentation. (kkolinko) |
| </fix> |
| <fix> |
| Correct regression introduced in <rev>1239520</rev> that broke loading |
| of users from <code>tomcat-users.xml</code> when using the |
| <code>JAASMemoryLoginModule</code>. (markt) |
| </fix> |
| <fix> |
| Correct regression introduced in <rev>797162</rev> that broke |
| authentication of users when using the |
| <code>JAASMemoryLoginModule</code>. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Coyote"> |
| <changelog> |
| <fix> |
| More cleanup of NIO2 endpoint shutdown. (remm) |
| </fix> |
| <fix> |
| <bug>56336</bug>: AJP output corruption and errors. (remm) |
| </fix> |
| <fix> |
| Handle various cases of incomplete writes in NIO2. (remm) |
| </fix> |
| <scode> |
| Code cleanups and i18n in NIO2. (remm) |
| </scode> |
| <fix> |
| Fix extra onDataAvailable calls in the NIO2 connector. (remm) |
| </fix> |
| <fix> |
| Fix gather writes in NIO2 SSL. (remm) |
| </fix> |
| <scode> |
| Upgrade the NIO2 connectors to beta, but still not ready for production. (remm) |
| </scode> |
| <scode> |
| Fix code duplication between NIO and NIO2. (remm) |
| </scode> |
| <fix> |
| <bug>56348</bug>: Fix slow asynchronous read when read was performed on |
| a non-container thread. (markt) |
| </fix> |
| <fix> |
| <bug>56416</bug>: Correct documentation for default value of socket |
| linger for the AJP and HTTP connectors. (markt) |
| </fix> |
| <fix> |
| Fix possible corruption if doing keepalive after a comet request. (remm) |
| </fix> |
| <fix> |
| <bug>56518</bug>: Fix connection limit latch leak when a non-container |
| thread is interrupted during asynchronous processing. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Jasper"> |
| <changelog> |
| <fix> |
| <bug>56334</bug>: Fix a regression in the handling of back-slash |
| escaping introduced by the fix for <bug>55735</bug>. (markt/kkolinko) |
| </fix> |
| <fix> |
| <bug>56425</bug>: Improve method matching for EL expressions. When |
| looking for matching methods, an exact match between parameter types is |
| preferred followed by an assignable match followed by a coercible match. |
| (markt) |
| </fix> |
| <fix> |
| Correct the handling of back-slash escaping in the EL parser and no |
| longer require that <code>\$</code> or <code>\#</code> must be followed |
| by <code>{</code> in order for the back-slash escaping to take effect. |
| (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Cluster"> |
| <changelog> |
| <scode> |
| Remove the implementation of |
| <code>org.apache.catalina.LifecycleListener</code> from |
| <code>org.apache.catalina.ha.tcp.SimpleTcpCluster</code>. |
| <code>SimpleTcpCluster</code> does not work as |
| <code>LifecycleListener</code>, it works as nested components of Host or |
| Engine. (kfujino) |
| </scode> |
| <fix> |
| Remove cluster and replicationValve from cluster manager template. These |
| instance are not necessary to template. (kfujino) |
| </fix> |
| <fix> |
| Add support for cross context session replication to |
| <code>org.apache.catalina.ha.session.BackupManager</code>. (kfujino) |
| </fix> |
| <fix> |
| Remove the unnecessary cross context check. It does not matter whether |
| the context that is referenced by other context is set to |
| <code>crossContext</code>=true. The context that refers to the different |
| context must be set to <code>crossContext</code>=true. (kfujino) |
| </fix> |
| <scode> |
| Move to <code>org.apache.catalina.ha.session.ClusterManagerBase</code> |
| common logics of |
| <code>org.apache.catalina.ha.session.BackupManager</code> and |
| <code>org.apache.catalina.ha.session.DeltaManager</code>. (kfujino) |
| </scode> |
| <scode> |
| Simplify the code of <code>o.a.c.ha.tcp.SimpleTcpCluster</code>. In |
| order to add or remove cluster valve to Container, use pipeline instead |
| of <code>IntrospectionUtils</code>. (kfujino) |
| </scode> |
| <fix> |
| There is no need to set cluster instance when |
| <code>SimpleTcpCluster.unregisterClusterValve</code> is called. |
| Set null than cluster instance for cleanup. (kfujino) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="WebSocket"> |
| <changelog> |
| <fix> |
| <bug>56343</bug>: Avoid a NPE if Tomcat's Java WebSocket 1.0 |
| implementation is used with the Java WebSocket 1.0 API JAR from the |
| reference implementation. (markt) |
| </fix> |
| <fix> |
| Increase the default maximum size of the executor used by the WebSocket |
| implementation for call backs associated with asynchronous writes from |
| 10 to 200. (markt) |
| </fix> |
| <add> |
| Add a warning if the thread group created for WebSocket asynchronous |
| write call backs can not be destroyed when the web application is |
| stopped. (markt) |
| </add> |
| <fix> |
| Ensure that threads created to support WebSocket clients are stopped |
| when no longer required. This will happen automatically for WebSocket |
| client connections initiated by web applications but stand alone clients |
| must call <code>WsWebSocketContainer.destroy()</code>. (markt) |
| </fix> |
| <fix> |
| <bug>56449</bug>: When creating a new session, add the message handlers |
| to the session before calling <code>Endpoint.onOpen()</code> so the |
| message handlers are in place should the <code>onOpen()</code> method |
| trigger the sending of any messages. (markt) |
| </fix> |
| <fix> |
| <bug>56458</bug>: Report WebSocket sessions that are created over secure |
| connections as secure rather than as not secure. (markt) |
| </fix> |
| <fix> |
| Stop threads used for secure WebSocket client connections when they are |
| no longer required and give them better names for easier debugging while |
| they are running. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Web applications"> |
| <changelog> |
| <fix> |
| Add Support for <code>copyXML</code> attribute of Host to Host Manager. |
| (kfujino) |
| </fix> |
| <fix> |
| Ensure that "name" request parameter is used as a application base of |
| host if "webapps" request parameter is not set when adding host in |
| HostManager Application. (kfujino) |
| </fix> |
| <fix> |
| Correct documentation on Windows service options, aligning it with |
| Apache Commons Daemon documentation. (kkolinko) |
| </fix> |
| <fix> |
| <bug>56418</bug>: Ensure that the Manager web application does not |
| report success for a web application deployment that fails. (slaurent) |
| </fix> |
| <update> |
| Improve valves documentation. Split valves into groups. (kkolinko) |
| </update> |
| <fix> |
| <bug>56513</bug>: Make the documentation crystal clear that using |
| sendfile will disable any compression that Tomcat may otherwise have |
| applied to the response. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Other"> |
| <changelog> |
| <scode> |
| Review source code and take advantage of Java 7's |
| try-with-resources syntax where possible. (markt) |
| </scode> |
| <fix> |
| Align DisplayName of Tomcat installed by <code>service.bat</code> with |
| one installed by the *.exe installer. Print a warning in case if neither |
| server nor client jvm is found by <code>service.bat</code>. (kkolinko) |
| </fix> |
| <update> |
| <bug>56363</bug>: Update to version 1.1.30 of Tomcat Native library. |
| (schultz) |
| </update> |
| <update> |
| Update package renamed Apache Commons BCEL to r1593495 to pick up some |
| additional changes for Java 7 support and some code clean up. (markt) |
| </update> |
| <update> |
| Update package renamed Apache Commons FileUpload to r1569132 to pick up |
| some small improvements (e.g. better <code>null</code> protection) and |
| some code clean up. (markt) |
| </update> |
| <update> |
| Update package renamed Apache Commons Codec to r1586336 to pick up some |
| Javadoc fixes and some code clean up. (markt) |
| </update> |
| <scode> |
| Switch to including Apache Commons DBCP via a package renamed svn copy |
| rather than building from a source release for consistency with other |
| Commons packages and to allow faster releases to fix DBCP related |
| issues. (markt) |
| </scode> |
| <update> |
| Update package renamed Apache Commons Pool2 and DBCP2 to r1593563 to |
| pick various bug fixes. (markt) |
| </update> |
| <add> |
| In tests: allow to configure directory where JUnit reports and access |
| log are written to. (kkolinko) |
| </add> |
| </changelog> |
| </subsection> |
| </section> |
| <section name="Tomcat 8.0.5 (markt)" rtext="beta, 2014-03-27"> |
| <subsection name="Catalina"> |
| <changelog> |
| <fix> |
| Rework the fix for <bug>56190</bug> as the previous fix did not recycle |
| the request in all cases leading to mis-routing of requests. (markt) |
| </fix> |
| <fix> |
| Allow web applications to package tomcat-jdbc.jar and their JDBC driver |
| of choice in the web application. (markt) |
| </fix> |
| <fix> |
| <bug>56293</bug>: Cache resources loaded by the class loader from |
| <code>/META-INF/services/</code> for better performance for repeated |
| look ups. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Coyote"> |
| <changelog> |
| <fix> |
| Fix possibly incomplete final flush with NIO2 when using non blocking |
| mode. (remm) |
| </fix> |
| <fix> |
| Cleanup NIO2 endpoint shutdown. (remm) |
| </fix> |
| <fix> |
| Fix rare race condition notifying onWritePossible in the NIO2 |
| HTTP/1.1 connector. (remm) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Jasper"> |
| <changelog> |
| <fix> |
| <bug>54475</bug>: Add Java 8 support to SMAP generation for JSPs. Patch |
| by Robbie Gibson. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Web applications"> |
| <changelog> |
| <fix> |
| <bug>56273</bug>: If the Manager web application does not perform an |
| operation because the web application is already being serviced, report |
| an error rather than reporting success. (markt) |
| </fix> |
| <fix> |
| <bug>56304</bug>: Add a note to the documentation about not using |
| WebSocket with BIO HTTP in production. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| </section> |
| <section name="Tomcat 8.0.4 (markt)" rtext="not released"> |
| <subsection name="Catalina"> |
| <changelog> |
| <fix> |
| Restore the ability to use the <code>addURL()</code> method of the |
| web application class loader to add external resources to the web |
| application. (markt) |
| </fix> |
| <fix> |
| Improve the robustness of web application undeployment based on some |
| code analysis triggered by the report for <bug>54315</bug>. (markt) |
| </fix> |
| <fix> |
| <bug>56125</bug>: Correctly construct the URL for a resource that |
| represents the root of a JAR file. (markt) |
| </fix> |
| <fix> |
| Generate a valid root element for the effective web.xml for a web |
| application for all supported versions of web.xml. (markt) |
| </fix> |
| <add> |
| Make it easier for applications embedding and/or extending Tomcat to |
| modify the <code>javaseClassLoader</code> attribute of the |
| <code>WebappClassLoader</code>. (markt) |
| </add> |
| <fix> |
| Add missing support for <code><deny-uncovered-http-methods></code> |
| element when merging web.xml files. (markt) |
| </fix> |
| <fix> |
| Improve merging process for web.xml files to take account of the |
| elements and attributes supported by the Servlet version of the merged |
| file. (markt) |
| </fix> |
| <fix> |
| Avoid <code>NullPointerException</code> in resource cache when making an |
| invalid request for a resource outside of the web application. (markt) |
| </fix> |
| <fix> |
| Remove an unnecessary null check identified by FindBugs. (markt) |
| </fix> |
| <add> |
| In WebappClassLoader, when reporting threads that are still running |
| while web application is being stopped, print their stack traces to |
| the log. (kkolinko) |
| </add> |
| <fix> |
| <bug>56190</bug>: The response should be closed (i.e. no further output |
| is permitted) when a call to <code>AsyncContext.complete()</code> takes |
| effect. (markt) |
| </fix> |
| <fix> |
| <bug>56236</bug>: Enable Tomcat to work with alternative Servlet and |
| JSP API JARs that package the XML schemas in such as way as to require |
| a dependency on the JSP API before enabling validation for web.xml. |
| Tomcat has no such dependency. (markt) |
| </fix> |
| <fix> |
| <bug>56244</bug>: Fix MBeans descriptor for WebappClassLoader MBean. |
| (kkolinko) |
| </fix> |
| <add> |
| Add a work around for validating XML documents (often TLDs) that use |
| just the file name to refer to refer to the JavaEE schema on which they |
| are based. (markt) |
| </add> |
| <add> |
| Add methods of get the idle time from last client access time to |
| <code>org.apache.catalina.Session</code>. (kfujino) |
| </add> |
| <fix> |
| <bug>56246</bug>: Fix NullPointerException in MemoryRealm when |
| authenticating an unknown user. (markt) |
| </fix> |
| <fix> |
| <bug>56248</bug>: Allow the deployer to update an existing WAR file |
| without undeploying the existing application if the update flag is set. |
| This allows any existing custom context.xml for the application to be |
| retained. To update an application and remove any existing context.xml |
| simply undeploy the old version of the application before deploying the |
| new version. (markt) |
| </fix> |
| <fix> |
| <bug>56253</bug>: When listing resources that are provided by a JAR, fix |
| possible <code>StringIndexOutOfBoundsException</code>s. Add some unit |
| tests for this and similar scenarios and fix the additional issues those |
| unit tests identified. Based on a patch by Larry Isaacs. (markt) |
| </fix> |
| <fix> |
| Redefine the <code>globalXsltFile</code> initialisation parameter of the |
| DefaultServlet as relative to CATALINA_BASE/conf or CATALINA_HOME/conf. |
| Prevent user supplied XSLTs used by the DefaultServlet from defining |
| external entities. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Coyote"> |
| <changelog> |
| <fix> |
| In some circumstances asynchronous requests could time out too soon. |
| (markt) |
| </fix> |
| <fix> |
| <bug>56172</bug>: Avoid possible request corruption when using the AJP |
| NIO connector and a request is sent using more than one AJP message. |
| Patch provided by Amund Elstad. (markt) |
| </fix> |
| <add> |
| Add experimental NIO2 connector. Based on code developed by |
| Nabil Benothman. (remm) |
| </add> |
| <fix> |
| Improve processing of chuck size from chunked headers. Avoid overflow |
| and use a bit shift instead of a multiplication as it is marginally |
| faster. (markt/kkolinko) |
| </fix> |
| <fix> |
| Correct regression introduced in 8.0.0-RC2 as part of the Servlet 3.1 |
| non-blocking IO support that broke handling of requests with an explicit |
| content length of zero. (markt/kkolinko) |
| </fix> |
| <fix> |
| Fix possible overflow when parsing long values from a byte array. |
| (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Jasper"> |
| <changelog> |
| <fix> |
| Change the default compiler source and compiler target versions to 1.7 |
| since Tomcat 8 requires a minimum of Java 7. (markt) |
| </fix> |
| <fix> |
| <bug>56179</bug>: Fix parsing of EL expressions that contain unnecessary |
| parentheses. (markt) |
| </fix> |
| <fix> |
| <bug>56177</bug>: Handle dependency tracking for TLDs when using JspC |
| with a tag library JAR that is located outside of the web application. |
| (markt) |
| </fix> |
| <fix> |
| Remove an unnecessary null check identified by FindBugs. (markt) |
| </fix> |
| <fix> |
| <bug>56199</bug>: Restore validateXml option for JspC which determines |
| if web.xml will be parsed with a validating parser. (markt) |
| </fix> |
| <fix> |
| <bug>56223</bug>: Throw an <code>IllegalStateException</code> if a call |
| is made to <code>ServletContext.setInitParameter()</code> after the |
| ServletContext has been initialized. (markt) |
| </fix> |
| <fix> |
| <bug>56265</bug>: Do not escape values of dynamic tag attributes |
| containing EL expressions. (kkolinko) |
| </fix> |
| <fix> |
| Make the default compiler source and target versions for JSPs Java 7 |
| since Tomcat 8 requires Java 7 as a minimum. (markt) |
| </fix> |
| <update> |
| <bug>56283</bug>: Update to the Eclipse JDT Compiler P20140317-1600 |
| which adds support for Java 8 syntax to JSPs. Add support for value |
| "1.8" for the <code>compilerSourceVM</code> and |
| <code>compilerTargetVM</code> options. (markt) |
| </update> |
| </changelog> |
| </subsection> |
| <subsection name="WebSocket"> |
| <changelog> |
| <fix> |
| Avoid a possible deadlock when one thread is shutting down a connection |
| while another thread is trying to write to it. (markt) |
| </fix> |
| <fix> |
| Avoid NPE when flushing batched messages. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Web Applications"> |
| <changelog> |
| <add> |
| <bug>56093</bug>: Add the SSL Valve to the documentation web |
| application. (markt) |
| </add> |
| <fix> |
| <bug>56217</bug>: Improve readability by using left alignment for the |
| table cell containing the request information on the Manager application |
| status page. (markt) |
| </fix> |
| <fix> |
| Fixed <code>java.lang.NegativeArraySizeException</code> when using |
| "Expire sessions" command in the manager web application on a |
| context where the session timeout is disabled. (kfujino) |
| </fix> |
| <fix> |
| Add support for <code>LAST_ACCESS_AT_START</code> system property to |
| Manager web application. (kfujino) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Other"> |
| <changelog> |
| <fix> |
| <bug>56115</bug>: Expose the <code>httpusecaches</code> property of |
| Ant's <code>get</code> task as some users may need to change the |
| default. Based on a suggestion by Anthony. (markt) |
| </fix> |
| <fix> |
| <bug>56143</bug>: Improve <code>service.bat</code> so that it can be |
| launched from a non-UAC console. This includes using a single call to |
| <code>tomcat8.exe</code> to install the Windows service rather than |
| three calls, and using command line arguments instead of environment |
| variables to pass the settings. (markt/kkolinko) |
| </fix> |
| <scode> |
| Simplify Windows *.bat files: remove %OS% checks, as current java does |
| not run on ancient non-NT operating systems. (kkolinko) |
| </scode> |
| <fix> |
| Align options between <code>service.bat</code> and <code>exe</code> |
| Windows installer. For <code>service.bat</code> the changes are in |
| --Classpath, --DisplayName, --StartPath, --StopPath. For |
| <code>exe</code> installer the changes are in --JvmMs, --JvmMx options, |
| which are now 128 Mb and 256 Mb respectively instead of being empty. |
| Explicitly specify --LogPath path when uninstalling Windows service, |
| avoiding default value for that option. (kkolinko) |
| </fix> |
| <fix> |
| <bug>56137</bug>: Explicitly use NIO connector in SSL example in |
| server.xml so it doesn't break if APR is enabled. (markt) |
| </fix> |
| <fix> |
| <bug>56139</bug>: Avoid a web application class loader leak in some unit |
| tests when running on Windows. (markt) |
| </fix> |
| <fix> |
| Correct build script to avoid building JARs with empty packages. (markt) |
| </fix> |
| <add> |
| Allow to limit JUnit test run to a number of selected test case |
| methods. (kkolinko) |
| </add> |
| <update> |
| Update Commons Pool 2 to 2.2. (markt) |
| </update> |
| <update> |
| Update Commons DBCP 2 to the 2.0 release. (markt) |
| </update> |
| <fix> |
| <bug>56189</bug>: Remove used file cpappend.bat from the distribution. |
| (markt) |
| </fix> |
| <fix> |
| <bug>56204</bug>: Remove unnecessary dependency between tasks in the |
| build script. (markt) |
| </fix> |
| <fix> |
| Add definition of <code>org.apache.catalina.ant.FindLeaksTask</code>. |
| (kfujino) |
| </fix> |
| <fix> |
| Implement <code>org.apache.catalina.ant.VminfoTask</code>, |
| <code>org.apache.catalina.ant.ThreaddumpTask</code> and |
| <code>org.apache.catalina.ant.SslConnectorCiphersTask</code>. (kfujino) |
| </fix> |
| <add> |
| Add the option to the Apache Ant tasks to ignore the constraint of the |
| first line of the response message that must be "OK -" |
| (<code>ignoreResponseConstraint</code> in <code>AbstractCatalinaTask</code>). |
| Default is false. (kfujino) |
| </add> |
| </changelog> |
| </subsection> |
| </section> |
| <section name="Tomcat 8.0.3 (markt)" rtext="beta, 2014-02-11"> |
| <subsection name="Other"> |
| <changelog> |
| <fix> |
| Fix build of Apache Commons DBCP2 classes. (kkolinko) |
| </fix> |
| <update> |
| Update Commons DBCP 2 to snapshot 170 dated 07 Feb 2014. This enables |
| DBCP to work with a SecurityManager such that only DBCP needs to be |
| granted the necessary permissions to communicate with the database. |
| (markt) |
| </update> |
| </changelog> |
| </subsection> |
| </section> |
| <section name="Tomcat 8.0.2 (markt)" rtext="not released"> |
| <subsection name="Catalina"> |
| <changelog> |
| <fix> |
| <bug>56082</bug>: Fix a concurrency bug in JULI's LogManager |
| implementation. (markt) |
| </fix> |
| <fix> |
| <bug>56085</bug>: <code>ServletContext.getRealPath(String)</code> should |
| return <code>null</code> for invalid input rather than throwing an |
| <code>IllegalArgumentException</code>. (markt) |
| </fix> |
| <fix> |
| Fix WebDAV support that was broken by the refactoring for the new |
| resources implementation. (markt) |
| </fix> |
| <scode> |
| Simplify Catalina.initDirs(). (kkolinko) |
| </scode> |
| <fix> |
| <bug>56096</bug>: When the attribute <code>rmiBindAddress</code> of the |
| JMX Remote Lifecycle Listener is specified it's value will be used when |
| constructing the address of a JMX API connector server. Patch is |
| provided by Jim Talbut. (violetagg) |
| </fix> |
| <fix> |
| When environment entry with one and the same name is defined in the web |
| deployment descriptor and with annotation then the one specified in the |
| web deployment descriptor is with priority. (violetagg) |
| </fix> |
| <fix> |
| Fix passing the value of false for <code>xmlBlockExternal</code> option |
| of Context to Jasper, as the default was changed in 8.0.1. (kkolinko) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Coyote"> |
| <changelog> |
| <fix> |
| Enable non-blocking reads to take place on non-container threads. |
| (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Cluster"> |
| <changelog> |
| <scode> |
| Simplify the code of |
| <code>o.a.c.ha.tcp.SimpleTcpCluster.createManager(String)</code>. |
| Remove unnecessary class cast. (kfujino) |
| </scode> |
| </changelog> |
| </subsection> |
| <subsection name="Web applications"> |
| <changelog> |
| <fix> |
| In Manager web application improve handling of file upload errors. |
| Display a message instead of error 500 page. Simplify. (kkolinko) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Other"> |
| <changelog> |
| <fix> |
| <bug>56104</bug>: Correct the version number on the welcome page of the |
| Windows installer. (markt) |
| </fix> |
| <update> |
| Update Commons DBCP 2 to snapshot 168 dated 05 Feb 2014. (markt) |
| </update> |
| <fix> |
| Fix CVE-2014-0050, a denial of service with a malicious, malformed |
| Content-Type header and multipart request processing. Fixed by merging |
| latest code (r1565159) from Commons FileUpload. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| </section> |
| <section name="Tomcat 8.0.1 (markt)" rtext="beta, 2014-02-02"> |
| <subsection name="Catalina"> |
| <changelog> |
| <fix> |
| Change default value of <code>xmlBlockExternal</code> attribute of |
| Context. It is <code>true</code> now. (kkolinko) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Coyote"> |
| <changelog> |
| <fix> |
| Correct regression in the fix for <bug>55996</bug> that meant that |
| asynchronous requests might timeout too early. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Jasper"> |
| <changelog> |
| <fix> |
| Change default value of the <code>blockExternal</code> attribute of |
| JspC task. The default value is <code>true</code>. Add support for |
| <code>-no-blockExternal</code> switch when JspC is run as a |
| standalone application. (kkolinko) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="WebSocket"> |
| <changelog> |
| <fix> |
| Do not return an empty string for the |
| <code>Sec-WebSocket-Protocol</code> HTTP header when no sub-protocol has |
| been requested or no sub-protocol could be agreed as RFC6455 requires |
| that no <code>Sec-WebSocket-Protocol</code> header is returned in this |
| case. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| </section> |
| <section name="Tomcat 8.0.0 (markt)" rtext="not released"> |
| <subsection name="Catalina"> |
| <changelog> |
| <add> |
| Implement JSR 340 - Servlet 3.1. The JSR 340 implementation includes |
| contributions from Nick Williams and Jeremy Boynes. (markt) |
| </add> |
| <add> |
| Implement JSR 245 MR2 - JSP 2.3. (markt) |
| </add> |
| <add> |
| Implement JSR 341 - Unified Expression Language 3.0. (markt) |
| </add> |
| <add> |
| Implement JSR 356 - WebSockets. The JSR 356 implementation includes |
| contributions from Nick Williams, Rossen Stoyanchev and Niki Dokovski. |
| (markt) |
| </add> |
| <update> |
| <bug>46727</bug>: Refactor default servlet to make it easier to |
| sub-class to implement finer grained control of the file encoding. Based |
| on a patch by Fred Toth. (markt) |
| </update> |
| <add> |
| <bug>45995</bug>: Align Tomcat with Apache httpd and perform MIME type |
| mapping based on file extension in a case insensitive manner. (markt) |
| </add> |
| <scode> |
| Remove duplicate code that converted a Host's appBase attribute to |
| a canonical file. (markt) |
| </scode> |
| <scode> |
| <bug>51408</bug>: Replace calls to <code>Charset.defaultCharset()</code> |
| with an explicit reference to the ISO-8859-1 Charset. (markt) |
| </scode> |
| <scode> |
| Refactor initialization code to use a single, consistent approach to |
| determining the Catalina home (binary) and base (instance) directories. |
| The search order for home is <code>catalina.home</code> system property, |
| parent of current directory if boootstrap.jar is present and finally |
| current working directory. The search order for Catalina base is |
| <code>catalina.base</code> system property falling back to the value for |
| Catalina home. (markt) |
| </scode> |
| <update> |
| <bug>52092</bug>: JULI now uses the <code>OneLineFormatter</code> and |
| <code>AsyncFileHandler</code> by default. (markt) |
| </update> |
| <fix> |
| <bug>52558</bug>: Refactor <code>CometConnectionManagerValve</code> so |
| that it does not prevent the session from being serialized in when |
| running in a cluster. (markt) |
| </fix> |
| <fix> |
| <bug>52767</bug>: Remove reference to MySQL specific autoReconnect |
| property in <code>JDBCAccessLogValve</code>. (markt) |
| </fix> |
| <scode> |
| Make the Mapper type-safe. Hosts, Contexts and Wrappers are no |
| longer handled as plain objects, instead they keep their type. |
| Code using the Mapper doesn't need to cast objects returned by |
| the mapper. (rjung) |
| </scode> |
| <scode> |
| Move Manager, Loader and Resources from Container to Context since |
| Context is the only place they are used. The documentation already |
| states (and has done for some time) that Context is the only valid |
| location for these nested components. (markt) |
| </scode> |
| <scode> |
| Move the Mapper from the Connector to the Service since the Mapper is |
| identical for all Connectors of a given Service and it is common for |
| there to be multiple Connectors for a Service (http, https and ajp). |
| This means there is now only ever one Mapper per Service rather than |
| possibly multiple identically configured Mapper objects. (markt) |
| </scode> |
| <scode> |
| Remove the per Context Mapper objects and use the Mapper from the |
| Service. This removes the need to maintain two copies of the mappings |
| for Servlets and Filters. (markt) |
| </scode> |
| <add> |
| Implement a new Resources implementation that merges Aliases, |
| VirtualLoader, VirtualDirContext, JAR resources and external |
| repositories into a single framework rather than a separate one for each |
| feature. (markt) |
| </add> |
| <add> |
| URL rewrite valve, similar in functionality to mod_rewrite. (remm) |
| </add> |
| <add> |
| Port storeconfig functionality, which can persist to server.xml and |
| context.xml runtime container configuration changes. (remm) |
| </add> |
| <add> |
| <bug>54095</bug>: Add support to the Default Servlet for serving |
| gzipped versions of static resources directly from disk as an |
| alternative to Tomcat compressing them on each request. Patch by |
| Philippe Marschall. (markt) |
| </add> |
| <fix> |
| <bug>54708</bug>: Change the name of the working directory for the ROOT |
| application (located under $CATALINA_BASE/work by default) from _ to |
| ROOT. (markt) |
| </fix> |
| <add> |
| Change default configuration so that a change to the global web.xml file |
| will trigger a reload of all web applications. (markt) |
| </add> |
| <fix> |
| <bug>55101</bug>: Make BASIC authentication more tolerant of whitespace. |
| Patch provided by Brian Burch. (markt) |
| </fix> |
| <fix> |
| <bug>55166</bug>: Move JSP descriptor and tag library descriptor schemas |
| to servlet-api.jar to enable relative references between the schemas to |
| be correctly resolved. (markt) |
| </fix> |
| <scode> |
| Refactor the descriptor parsing code into a separate module that can be |
| used by both Catalina and Jasper. Includes patches provided by Jeremy |
| Boynes. (violetagg/markt) |
| </scode> |
| <scode> |
| <bug>55246</bug>: Move TLD scanning to a ServletContainerInitializer |
| provided by Jasper. Includes removal of TldConfig lifecycle listener and |
| associated Context properties. (jboynes) |
| </scode> |
| <add> |
| <bug>55317</bug>: Facilitate weaving by allowing ClassFileTransformer to |
| be added to WebppClassLoader. Patch by Nick Williams. (markt) |
| </add> |
| <fix> |
| <bug>55620</bug>: Enable Tomcat to start when either $CATALINA_HOME |
| and/or $CATALINA_BASE contains a comma character. Prevent Tomcat from |
| starting when $CATALINA_HOME and/or $CATALINA_BASE contains a semi-colon |
| on Windows. Prevent Tomcat from starting when $CATALINA_HOME and/or |
| $CATALINA_BASE contains a colon on Linux/FreeBSD/etc. (markt) |
| </fix> |
| <scode> |
| Initialize the JSP runtime in Jasper's initializer to avoid need for a |
| Jasper-specific lifecycle listener. <code>JasperListener</code> has been |
| removed. (jboynes) |
| </scode> |
| <fix> |
| Change ordering of elements of JMX objects names so components are |
| grouped more logically in JConsole. Generally, components are now |
| grouped by Host and then by Context. (markt) |
| </fix> |
| <add> |
| Context listener to allow better EE and framework integration. (remm) |
| </add> |
| </changelog> |
| </subsection> |
| <subsection name="Coyote"> |
| <changelog> |
| <add> |
| Experimental support for SPDY. Includes contributions from Sheldon Shao. |
| (costin) |
| </add> |
| <scode> |
| The default connector is now the Java NIO connector even when specifying |
| HTTP/1.1 as protocol (fhanik) |
| </scode> |
| <scode> |
| Update default value of pollerThreadCount for the NIO connector. The new |
| default value will never go above 2 regardless of available processors. |
| (fhanik) |
| </scode> |
| <fix> |
| <bug>54010</bug>: Remove some unnecessary code (duplicate calls to |
| configure the scheme as https for AJP requests originally received over |
| HTTPS). (markt) |
| </fix> |
| <scode> |
| Refactor char encoding/decoding using NIO APIs. (remm) |
| </scode> |
| <update> |
| Change the default URIEncoding for all connectors from ISO-8859-1 to |
| UTF-8. (markt) |
| </update> |
| </changelog> |
| </subsection> |
| <subsection name="Jasper"> |
| <changelog> |
| <scode> |
| Simplify API of <code>ErrorDispatcher</code> class by using varargs. |
| (kkolinko) |
| </scode> |
| <scode> |
| Update Jasper to use the new common web.xml parsing code. Includes |
| patches by Jeremy Boynes. (markt/violetagg) |
| </scode> |
| <add> |
| Create test cases for JspC. Patch by Jeremy Boynes. (markt) |
| </add> |
| <scode> |
| <bug>55246</bug>: TLD scanning is now performed by JasperInitializer |
| (a ServletContainerInitializer) removing the need for support within the |
| Servlet container itself. The scan is now performed only once rather than |
| in two passes reducing startup time. (jboynes) |
| </scode> |
| <fix> |
| <bug>55251</bug>: Do not allow JspC task to fail silently if the web.xml |
| or web.xml fragment can not be generated. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| <subsection name="Cluster"> |
| <changelog> |
| <scode> |
| Remove unused JvmRouteSessionIDBinderListener and SessionIDMessage. |
| (kfujino) |
| </scode> |
| <scode> |
| Modify method signature in ReplicationValve. Cluster instance is not |
| necessary to argument of method. (kfujino) |
| </scode> |
| <scode> |
| Remove unused <code>expireSessionsOnShutdown</code> attribute in |
| <code>org.apache.catalina.ha.session.BackupManager</code>. (kfujino) |
| </scode> |
| </changelog> |
| </subsection> |
| <subsection name="Web applications"> |
| <changelog> |
| <add> |
| Extend the diagnostic information provided by the Manager web |
| application to include details of the configured SSL ciphers suites for |
| each connector. (markt) |
| </add> |
| <update> |
| <bug>48550</bug>: Update examples web application to use UTF-8. (markt) |
| </update> |
| <update> |
| <bug>55383</bug>: Improve the design and correct the HTML markup of |
| the documentation web application. Patches provided by Konstantin |
| Preißer. (markt) |
| </update> |
| </changelog> |
| </subsection> |
| <subsection name="Tribes"> |
| <changelog> |
| <scode> |
| Refactor <code>AbstractReplicatedMap</code> to use generics. A key |
| side-effect of this is that the class now implements |
| <code>Map<K,V></code> rather than extends |
| <code>ConcurrentMap</code>. (markt) |
| </scode> |
| </changelog> |
| </subsection> |
| <subsection name="Other"> |
| <changelog> |
| <scode> |
| Remove unused, deprecated code. (markt) |
| </scode> |
| <scode> |
| Remove static info String and associated getInfo() method where present. |
| (markt) |
| </scode> |
| <update> |
| (<rev>1353242</rev>, <rev>1353410</rev>): |
| Remove Ant tasks <code>jasper2</code> and <code>jkstatus</code>. |
| The correct names are <code>jasper</code> and <code>jkupdate</code>. |
| (kkolinko) |
| </update> |
| <fix> |
| <bug>53529</bug>: Clean-up the handling of |
| <code>InterruptedException</code> throughout the code base. (markt) |
| </fix> |
| <add> |
| <bug>54899</bug>: Provide an initial implementation of NetBeans support. |
| Patch provided by Brian Burch. (markt) |
| </add> |
| <fix> |
| <bug>55166</bug>: Move the JSP descriptor and tag library descriptor |
| schema defintion files from jsp-api.jar to servlet-api.jar so relative |
| includes between the J2EE, Servlet and JSP schemas are correctly |
| resolved. (markt) |
| </fix> |
| <fix> |
| <bug>55372</bug>: When starting Tomcat with the <code>jpda</code> option |
| to enable remote debugging, by default only listen on localhost for |
| connections from a debugger. Prior to this change, Tomcat listened on |
| all known addresses. (markt) |
| </fix> |
| </changelog> |
| </subsection> |
| </section> |
| </body> |
| </document> |