diff --git a/tomcat-uid/webapps/docs/changelog.html b/tomcat-uid/webapps/docs/changelog.html
index ddebb1f..38bb7ec 100644
--- a/tomcat-uid/webapps/docs/changelog.html
+++ b/tomcat-uid/webapps/docs/changelog.html
@@ -1,78 +1,4226 @@
-<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 6.0 (6.0.41) - Changelog</title><meta name="author" content="Remy Maucherat"><meta name="author" content="Yoav Shapira"><meta name="author" content="Filip Hanik"><meta name="author" content="Rainer Jung"><meta name="author" content="Peter Rossbach"><meta name="author" content="Konstantin Kolinko"><meta name="author" content="Jean-Frederic Clere"><meta name="author" content="Keiichi Fujino"><meta name="author" content="Mladen Turk"><meta name="author" content="Tim Whittington"><meta name="author" content="Sylvain Laurent"><meta name="author" content="Christopher Schultz"><style type="text/css" media="print">
-			.noPrint {display: none;}
-			td#mainBody {width: 100%;}
-		</style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="./images/tomcat.gif" align="right" alt="
+<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat 7 (7.0.77) - Changelog</title><meta name="author" content="Remy Maucherat"><meta name="author" content="Filip Hanik"><meta name="author" content="Rainer Jung"><meta name="author" content="Konstantin Kolinko"><meta name="author" content="Peter Rossbach"><meta name="author" content="Keiichi Fujino"><meta name="author" content="Tim Whittington"><meta name="author" content="Mladen Turk"><meta name="author" content="Christopher Schultz"><meta name="author" content="Sylvain Laurent"><meta name="author" content="Violeta Georgieva"><meta name="author" content="Jeremy Boynes"><meta name="author" content="Felix Schumacher"><style type="text/css" media="print">
+    .noPrint {display: none;}
+    td#mainBody {width: 100%;}
+</style><style type="text/css">
+code {background-color:rgb(224,255,255);padding:0 0.1em;}
+code.attributeName, code.propertyName {background-color:transparent;}
+
+
+table {
+  border-collapse: collapse;
+  text-align: left;
+}
+table *:not(table) {
+  /* Prevent border-collapsing for table child elements like <div> */
+  border-collapse: separate;
+}
+
+th {
+  text-align: left;
+}
+
+
+div.codeBox pre code, code.attributeName, code.propertyName, code.noHighlight, .noHighlight code {
+  background-color: transparent;
+}
+div.codeBox {
+  overflow: auto;
+  margin: 1em 0;
+}
+div.codeBox pre {
+  margin: 0;
+  padding: 4px;
+  border: 1px solid #999;
+  border-radius: 5px;
+  background-color: #eff8ff;
+  display: table; /* To prevent <pre>s from taking the complete available width. */
+  /*
+  When it is officially supported, use the following CSS instead of display: table
+  to prevent big <pre>s from exceeding the browser window:
+  max-width: available;
+  width: min-content;
+  */
+}
+
+div.codeBox pre.wrap {
+  white-space: pre-wrap;
+}
+
+
+table.defaultTable tr, table.detail-table tr {
+    border: 1px solid #CCC;
+}
+
+table.defaultTable tr:nth-child(even), table.detail-table tr:nth-child(even) {
+    background-color: #FAFBFF;
+}
+
+table.defaultTable tr:nth-child(odd), table.detail-table tr:nth-child(odd) {
+    background-color: #EEEFFF;
+}
+
+table.defaultTable th, table.detail-table th {
+  background-color: #88b;
+  color: #fff;
+}
+
+table.defaultTable th, table.defaultTable td, table.detail-table th, table.detail-table td {
+  padding: 5px 8px;
+}
+
+
+p.notice {
+    border: 1px solid rgb(255, 0, 0);
+    background-color: rgb(238, 238, 238);
+    color: rgb(0, 51, 102);
+    padding: 0.5em;
+    margin: 1em 2em 1em 1em;
+}
+</style></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="./images/tomcat.gif" align="right" alt="
       The Apache Tomcat Servlet/JSP Container
-    " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 6.0</font></h1><font face="arial,helvetica,sanserif">Version 6.0.41, May 19 2014</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="./images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap="nowrap" class="noPrint"><p><strong>Links</strong></p><ul><li><a href="index.html">Docs Home</a></li><li><a href="http://wiki.apache.org/tomcat/FAQ">FAQ</a></li></ul><p><strong>User Guide</strong></p><ul><li><a href="introduction.html">1) Introduction</a></li><li><a href="setup.html">2) Setup</a></li><li><a href="appdev/index.html">3) First webapp</a></li><li><a href="deployer-howto.html">4) Deployer</a></li><li><a href="manager-howto.html">5) Manager</a></li><li><a href="realm-howto.html">6) Realms and AAA</a></li><li><a href="security-manager-howto.html">7) Security Manager</a></li><li><a href="jndi-resources-howto.html">8) JNDI Resources</a></li><li><a href="jndi-datasource-examples-howto.html">9) JDBC DataSources</a></li><li><a href="class-loader-howto.html">10) Classloading</a></li><li><a href="jasper-howto.html">11) JSPs</a></li><li><a href="ssl-howto.html">12) SSL</a></li><li><a href="ssi-howto.html">13) SSI</a></li><li><a href="cgi-howto.html">14) CGI</a></li><li><a href="proxy-howto.html">15) Proxy Support</a></li><li><a href="mbeans-descriptor-howto.html">16) MBean Descriptor</a></li><li><a href="default-servlet.html">17) Default Servlet</a></li><li><a href="cluster-howto.html">18) Clustering</a></li><li><a href="balancer-howto.html">19) Load Balancer</a></li><li><a href="connectors.html">20) Connectors</a></li><li><a href="monitoring.html">21) Monitoring and Management</a></li><li><a href="logging.html">22) Logging</a></li><li><a href="apr.html">23) APR/Native</a></li><li><a href="virtual-hosting-howto.html">24) Virtual Hosting</a></li><li><a href="aio.html">25) Advanced IO</a></li><li><a href="extras.html">26) Additional Components</a></li><li><a href="maven-jars.html">27) Mavenized</a></li></ul><p><strong>Reference</strong></p><ul><li><a href="RELEASE-NOTES.txt">Release Notes</a></li><li><a href="config/index.html">Configuration</a></li><li><a href="api/index.html">Javadocs</a></li><li><a href="http://tomcat.apache.org/connectors-doc/">JK 1.2 Documentation</a></li></ul><p><strong>Apache Tomcat Development</strong></p><ul><li><a href="building.html">Building</a></li><li><a href="changelog.html">Changelog</a></li><li><a href="http://wiki.apache.org/tomcat/TomcatVersions">Status</a></li><li><a href="developers.html">Developers</a></li><li><a href="architecture/index.html">Architecture</a></li><li><a href="funcspecs/index.html">Functional Specs.</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Apache Tomcat 6.0</h1><h2>Changelog</h2><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.41"><!--()--></a><a name="Tomcat_6.0.41"><strong>Tomcat 6.0.41</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong></strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.41/Jasper"><!--()--></a><a name="Tomcat_6.0.41/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    " border="0"></a></td><td><h1><font face="arial,helvetica,sanserif">Apache Tomcat 7</font></h1><font face="arial,helvetica,sanserif">Version 7.0.77, Mar 28 2017</font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="./images/asf-logo.svg" align="right" alt="Apache Logo" border="0" style="width: 266px;height: 83px;"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><tr><!--LEFT SIDE NAVIGATION--><td width="20%" valign="top" nowrap class="noPrint"><p><strong>Links</strong></p><ul><li><a href="index.html">Docs Home</a></li><li><a href="http://wiki.apache.org/tomcat/FAQ">FAQ</a></li><li><a href="#comments_section">User Comments</a></li></ul><p><strong>User Guide</strong></p><ul><li><a href="introduction.html">1) Introduction</a></li><li><a href="setup.html">2) Setup</a></li><li><a href="appdev/index.html">3) First webapp</a></li><li><a href="deployer-howto.html">4) Deployer</a></li><li><a href="manager-howto.html">5) Manager</a></li><li><a href="realm-howto.html">6) Realms and AAA</a></li><li><a href="security-manager-howto.html">7) Security Manager</a></li><li><a href="jndi-resources-howto.html">8) JNDI Resources</a></li><li><a href="jndi-datasource-examples-howto.html">9) JDBC DataSources</a></li><li><a href="class-loader-howto.html">10) Classloading</a></li><li><a href="jasper-howto.html">11) JSPs</a></li><li><a href="ssl-howto.html">12) SSL/TLS</a></li><li><a href="ssi-howto.html">13) SSI</a></li><li><a href="cgi-howto.html">14) CGI</a></li><li><a href="proxy-howto.html">15) Proxy Support</a></li><li><a href="mbeans-descriptors-howto.html">16) MBeans Descriptors</a></li><li><a href="default-servlet.html">17) Default Servlet</a></li><li><a href="cluster-howto.html">18) Clustering</a></li><li><a href="balancer-howto.html">19) Load Balancer</a></li><li><a href="connectors.html">20) Connectors</a></li><li><a href="monitoring.html">21) Monitoring and Management</a></li><li><a href="logging.html">22) Logging</a></li><li><a href="apr.html">23) APR/Native</a></li><li><a href="virtual-hosting-howto.html">24) Virtual Hosting</a></li><li><a href="aio.html">25) Advanced IO</a></li><li><a href="extras.html">26) Additional Components</a></li><li><a href="maven-jars.html">27) Mavenized</a></li><li><a href="security-howto.html">28) Security Considerations</a></li><li><a href="windows-service-howto.html">29) Windows Service</a></li><li><a href="windows-auth-howto.html">30) Windows Authentication</a></li><li><a href="jdbc-pool.html">31) Tomcat's JDBC Pool</a></li><li><a href="web-socket-howto.html">32) WebSocket</a></li></ul><p><strong>Reference</strong></p><ul><li><a href="RELEASE-NOTES.txt">Release Notes</a></li><li><a href="config/index.html">Configuration</a></li><li><a href="api/index.html">Tomcat Javadocs</a></li><li><a href="servletapi/index.html">Servlet Javadocs</a></li><li><a href="jspapi/index.html">JSP 2.2 Javadocs</a></li><li><a href="elapi/index.html">EL 2.2 Javadocs</a></li><li><a href="websocketapi/index.html">WebSocket 1.1 Javadocs</a></li><li><a href="http://tomcat.apache.org/connectors-doc/">JK 1.2 Documentation</a></li></ul><p><strong>Apache Tomcat Development</strong></p><ul><li><a href="building.html">Building</a></li><li><a href="changelog.html">Changelog</a></li><li><a href="http://wiki.apache.org/tomcat/TomcatVersions">Status</a></li><li><a href="developers.html">Developers</a></li><li><a href="architecture/index.html">Architecture</a></li><li><a href="funcspecs/index.html">Functional Specs.</a></li><li><a href="tribes/introduction.html">Tribes</a></li></ul></td><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left" id="mainBody"><h1>Changelog</h1><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.77 (violetagg)"><!--()--></a><a name="Tomcat_7.0.77_(violetagg)"><strong>Tomcat 7.0.77 (violetagg)</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.77 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.77_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54618">54618</a>: Add support to the
+        <code>HttpHeaderSecurityFilter</code> for the HSTS preload parameter.
+        (markt)
+      </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56529">56529</a>: Avoid <code>NoSuchElementException</code> while handling
-        attributes with empty string value in custom tags. Based on a patch
-        provided by Hariprasad Manchi. (violetagg/kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60911">60911</a>: Ensure NPE will not be thrown when looking for SSL
+        session ID. Based on a patch by Didier Gutacker. (violetagg)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.40"><!--()--></a><a name="Tomcat_6.0.40"><strong>Tomcat 6.0.40</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.40/Catalina"><!--()--></a><a name="Tomcat_6.0.40/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.77 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.77_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56027">56027</a>: Add more options for managing FIPS mode in the
-        AprLifecycleListener. (schultz/kkolinko)
+        When using the NIO2 connector, ensure a WebSocket close frame is
+        processed before the end of stream is processed to ensure that the end
+        of stream is processed correctly. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56082">56082</a>: Fix a concurrency bug in JULI's LogManager
-        implementation. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60852">60852</a>: Correctly spell compressible when used in
+        configuration attributes and internal code. Based on a patch by Michael
+        Osipov. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56236">56236</a>: 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)
+        Improve sendfile handling when requests are pipelined. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.77 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.77_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the error handling for simple tags to ensure that the tag is
+        released and destroyed once used. (remm, violetagg)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Change the default value of the <code>xmlBlockExternal</code> attribute
-        of Context elements. It is now <code>true</code>. (kkolinko) 
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60844">60844</a>: Correctly handle the error when fewer parameter values
+        than required by the method are used to invoke an EL method expression.
+        Patch provided by Daniel Gray. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.77 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.77_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60764">60764</a>: Implement <code>equals()</code> and
+        <code>hashCode()</code> in the <code>StatementFacade</code> in order to
+        enable these methods to be called on the closed statements if any
+        statement proxy is set. This behavior can be changed with
+        <code>useStatementFacade</code> attribute. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.76 (markt)"><!--()--></a><a name="Tomcat_7.0.76_(markt)"><strong>Tomcat 7.0.76 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2017-03-16</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.76 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.76_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Make it easier for sub-classes of <code>Tomcat</code> to modify the
+        default web.xml settings by over-riding
+        <code>getDefaultWebXmlListener()</code>. Patch provided by Aaron
+        Anderson. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Don't log to standard out in SSLValve. (kkolinko/markt)
+        Reduce the contention in the default <code>InstanceManager</code>
+        implementation when multiple threads are managing objects and need to
+        reference the annotation cache. (markt)
       </td></tr>
       <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
-        Use StringBuilder in DefaultServlet. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60674">60674</a>: Remove <code>final</code> marker from
+        <code>CorsFilter</code> to enable sub-classing. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56275">56275</a>: Allow web applications to be stopped cleanly even if
-        filters throw exceptions when their destroy() method is called.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60683">60683</a>: Security manager failure causing NPEs when doing IO
+        on some JVMs. (csutherl)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60688">60688</a>: Update the internal fork of Apache Commons BCEL to
+        r1782855 to add early access Java 9 support to the annotation scanning
+        code. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60718">60718</a>: Improve error handling for asynchronous processing and
+        correct a number of cases where the <code>requestDestroyed()</code>
+        event was not being fired and an entry wasn't being made in the access
+        logs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60808">60808</a>: Ensure that the <code>Map</code> returned by
+        <code>ServletRequest.getParameterMap()</code> is fully immutable. Based
+        on a patch provided by woosan. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60824">60824</a>: Correctly cache the <code>Subject</code> in the
+        session - if there is a session - when running under a
+        <code>SecurityManager</code>. Patch provided by Jan Engehausen. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure request and response facades are used when firing application
+        listeners. (markt/remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When HTTP TRACE requests are disabled on the Connector, ensure that the
+        HTTP OPTIONS response from the WebDAV servlet does not include
+        TRACE in the returned Allow header. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.76 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.76_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that executor thread pools used with connectors pre-start the
+        configured minimum number of idle threads. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60594">60594</a>: Allow some invalid characters that were recently
+        restricted to be processed in requests by using the system property
+        <code>tomcat.util.http.parser.HttpParser.requestTargetAllow</code>.
+        (csutherl)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.76 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.76_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Refactor code generated for JSPs to reduce the size of the code required
+        for tags. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.76 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.76_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make the <code>accessTimeout</code> configurable in
+        <code>ClusterSingleSignOn</code>. The <code>accessTimeout</code> is used
+        as a timeout period for PING in replication map. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60806">60806</a>: To avoid <code>ClassNotFoundException</code>, make
+        sure that the web application class loader is passed to
+        <code>ReplicatedContext</code>. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.76 (markt)/WebSocket"><!--()--></a><a name="Tomcat_7.0.76_(markt)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60617">60617</a>: Correctly create a <code>CONNECT</code> request when
+        establishing a WebSocket connection via a proxy. Patch provided by
+        Svetlin Zarev. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.76 (markt)/Tribes"><!--()--></a><a name="Tomcat_7.0.76_(markt)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that <code>NoRpcChannelReply</code> messages are not received on
+        <code>RpcCallback</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60722">60722</a>: Take account of the
+        <strong>dispatchersUseEncodedPaths</strong> setting on the current
+        <strong>Context</strong> when generating paths for dispatches triggered
+        by <code>AsyncContext.dispatch()</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.76 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.76_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60620">60620</a>: Fix configuration of Eclipse projects, broken by
+        introduction of <code>SafeForkJoinWorkerThreadFactory</code> helper
+        class. This class cannot be built with Java 6. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the packaged version of the Tomcat Native Library to 1.2.12 to
+        pick up the latest Windows binaries built with OpenSSL 1.0.2k. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60784">60784</a>: Update all unit tests that test the HTTP status line
+        to check for the required space after the status code. Patch provided by
+        Michael Osipov. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the NSIS Installer used to build the Windows installer to version
+        3.01. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Refactor the build script and the NSIS installer script so that either
+        NSIS 2.x or NSIS 3.x can be used to build the installer. This is
+        primarily to re-enable building the installer on the Linux based CI
+        system where the combination of NSIS 3.x and wine leads to failed
+        installer builds. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.75 (violetagg)"><!--()--></a><a name="Tomcat_7.0.75_(violetagg)"><strong>Tomcat 7.0.75 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2017-01-24</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.75 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.75_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make the <code>accessTimeout</code> configurable in
+        <code>BackupManager</code>. The <code>accessTimeout</code> is used as a
+        timeout period for PING in replication map. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.75 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.75_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure the ASF logo image is correctly displayed in docs and
+        host-manager applications. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)"><strong>Tomcat 7.0.74 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53602">53602</a>: Add HTTP status code 451 (RFC 7725) to the list of
+        HTTP status codes recognised by Tomcat. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly handle the <code>configClass</code> attribute of a Host when
+        embedding Tomcat. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60379">60379</a>: Dispose of the GSS credential once it is no longer
+        required. Patch provided by Michael Osipov. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60380">60380</a>: Ensure that a call to
+        <code>HttpServletRequest#logout()</code> triggers a call to
+        <code>TomcatPrincipal#logout()</code>. Based on a patch by Michael
+        Osipov. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60387">60387</a>: Correct the javadoc for
+        <code>o.a.catalina.AccessLog.setRequestAttributesEnabled</code>.
+        The default value is different for the different implementations.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60393">60393</a>: Use consistent parameter naming in implementations of
+        <code>Realm#authenticate(GSSContext, boolean)</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60395">60395</a>: Log when an <code>Authenticator</code> passes an
+        incomplete <code>GSSContext</code> to a Realm since it indicates a bug
+        in the <code>Authenticator</code>. Patch provided by Michael Osipov.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the warnings that reference required options for running on Java
+        9 to use the latest syntax for those options. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60513">60513</a>: Fix thread safety issue with RMI cleanup code. (remm)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60620">60620</a>:
+        Extend the <code>JreMemoryLeakPreventionListener</code> to provide
+        protection against <code>ForkJoinPool.commonPool()</code> related memory
+        leaks. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the endpoint is able to unlock the acceptor thread during
+        shutdown if the endpoint is configured to listen to any local address
+        of a specific type such as <code>0.0.0.0</code> or <code>::</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure sendfile is enabled by default for APR. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent read time out when the file is deleted while serving the
+        response. The issue was observed only with APR Connector and
+        sendfile enabled. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the logic that selects an address to use to unlock the Acceptor
+        to take account of platforms what do not listen on all local addresses
+        when configured with an address of <code>0.0.0.0</code> or
+        <code>::</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60409">60409</a>: When unable to complete sendfile request, ensure the
+        Processor will be added to the cache only once. (markt/violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=44294">44294</a>: Add support for varargs in UEL expressions. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60356">60356</a>: Fix pre-compilation of JSPs that depend on nested tag
+        files packaged in a JAR. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60431">60431</a>: Improve handling of varargs in UEL expressions. Based
+        on a patch by Ben Wolfe. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60497">60497</a>: Restore previous tag reuse behavior following the use
+        of try/finally. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the error handling for simple tags to ensure that the tag is
+        released and destroyed once used. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60497">60497</a>: Follow up fix using a better variable name for the
+        tag reuse flag. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Revert use of try/finally for simple tags. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a typo in Host Configuration Reference.
+        Issue reported via comments.apache.org. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        In the documentation web application, be explicit that clustering
+        requires a secure network for all of the cluster network traffic.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the ASF logos to the new versions.
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Reduce the warning logs for a message received from a different domain
+        in order to avoid excessive log outputs. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add log message that PING message has received beyond the timeout
+        period. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When a PING message that beyond the time-out period has been received,
+        make sure that valid member is added to the map membership. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60437">60437</a>: Avoid possible handshake overflows in the websocket
+        client. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58816">58816</a>: Implement the statistics of jdbc-pool. The stats infos
+        are <code>borrowedCount</code>, <code>returnedCount</code>,
+        <code>createdCount</code>, <code>releasedCount</code>,
+        <code>reconnectedCount</code>, <code>releasedIdleCount</code> and
+        <code>removeAbandonedCount</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60194">60194</a>: If <code>validationQuery</code> is not specified,
+        connection validation is done by calling the <code>isValid()</code>
+        method. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60398">60398</a>: Fix testcase of <code>TestSlowQueryReport</code>.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Enable reset the statistics without restarting the pool. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.74 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.74_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60366">60366</a>: Change <code>catalina.bat</code> to use directly
+        <code>LOGGING_MANAGER</code> and <code>LOGGING_CONFIG</code> variables
+        in order to configure logging, instead of modifying
+        <code>JAVA_OPTS</code>. Patch provided by Petter Isberg. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        New property is added <code>test.verbose</code> in order to control
+        whether the output of the tests is displayed on the console or not.
+        Patch provided by Emmanuel Bourg. (violetagg)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the ASF logos used in the Apache Tomcat installer for Windows to
+        use the new versions.
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Spelling corrections provided by Josh Soref. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.73 (violetagg)"><!--()--></a><a name="Tomcat_7.0.73_(violetagg)"><strong>Tomcat 7.0.73 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2016-11-14</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.73 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.73_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60117">60117</a>: Ensure that the name of <code>LogLevel</code> is
+        localized when using <code>OneLineFormatter</code>. Patch provided by
+        Tatsuya Bessho. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60151">60151</a>: Improve the exception error messages when a
+        <code>ResourceLink</code> fails to specify the type, specifies an
+        unknown type or specifies the wrong type. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60167">60167</a>: Ignore empty lines in <code>/etc/passwd</code> files
+        when using the <code>PasswdUserDatabase</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the access checks for linked global resources to handle the case
+        where the current class loader is a child of the web application class
+        loader. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60199">60199</a>: Log a warning if deserialization issues prevent a
+        session attribute from being loaded. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly test for control characters when reading the provided shutdown
+        password. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When configuring the JMX remote listener, specify the allowed types for
+        the credentials. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.73 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.73_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60123">60123</a>: Avoid potential threading issues that could cause
+        excessively large vales to be returned for the processing time of
+        a current request. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60174">60174</a>: Log instances of <code>HeadersTooLargeException</code>
+        during request processing. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the HTTP header parser so that DEL is not treated as a valid
+        token character. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60319">60319</a>: When using an Executor, disconnect it from the
+        Connector attributes <code>maxThreads</code>,
+        <code>minSpareThreads</code> and <code>threadPriority</code> to enable
+        the configuration settings to be consistently reported. These Connector
+        attributes will be reported as <code>-1</code> when an Executor is in
+        use. The values used by the executor may be set and obtained via the
+        Executor. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If an I/O error occurs during async processing on a non-container
+        thread, ensure that the <code>onError()</code> event is triggered.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve detection of I/O errors during async processing on non-container
+        threads and trigger async error handling when they are detected. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add additional checks for valid characters to the HTTP request line
+        parsing so invalid request lines are rejected sooner. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.73 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.73_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add an example of using the <code>classesToInitialize</code> attribute
+        of the <code>JreMemoryLeakPreventionListener</code> to the documentation
+        web application. Based on a patch by Cris Berneburg. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60192">60192</a>: Correct a typo in the status output of the Manager
+        application. Patch provided by  Radhakrishna Pemmasani. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a typo in HTTP Connector How-To.
+        Issue reported via comments.apache.org. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix default value of <code>validationInterval</code> attribute in
+        jdbc-pool. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a typo in CGI How-To.
+        Issue reported via comments.apache.org. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60344">60344</a>: Add a note to BUILDING.txt regarding using the source
+        bundle with the correct line endings. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.73 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.73_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When the proxy node sends a backup retrieve message, ensure that using
+        the <code>channelSendOptions</code> that has been set rather than the
+        default <code>channelSendOptions</code>. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.73 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.73_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60099">60099</a>: Ensure that use all method arguments as a cache key
+        when using <code>StatementCache</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60139">60139</a>: Correct Javadocs for
+        <code>PoolConfiguration.getValidationInterval</code> and
+        <code>setValidationInterval</code>. Reported by Phillip Webb. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.73 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.73_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add documentation to the bin/catalina.bat script to remind users that
+        environment variables don't affect the configuration of Tomcat when
+        run as a Windows Service. Based upon a documentation patch by
+        James H.H. Lampert. (schultz)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.72 (violetagg)"><!--()--></a><a name="Tomcat_7.0.72_(violetagg)"><strong>Tomcat 7.0.72 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2016-09-19</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.72 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.72_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure <code>Digester.useContextClassLoader</code> is considered in
+        case the class loader is used. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.72 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.72_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60101">60101</a>: Remove preloading of the class that was deleted.
+        (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.72 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.72_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Notify jmx when returning the connection that has been marked suspect.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the <code>POOL_EMPTY</code> notification has been added to
+        the jmx notification types. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.72 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.72_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the packaged version of the Tomcat Native Library to 1.2.10 to
+        pick up the latest Windows binaries built with OpenSSL 1.0.2j. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)"><strong>Tomcat 7.0.71 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57705">57705</a>: Add debug logging for requests denied by the remote
+        host and remote address valves and filters. Based on a patch by Graham
+        Leggett. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Change the default of the
+        <code>sessionCookiePathUsesTrailingSlash</code> attribute of the
+        <code>Context</code> element to <code>false</code> since the problems
+        caused when a Servlet is mapped to <code>/*</code> are more significant
+        than the security risk of not enabling this option by default. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59708">59708</a>: Modify the LockOutRealm logic. Valid authentication
+        attempts during the lock out period will no longer reset the lock out
+        timer to zero. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve error handling around user code prior to calling
+        <code>InstanceManager.destroy()</code> to ensure that the method is
+        executed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that reading the <code>singleThreadModel</code> attribute of a
+        <code>StandardWrapper</code> via JMX does not trigger initialisation of
+        the associated servlet. With some frameworks this can trigger an
+        unexpected initialisation thread and if initilisation is not thread-safe
+        the initialisation can then fail. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        By default, treat paths used to obtain a request dispatcher as encoded.
+        This behaviour can be changed per web application via the
+        <code>dispatchersUseEncodedPaths</code> attribute of the Context.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59839">59839</a>: Apply <code>roleSearchAsUser</code> to all nested searches
+        in JNDIRealm. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Provide a mechanism that enables the container to check if a component
+        (typically a web application) has been granted a given permission when
+        running under a SecurityManager without the current execution stack
+        having to have passed through the component. Use this new mechanism to
+        extend SecurityManager protection to the system property replacement
+        feature of the digester. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        When retrieving an object via a <code>ResourceLink</code>, ensure that
+        the object obtained is of the expected type. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59866">59866</a>: When scanning <code>WEB-INF/classes</code> for
+        annotations, don't scan the contents of
+        <code>WEB-INF/classes/META-INF</code> (if present) since classes will
+        never be loaded from that location. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59912">59912</a>: Fix an edge case in input stream handling where an
+        <code>IOException</code> could be thrown when reading a POST body.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59966">59966</a>: Do not start the web application if the error page
+        configuration in web.xml is invalid. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Switch the CGI servlet to the standard logging mechanism and remove
+        support for the debug attribute. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a new initialisation parameter, <code>envHttpHeaders</code>, to
+        the CGI Servlet to mitigate <a href="https://httpoxy.org">httpoxy</a>
+        (<a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5388">CVE-2016-5388</a>) by default and to provide a mechanism that can be
+        used to mitigate any future, similar issues. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        When adding and removing <code>ResourceLink</code>s dynamically, ensure
+        that the global resource is only visible via the
+        <code>ResourceLinkFactory</code> when it is meant to be. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60008">60008</a>: When processing CORs requests, treat any origin with a
+        URI scheme of <code>file</code> as a valid origin. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve handling of exceptions during a Lifecycle events triggered by a
+        state transition. The exception is now caught and the component is now
+        placed into the <code>FAILED</code> state. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a file descriptor leak when reading the global web.xml. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60041">60041</a>: Better error message if a JAR is deleted while a web
+        application is running. Note: Deleting a JAR while the application is
+        running is not supported and errors are expected. Based on a patch by
+        gehui. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve error handling around user code prior to calling
+        <code>InstanceManager.destroy()</code> to ensure that the method is
+        executed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59904">59904</a>: Add a limit (default 200) for the number of cookies
+        allowed per request. Based on a patch by gehui. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make timing attacks against the Realm implementations harder. (schultz)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Refactor the code that implements the requirement that a call to
+        <code>complete()</code> or <code>dispatch()</code> made from a
+        non-container thread before the container initiated thread that called
+        <code>startAsync()</code> completes must be delayed until the container
+        initiated thread has completed. Rather than implementing this by
+        blocking the non-container thread, extend the internal state machine to
+        track this. This removes the possibility that blocking the non-container
+        thread could trigger a deadlock. (markt)  
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve error handling around user code prior to calling
+        <code>InstanceManager.destroy()</code> to ensure that the method is
+        executed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the error handling for custom tags to ensure that the tag is
+        returned to the pool or released and destroyed once used. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fixed StringIndexOutOfBoundsException. Based on a patch provided by
+        wuwen via Github. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve error handling around user code prior to calling
+        <code>InstanceManager.destroy()</code> to ensure that the method is
+        executed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59868">59868</a>: Clarify the documentation for the Manager web
+        application to make clearer that the host name and IP address in the
+        server section are the primary host name and IP address. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59908">59908</a>: Ensure that a reason phrase is included in the close
+        message if a session is closed due to a timeout. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)/Web Applications"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)/Web_Applications"><strong>Web Applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Do not log an additional case of <code>IOException</code>s in the
+        error handler for the Drawboard WebSocket example when the root cause is
+        the client disconnecting since the logs add no value. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59642">59642</a>: Mention the <code>localDataSource</code> in the
+        <code>DataSourceRealm</code> section of the Realm How-To. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Follow-up to the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59399">59399</a>. Ensure that the new attribute
+        <code>transportGuaranteeRedirectStatus</code> is documented for all
+        <strong>Realm</strong>s. Also document the <code>NullRealm</code> and
+        when it is automatically created for an <strong>Engine</strong>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        MBeans Descriptors How-To is moved to
+        <code>mbeans-descriptors-howto.html</code>. Patch provided by Radoslav
+        Husar. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60034">60034</a>: Correct a typo in the Manager How-To page of the
+        documentation web application. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add log message when the ping has timed-out. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If the ping message has been received at the
+        <code>AbstractReplicatedMap#leftOver</code> method, ensure that notify
+        the member is alive than ignore it. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix the duplicated connection release when connection verification
+        failed. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that do not remove the abandoned connection that has been already
+        released. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In order to avoid the unintended skip of <code>PoolCleaner</code>,
+        remove the check code of the execution interval in the task that has
+        been scheduled. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59849">59849</a>: Ensure that the connection verification is executed by
+        <code>initSQL</code> (if required) if the borrowing
+        <code>PooledConnection</code> has not been initialized. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59850">59850</a>: Ensure that the <code>ResultSet</code> is closed when
+        enabling the <code>StatementCache</code> interceptor. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59923">59923</a>: Reduce the default value of
+        <code>validationInterval</code> in order to avoid the potential issue
+        that continues to return an invalid connection after database restart.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the <code>ResultSet</code> is returned as Proxy object when
+        enabling the <code>StatementDecoratorInterceptor</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=60043">60043</a>: Ensure that the <code>suspectTimeout</code> works
+        without removing connection when the <code>removeAbandoned</code> is
+        disabled. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add log message of when returning the connection that has been marked
+        suspect. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct Javadoc for <code>ConnectionPool.suspect()</code>. Based on a
+        patch by Yahya Cahyadi. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.71 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.71_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Use the mirror network rather than the ASF master site to download the
+        current ASF dependencies. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the packaged version of the Tomcat Native Library to 1.2.8 to
+        pick up the latest fixes and make 1.2.8 the minimum recommended version.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fixed typos in mbeans-descriptors.xml files. (violetagg)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the internal fork of Commons BCEL to r1757132 to align with the
+        BCEL 6 release. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the internal fork of Commons Codec to r1757174. Code formatting
+        changes only. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the internal fork of Commons FileUpload to afdedc9. This pulls in
+        a fix to improve the performance with large multipart boundaries.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update the download location for Objenesis. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)"><strong>Tomcat 7.0.70 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2016-06-20</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59219">59219</a>: Ensure <code>AsyncListener.onError()</code> is called
+        if an <code>Exception</code> is thrown during async processing. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59220">59220</a>: Ensure that <code>AsyncListener.onComplete()</code> is
+        called if the async request times out and the response is already
+        committed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59261">59261</a>: <code>ServletRequest.getAsyncContext()</code> now
+        throws an <code>IllegalStateException</code> as required by the Servlet
+        specification if the request is not in asynchronous mode when called.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59310">59310</a>: Do not add a <code>Content-Length: 0</code> header for
+        custom responses to <code>HEAD</code> requests that do not set a
+        <code>Content-Length</code> value. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When normalizing paths, improve the handling when paths end with
+        <code>/.</code> or <code>/..</code> and ensure that input and output are
+        consistent with respect to whether or not they end with <code>/</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59317">59317</a>: Ensure that
+        <code>HttpServletRequest.getRequestURI()</code> returns an encoded URI
+        rather than a decoded URI after a dispatch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the value for the header <code>X-Frame-Options</code> is
+        constructed correctly according to the specification when
+        <code>ALLOW-FROM</code> option is used. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59399">59399</a>: Add a new option to the Realm implementations that
+        ship with Tomcat that allows the HTTP status code used for HTTP -&gt; HTTPS
+        redirects to be controlled per Realm. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59449">59449</a>: In <code>ContainerBase</code>, ensure that the process
+        to remove a child container is the reverse of the process to add one.
+        Patch provided by Huxing Zhang. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a potential concurrency issue with the web application class loader
+        and  concurrent reads and writes of the resource cache. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59619">59619</a>: Within the web application class loader, always use
+        path as the key for the resource cache to improve the hit ratio. This
+        also fixes a problem exposed by the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56777">56777</a> that
+        enabled file based configuration resources to be loaded from the class
+        path. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix error message when failed to register MBean. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58970">58970</a>: Fix a connection counting bug in the NIO connector
+        that meant some dropped connections were not removed from the current
+        connection count. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59289">59289</a>: Do not recycle upgrade processors in unexpected close
+        situations. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that requests with HTTP method names that are not tokens (as
+        required by RFC 7231) are rejected with a 400 response. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When an asynchronous request is processed by the AJP connector, ensure
+        that request processing has fully completed before starting the next
+        request. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+       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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59654">59654</a>: 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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that a client disconnection triggers the error handling for the
+        associated WebSocket end point. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)/Web Applications"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)/Web_Applications"><strong>Web Applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a typo in SSL/TLS Configuration How-To.
+        Issue reported via comments.apache.org. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58891">58891</a>: Update the SSL how-to. Based on a suggestion by
+        Alexander Kj&auml;ll. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix potential NPE that depends on the setting order of attributes of
+        static member when using the static cluster. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add get/set method for the channel that is related to
+        <code>ChannelInterceptorBase</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        As with the multicast cluster environment, in the static cluster
+        environment, the local member inherits properties from the cluster
+        receiver. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add get/set method for the channel that is related to each Channel
+        services. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add name to channel in order to identify channels. In tomcat cluster
+        environment, it is set the cluster name + "-Channel" as default value.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add the channel name to the thread which is invoked by channel services
+        in order to identify the associated channel. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that clear the channel instance from channel services when
+        stopping channel. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Implement map state in the replication map. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the ping is not executed during the start/stop of the
+        replication map. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In ping processing in the replication map, send not the
+        <code>INIT</code> message but the newly introduced <code>PING</code>
+        message. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.70 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.70_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove native code (Windows Service Wrapper, APR/native connector)
+        support for Windows Itanium. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the internal fork of Commons File Upload to r1743698 (1.3.1 plus
+        additional fixes). (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58626">58626</a>: Add support for a new environment variable
+        (<code>USE_NOHUP</code>) that causes <code>nohup</code> 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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.69 (violetagg)"><!--()--></a><a name="Tomcat_7.0.69_(violetagg)"><strong>Tomcat 7.0.69 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2016-04-15</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.69 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.69_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix the type of <code>InstanceManager</code> attribute of mbean
+        definition of <code>StandardContext</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58351">58351</a>: Make the server build date and server version number
+        accessible via JMX. Patch provided by  Huxing Zhang. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59001">59001</a>: Correctly handle the case when Tomcat is installed on
+        a path where one of the segments ends in an exclamation mark. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Expand the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59001">59001</a> to cover the special sequences used
+        in Tomcat's custom jar:war: URLs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59043">59043</a>: Avoid warning while expiring sessions associated with
+        a single sign on if <code>HttpServletRequest.logout()</code> is used.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59054">59054</a>: Ensure that using the
+        <code>CrawlerSessionManagerValve</code> in a distributed environment
+        does not trigger an error when the Valve registers itself in the
+        session. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Log a warning message if a user tries to configure the default session
+        timeout via the deprecated (and ignored)
+        <code>Manager.setMaxInactiveInterval()</code> method. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression introduced in 7.0.68 where the deprecated
+        <code>Manager.getMaxInactiveInterval()</code> method returned the
+        current default session timeout in minutes rather than seconds. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+       <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59115">59115</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59123">59123</a>: Close <code>NamingEnumeration</code> objects used by
+        the <code>JNDIRealm</code> once they are no longer required.
+        (fschumacher/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59138">59138</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59145">59145</a>: Don't log an invalid warning when a user logs out of
+        a session associated with SSO. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59151">59151</a>: Fix a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56917">56917</a> that
+        added additional (and arguably unnecessary) validation to the provided
+        redirect location. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59206">59206</a>: Ensure NPE will not be thrown by
+        <code>o.a.tomcat.util.file.ConfigFileLoader</code> when
+        <code>catalina.base</code> is not specified. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59213">59213</a>: Async dispatches should be based off a wrapped request.
+        (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59217">59217</a>: Remove duplication in the recycling of the path in
+        <code>o.a.tomcat.util.http.ServerCookie</code>. Patch is provided by
+        Kyohei Nakamura. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that <code>javax.servlet.ServletRequest</code> and
+        <code>javax.servlet.ServletResponse</code> provided during
+        <code>javax.servlet.AsyncListener</code> registration are made
+        available via <code>javax.servlet.AsyncEvent.getSuppliedRequest</code>
+        and <code>javax.servlet.AsyncEvent.getSuppliedResponse</code>
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Clarify the log message that specifying both urlPatterns and value
+        attributes in WebServlet and WebFilter annotations is not allowed.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure the exceptions caused by Valves will be available in the log
+        files so that they can be evaluated when
+        <code>o.a.catalina.valves.ErrorReportValve.showReport</code> is
+        disabled. Patch is provided by Svetlin Zarev. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59247">59247</a>: Preload ResourceEntry as a workaround for security
+        manager issues on some JVMs. (kkolinko/remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59269">59269</a>: Correct the implementation of
+        <code>PersistentManagerBase</code> so that <code>minIdleSwap</code>
+        functions as designed and sessions are swapped out to keep the active
+        session count below <code>maxActiveSessions</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.69 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.69_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58646">58646</a>: Correct a problem with sendfile that resulted in a
+        Processor being added to the cache twice leading to broken responses.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59015">59015</a>: Fix potential cause of endless APR Poller loop during
+        shutdown if the Poller experiences an error during the shutdown process.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Limit the default TLS ciphers for JSSE (BIO, NIO) and OpenSSL (APR) to
+        those currently considered secure. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a new environment variable <code>JSSE_OPTS</code> that is intended
+        to be used to pass JVM wide configuration to the JSSE implementation.
+        The default value is <code>-Djdk.tls.ephemeralDHKeySize=2048</code>
+        which protects against weak Diffie-Hellman keys. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.69 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.69_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59014">59014</a>: Ensure that a WebSocket close message can be sent
+        after a close message has been received. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly handle compression of partial messages when the final message
+        fragment has a zero length payload. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Extend the WebSocket programmatic echo endpoint provided in the examples
+        to handle binary messages and also partial messages. This aligns the
+        code with Tomcat 8 and makes it easier to run the Autobahn testsuite
+        against the WebSocket implementation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59119">59119</a>: Correct read logic for WebSocket client when using
+        secure connections. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59134">59134</a>: Correct client connect logic for secure connections
+        made through a proxy. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59189">59189</a>: Explicitly release the native memory held by the
+        <code>Inflater</code> and <code>Deflater</code> when using
+        PerMessageDeflate and the WebSocket session ends. Based on a patch by
+        Henrik Olsson. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.69 (violetagg)/Web Applications"><!--()--></a><a name="Tomcat_7.0.69_(violetagg)/Web_Applications"><strong>Web Applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the description of the
+        <code>ServletRequest.getServerPort()</code> in Proxy How-To.
+        Issue reported via comments.apache.org. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a potential indefinite wait in the Comet Chat servlet in the
+        examples web application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59229">59229</a>: Fix error in HTTP docs and make clear the the HTTP NIO
+        connector uses non-blocking I/O to read the HTTP request headers.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update in the documentation the link to the maven repository where
+        Tomcat snapshot artifacts are deployed. (markt/violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Clarify in the documentation that calls to
+        <code>ServletContext.log(String, Throwable)</code> or
+        <code>GenericServlet.log(String, Throwable)</code> are logged at the
+        SEVERE level. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.69 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.69_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If promoting a proxy node to a primary node when getting a session,
+        notify the change of the new primary node to the original backup node.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid NPE when a proxy node failed to retrieve a backup entry. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add log of when received an unexpected messages. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add the flag indicating that member is a localMember. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.69 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.69_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58283">58283</a>: Change the default download location for libraries
+        during the build process from <code>/usr/share/java</code> to
+        <code>${user.home}/tomcat-build-libs</code>. Patch provided by
+        Ahmed Hosni. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59031">59031</a>: When using the Windows uninstaller, do not remove the
+        contents of any directories that have been symlinked into the Tomcat
+        directory structure. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Modify the default <code>tomcat-users.xml</code> file to make it harder
+        for users to configure the entries intended for use with the examples
+        web application for the Manager application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59211">59211</a>: Add hamcrest to Eclipse classpath. Patch is provided
+        by Huxing Zhang. (violetagg)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59280">59280</a>: Update the NSIS Installer used to build the
+        Windows Installers to version 2.51. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)"><strong>Tomcat 7.0.68 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2016-02-16</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/General"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Allow to configure multiple JUnit test class patterns with the build
+        property <code>test.name</code> and document the property in
+        BUILDING.txt. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct implementation of
+        <code>validateClientProvidedNewSessionId</code> so client provided
+        session IDs may be rejected if validation is enabled. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56785">56785</a>: Avoid <code>NullPointerException</code> if directory
+        exists on the class path that is not readable by the Tomcat user.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57906">57906</a>: Suppress WebappClassLoader log messages when running
+        with a security manager on Java 6, caused by
+        <code>java.beans.Introspector.findExplicitBeanInfo()</code> calls
+        during evaluation of EL expressions. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58692">58692</a>: Make <code>StandardJarScanner</code> more robust. Log
+        a warning if a class path entry cannot be scanned rather than triggering
+        the failure of the web application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58701">58701</a>: Reset the <code>instanceInitialized</code> field in
+        <code>StandardWrapper</code> when unloading a Servlet so that a new
+        instance may be correctly initialized. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58702">58702</a>: Ensure an access log entry is generated if the client
+        aborts the connection. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fixed various issues reported by Findbugs. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58735">58735</a>: Add support for the <code>X-XSS-Protection</code>
+        header to the <code>HttpHeaderSecurityFilter</code>. Patch provided by
+        Jacopo Cappellato. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58751">58751</a>: Correctly handle the case where an
+        <code>AsyncListener</code> dispatches to a Servlet on an asynchronous
+        timeout and the Servlet uses <code>sendError()</code> to trigger an
+        error page. Includes a test case based on code provided by Andy
+        Wilkinson.(markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58765">58765</a>: Change default for
+        <code>mapperContextRootRedirectEnabled</code> to <code>true</code> since
+        this is required for correct session management because of the default
+        for <code>sessionCookiePathUsesTrailingSlash</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add the <code>StatusManagerServlet</code> to the list of Servlets that
+        can only be loaded by privileged applications. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Simplify code and fix messages in
+        <code>org.apache.catalina.core.DefaultInstanceManager</code> class.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the proper file encoding if specified will be used when
+        a readme file is served by DefaultServlet. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix declaration of <code>localPort</code> attribute of Connector MBean:
+        it is read-only. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58766">58766</a>: Make skipping non-class files during annotation
+        scanning faster by checking the file name first. Improve debug logging.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58768">58768</a>: Log a warning if a redirect fails because of an
+        invalid location. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58836">58836</a>: Correctly merge query string parameters when
+        processing a forwarded request where the target includes a query string
+        that contains a parameter with no value. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make sure that shared Digester is reset in an unlikely error case
+        in <code>HostConfig.deployWAR()</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a potential JDBC resource leak in DataSourceRealm. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58900">58900</a>: Correctly undeploy symlinked resources and prevent an
+        infinite cycle of deploy / undeploy. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Protect initialization of <code>ResourceLinkFactory</code> when
+        running with a SecurityManager. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Extend the feature available in the cluster session manager
+        implementations that enables session attribute replication to be
+        filtered based on attribute name to all session manager implementations.
+        Note that configuration attribute name has changed from
+        <code>sessionAttributeFilter</code> to
+        <code>sessionAttributeNameFilter</code>. Apply the filter on load as
+        well as unload to ensure that configuration changes made while the web
+        application is stopped are applied to any persisted data. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Extend the session attribute filtering options to include filtering
+        based on the implementation class of the value and optional
+        <code>WARN</code> level logging if an attribute is filtered. These
+        options are available for all of the Manager implementations that ship
+        with Tomcat. When a <code>SecurityManager</code> is used filtering will
+        be enabled by default. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58905">58905</a>: Ensure that <code>Tomcat.silence()</code> silences the
+        correct logger and respects the current setting. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58946">58946</a>: Ensure that the request parameter map remains
+        immutable when processing via a RequestDispatcher. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        New configuration option <code>ajpFlush</code> for the AJP connectors
+        to disable the sending of AJP flush packets. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix handling of missing messages in
+        <code>org.apache.el.util.MessageFactory</code>. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ignore <code>engineOptionsClass</code> and <code>scratchdir</code> when
+        running under a security manager. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In order to avoid that the heartbeat thread and the background thread to
+        run <code>Channel.heartbeat</code> simultaneously, if
+        <code>heartbeatBackgroundEnabled</code> of <code>SimpleTcpCluster</code>
+        set to <code>true</code>, ensure that the heartbeat thread does not
+        start. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57489">57489</a>: Ensure <code>onClose()</code> is called when a
+        WebSocket connection is closed even if the sending of the close message
+        fails. Includes test cases by Barry Coughlan. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a timing issue on session close that could result in an exception
+        being thrown for an incomplete message even through the message was
+        completed. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/Web Applications"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/Web_Applications"><strong>Web Applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct some typos in the JNDI resources How-To. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't create sessions unnecessarily in the Manager application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't create sessions unnecessarily in the Host Manager application.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58723">58723</a>: Clarify documentation and error messages for the text
+        interface of the manager to make clear that version must be used with
+        path when referencing contexts deployed using parallel deployment.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct an error in the documentation of the expected behaviour for
+        automatic deployment. If a WAR is updated and an expanded directory is
+        present, the directory will always be deleted and recreated by expanding
+        the WAR if <code>unpackWARs</code> is <code>true</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58935">58935</a>: Remove incorrect references in the documentation to
+        using <code>jar:file:</code> URLs with the Manager application. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add support for the startup notification of local members in the static
+        cluster. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ignore the unnecessary member remove operation from different domain.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add support for the shutdown notification of local members in the static
+        cluster. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that asynchronous session replication thread is a daemon thread.
+        (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.68 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.68_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the NSIS Installer used to build the Windows Installers to
+        version 2.50. (markt/kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.67 (violetagg)"><!--()--></a><a name="Tomcat_7.0.67_(violetagg)"><strong>Tomcat 7.0.67 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2015-12-10</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.67 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.67_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56917">56917</a>: As per RFC7231 (HTTP/1.1), allow HTTP/1.1 and later
+        redirects to use relative URIs. This is controlled by a new attribute
+        <code>useRelativeRedirects</code> on the <strong>Context</strong> and
+        defaults to <code>true</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58660">58660</a>: Correct a regression in 7.0.66 caused by the change
+        that moved the redirection for context roots from the Mapper to the
+        Default Servlet. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fixed potential NPE in <code>HostConfig</code> while deploying an
+        application. Issue reported by coverity scan. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58655">58655</a>: Fix an <code> IllegalStateException</code> when
+        calling <code>HttpServletResponse.sendRedirect()</code> with the
+        <code>RemoteIpFilter</code>. This was caused by trying to correctly
+        generate the absolute URI for the redirect. With the fix for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56917">56917</a>, redirects may now be relative making the
+        <code>sendRedirect()</code> implementation for the
+        <code>RemoteIpFilter</code> much simpler. This also addresses issues
+        where the redirect may not have behaved as expected when redirecting
+        from http to https to from https to http. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.67 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.67_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58658">58658</a>: Correct a regression in 7.0.66 that prevented Tomcat
+        from starting on Java 6 unless the WebSocket JARs (that require Java 7)
+        were removed. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.67 (violetagg)/Web Applications"><!--()--></a><a name="Tomcat_7.0.67_(violetagg)/Web_Applications"><strong>Web Applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a description of the default value of
+        <code>heartbeatSleeptime</code> attribute and <code>optionCheck</code>
+        attribute in the cluster channel docs. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.67 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.67_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix potential NPE in <code>AbstractReplicatedMap.breakdown()</code>.
+        (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)"><strong>Tomcat 7.0.66 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)/General"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58596">58596</a>: Clarify the description in RUNNING.txt of how
+        environment variables are used. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=34319">34319</a>: Only load those keys in <code>StoreBase.processExpire</code>
+        from JDBCStore, that are old enough, to be expired. Based on a patch
+        by Tom Anderson. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56777">56777</a>: Allow file based configuration resources (user
+        database, certificate revocation lists, keystores and trust stores) to
+        be configured using URLs as well as files. Back-port provided by Huxing
+        Zhang. (markt/violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57741">57741</a>: Enable the CGI servlet to use the standard error page
+        mechanism. Note that if the CGI servlet's debug init parameter is
+        set to 10 or higher then the standard error page mechanism will be
+        bypassed and a debug response generated by the CGI servlet will be
+        returned instead. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58486">58486</a>: Protect against two further possible memory leaks
+        associated with XML parsing. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58497">58497</a>: Make <code>AbstractHttp11Processor</code> easy to
+        extend. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58508">58508</a>: Escape role names when generating associated MBeans in
+        case the role name contains characters not permitted in an MBean name.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58522">58522</a>: Fixed concurrency issue when iterating web
+        application's resources. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58534">58534</a>: Removed repeated conditional tests in
+        <code>o.a.tomcat.websocket.pojo.PojoMethodMapping</code> and
+        <code>o.a.tomcat.util.net.AprEndpoint</code>
+        Patch provided by Anthony Whitford. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58535">58535</a>: Use <code>Collections.reverseOrder</code>
+        when a reverse ordering is needed. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58537">58537</a>: Some of the inner classes in
+        <code>o.a.catalina.valves.ExtendedAccessLogValve</code> are made static.
+        Patch provided by Anthony Whitford. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58540">58540</a>: Removed unused code from
+        <code>o.a.catalina.connector.Request</code>.
+        Patch provided by Anthony Whitford. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58541">58541</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58544">58544</a>: It is more efficient to call
+        <code>Integer.toString(int)</code> instead of
+        <code>Integer.valueOf(int).toString()</code> when only a string
+        representation of a primitive is needed. Based on a patch provided by
+        Anthony Whitford. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58541">58541</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58547">58547</a>: It is more efficient to call
+        <code>valueOf(...)</code> instead of Number constructor. Based on a
+        patch provided by Anthony Whitford. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58545">58545</a>: In some use cases it is more efficient to use
+        <code>Map.entrySet()</code> instead of <code>Map.keySet()</code>
+        Based on a patch provided by Anthony Whitford. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a new RestCsrfPreventionFilter that provides basic CSRF protection
+        for REST APIs. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58581">58581</a>: If a custom error page fails, fall back to the
+        standard error page rather than throwing an NPE. Based on a patch by
+        Huxing Zhang. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58582">58582</a>: Combined realm should perform background processing
+        on its sub-realms. Based upon a patch provided by Aidan. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Handle the unlikely case where different versions of a web application
+        are deployed with different session settings. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a new Context option, enabled by default, that enables an additional
+        check that a client provided session ID is in use in at least one other
+        web application before allowing it to be used as the ID for a new
+        session in the current web application. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for DIGEST authentication to the JNDIRealm. Based on a patch
+        by Alexis Hassler. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58603">58603</a>: Ensure that
+        <code>HttpServletRequest.getRequestURL()</code> returns the correct
+        value when using the <code>RemoteIpFilter</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that in an embedded Tomcat the logging configuration is
+        not lost during garbage collection. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Move the functionality that provides redirects for context roots and
+        directories where a trailing <code>/</code> is added from the Mapper to
+        the <code>DefaultServlet</code>. This enables such requests to be
+        processed by any configured Valves and Filters before the redirect is
+        made. This behaviour is configurable via the
+        <code>mapperContextRootRedirectEnabled</code> and
+        <code>mapperDirectoryRedirectEnabled</code> attributes of the Context
+        which may be used to restore the previous behaviour. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58635">58635</a>: Enable break points to be set within agent code when
+        running Tomcat with a Java agent. Based on a patch by Huxing Zhang.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add path parameter handling to
+        <code>HttpServletRequest.getContextPath()</code>. This is a follow-up to
+        the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57215">57215</a>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57136#c25">57136#c25</a>: Implement a setting that controls what quoting
+        rule is used when parsing EL expressions in attributes on a JSP page
+        (chapter JSP.1.6 of specification). The setting name is
+        <code>quoteAttributeEL</code> and it is configured as initialisation
+        parameter of JSP Servlet (per web application configuration is possible)
+        and as a command line option for JspC. The default value was changed to
+        <code>true</code>, which restores behaviour implemented in
+        Tomcat 7.0.64. It means that attribute quoting is applied on top of EL
+        quoting. This provides better compatibility with older versions of
+        Tomcat and other implementations. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Optimize the session lock range in DeltaManager.requestCompleted.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Enable an explicit configuration of local member in the static cluster
+        membership. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix potential integer overflow in <code>DeltaSession</code>.
+        Reported by coverity scan. (fschumacher)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Distinguish the handling of the shutdown payload and member verification
+        clearly. When handling shutdown payload, verification completion message
+        is not required. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When starting the <code>StaticMembershipInterceptor</code>,
+        <code>StaticMembershipInterceptor</code> checks  the required
+        Interceptors. If the required Interceptor does not exist, it issues
+        warning logs. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the static member is registered to the add suspect list even
+        if the static member that is registered to the remove suspect list has
+        disappeared. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the warning log of when the member that is not registered in the
+        membership is detected. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When using a static cluster, add the members that have been cached in
+        the membership service to the map members list in order to ensure that
+        the map member is a static member. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Use instance manager for server endpoint instances. (remm)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55006">55006</a>: The WebSocket client now honors the
+        <code>java.net.java.net.ProxySelector</code> configuration (using the
+        HTTP type) when establishing WebSocket connections to servers. Based on
+        a patch by Niki Dokovski. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58624">58624</a>: Correct a thread safety issue that meant that blocking
+        message writes could block indefinitely if the WebSocket connection was
+        closed while a message write was in progress. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make it clear in the documentation for the CGI servlet that the debug
+        page is not considered secure and should not be used in production.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        The <code>domain</code> attribute of <code>StaticMember</code> is not
+        required but optional. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58631">58631</a>: Correct the continuation character use in the Windows
+        Service How-To page of the documentation web application. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.66 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.66_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58489">58489</a>: Correct QueryStatsComparator to hold up the
+        general contract for Comparator. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When creating a <code>QueryStats</code> object, ensure that
+        <code>maxQueries</code> is checked. If <code>maxQueries</code> is a
+        value less than or equal to 0, <code>QueryStats</code> are never
+        created. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix potential integer overflow in <code>ConnectionPool</code> and
+        <code>PooledConnection</code>. Reported by coverity scan. (fschumacher)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)"><strong>Tomcat 7.0.65 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2015-10-19</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57681">57681</a>: Add a web application class loader implementation that
+        supports the parallel loading of web application classes. Use of this
+        feature requires a Java 7 or later JRE. Based on a patch by Huxing
+        Zhang. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58187">58187</a>: Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57765">57765</a>
+        that meant that deployment of web applications deployed via the Manager
+        application was delayed until the next execution of the automatic
+        deployment background process. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58284">58284</a>: Correctly implement session serialization so
+        non-serializable attributes are skipped with a warning. Patch provided
+        by Andrew Shore. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58313">58313</a>: Fix concurrent access of encoders map when clearing
+        encoders prior to switch to async. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58320">58320</a>: Fix concurrent access of request attributes which is
+        possible during asynchronous processing. (markt)
+      </td></tr> 
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        In preparation for implementing enhancement <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57681">57681</a>, replace
+        the use of the <code>StandardClassLoader</code> with
+        <code>URLClassLoader</code>. This removes the server class loader from
+        JMX. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58352">58352</a>: Always trigger a thread dump if Tomcat fails to stop
+        gracefully from <code>catalina.sh</code> even if using
+        <code>-force</code>. Patch provided by  Alexandre Garnier. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58416">58416</a>: Correctly detect when a forced stop fails to stop
+        Tomcat because the Tomcat process is waiting on some system call or is
+        uninterruptible. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58436">58436</a>: Fix some rare data races in JULI's
+        <code>ClassLoaderLogManager</code> during shutdown. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct some edge cases in <code>RequestUtil.normalize()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58275">58275</a>: The IBM JREs accept cipher suite names starting with
+        <code>TLS_</code> or <code>SSL_</code> but when listing the supported
+        cipher suites only the <code>SSL_</code> version is reported. This can
+        break Tomcat's check that at least one requested cipher suite is
+        supported. Tomcat now includes a work-around so either form of the
+        cipher suite name can be used when running on an IBM JRE. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58357">58357</a>: For reasons not currently understood when the
+        APR/native connector is used with OpenSSL reads can return an error code
+        when there is no apparent error. This was work-around for HTTP upgrade
+        connections by treating this as <code>EAGAIN</code>. The same fix has
+        now been applied to the standard HTTP connector. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57799">57799</a>: Remove useless sendfile check for NIO SSL. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57136">57136</a>: Correct a regression in the previous fix for this
+        issue. <code>\${</code> should only be an escape for <code>${</code>
+        within an EL expression. Within a JSP page <code>\$</code> should be an
+        escape for <code>$</code>. The EL specification applies when parsing the
+        expression delimited by <code>${</code> and <code>}</code>. Parsing of
+        the delimiting <code>${</code> and <code>}</code> is the responsibility
+        of the JSP specification. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58296">58296</a>: Fix a memory leak in the JSP unloading feature that
+        meant that using a value other than <code>-1</code> for
+        <code>maxLoadedJsps</code> triggered a memory leak once the limit was
+        reached. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58340">58340</a>: Improve error reporting for tag files packaged in
+        JARs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58444">58444</a>: Ensure that JSPs work with any custom base class that
+        meets the requirements defined in the JSP specification without
+        requiring that base class to implement Tomcat specific code. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a default clusterListeners in <code>SimpleTcpCluster</code>. The
+        optimal default value is different for each session manager.
+        <code>ClusterSessionListener</code> is never used in
+        <code>BackupManager</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct log messages in case of using <code>BackupManager</code>.
+        (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58342">58342</a>: Fix a copy and paste error that meant MessageHandler
+        removal could fail for binary and pong MessageHandlers. Patch provided
+        by DJ. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58414">58414</a>: Correctly handle sending zero length messages when
+        using per message deflate. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct documentation for cluster-howto. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/Extras"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/Extras"><strong>Extras</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure JULI adapters does not include the LogFactoryImpl class. Patch
+        provided by Benjamin Gandon. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for configurations of <code>ChannelListener</code> and
+        <code>MembershipListener</code> in server.xml. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct log messages in case of using <code>ReplicatedMap</code>.
+        (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.65 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.65_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make sure the pool has been properly configured when attributes that
+        related to the pool size are changed via JMX. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.64 (violetagg)"><!--()--></a><a name="Tomcat_7.0.64_(violetagg)"><strong>Tomcat 7.0.64 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2015-08-25</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.64 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.64_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55317">55317</a>: Facilitate weaving by allowing ClassFileTransformer to
+        be added to WebappClassLoader. Patch by Nick Williams. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58031">58031</a>: Make the (first) reason parameter parsing failed
+        available as a request attribute and then use it to provide a better 
+        status code via the FailedRequstFilter (if configured). (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58086">58086</a>: Ensure that WAR URLs are handled properly when using
+        Apache Ant for web application deployment. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58094">58094</a>: Fix cosmetic error log when using non standard
+        non cacheable resources, like with the empty resources used in some
+        tests. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58096">58096</a>: Classes loaded from <code>/WEB-INF/classes/</code>
+        should use that directory as their code base. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix possible resource leaks by closing streams properly.
+        Issues reported by Coverity Scan. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58116">58116</a>: Fix a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57281">57281</a> that
+        broke Comet support when running under a security manager. Based on a
+        patch provided by Johno Crawford. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58179">58179</a>: Fix a thread safety issues that could mean concurrent
+        threads setting the same attribute on a <code>ServletContext</code>
+        could both see <code>null</code> as the old value. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58192">58192</a>: Correct a regression in the previous fix for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58023">58023</a>. Ensure that classes are associated with their manifest
+        even if the class file is first read (and cached) without the manifest.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix thread safety issue in the <code>AsyncContext</code> implementation
+        that meant a sequence of <code>start();dispatch();</code> calls using
+        non-container threads could result in a previous dispatch interfering
+        with a subsequent start. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.64 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.64_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57943">57943</a>: Prevent the same socket being added to the cache
+        twice. Patch based on analysis by Ian Luo / Sun Qi. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add <code>text/javascript,application/javascript</code> to the default
+        list of compressable MIME types. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58103">58103</a>: When pipelining requests, and the previous request was
+        an async request, ensure that the socket is removed from the waiting
+        requests so that the async timeout thread doesn't process it during the
+        next request. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a concurrency issue that meant that a change in socket timeout (e.g.
+        when switching to asynchronous I/O) did not always take effect
+        immediately. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In the AJP and HTTP NIO connectors, ensure that the socket timeout is
+        correctly set before adding the socket back to the poller for read.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58157">58157</a>: Ensure that the handling of async timeouts does not
+        result in an unnecessary dispatch to a container thread that could
+        result in the current socket being added to the Poller multiple times
+        with multiple attempts to process the same event for the same socket.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a couple of edge cases in <code>RequestUtil.normalize()</code>.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.64 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.64_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58110">58110</a>: Like scriptlet sections, declaration sections of JSP
+        pages have a one-to-one mapping of lines to the generated .java file.
+        Use this information to provide more accurate error messages if a
+        compilation error occurs in a declaration section. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58119">58119</a>: When tags are compiled they must be placed in the
+        org/apache/jsp/tag/web directory. Correct a regression in the fix for
+        52725. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58178">58178</a>: Expressions in a tag file should use the tag
+        file's <code>PageContext</code> rather than that of the containing
+        page. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.64 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.64_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58166">58166</a>: Allow applications to send close codes in the range
+        3000-4999 inclusive. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58232">58232</a>: Avoid possible NPE when adding endpoints
+        programmatically to the
+        <code>javax.websocket.server.ServerContainer</code>.
+        Based on a patch provided by bastian.(violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.64 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.64_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the incorrect document of <code>QueryTimeoutInterceptor</code>.
+        The setting value is not in milliseconds but in seconds. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58112">58112</a>: Update the documentation for using the Catalina tasks
+        in an Apache Ant build file. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the Javadoc for some of the APR socket read functions that have
+        inconsistent behaviour for return values. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58255">58255</a>: Document the Semaphore valve. Patch provided by
+        Kyohei Nakamura. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.64 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.64_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix potential NPE in <code>QueryTimeoutInterceptor</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add support for stopping the pool cleaner via JMX. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        The <code>fairness</code> attribute and
+        <code>ignoreExceptionOnPreLoad</code> attribute do not allow a change
+        via JMX. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If the <code>timeBetweenEvictionRunsMillis</code> attribute is changed
+        via jmx, it should restart the pool cleaner because this attribute
+        affects the execution interval of the pool cleaner. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Eliminate the dependence on <code>maxActive</code> of busy queues and
+        idle queue in order to enable the expansion of the pool size via JMX.
+        (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.64 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.64_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update sample Eclipse IDE configuration to exclude test/webapp* and
+        similar paths from compiler sourcepath. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)"><strong>Tomcat 7.0.63 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2015-07-06</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57938">57938</a>: Correctly handle empty form fields when a form is
+        submitted as <code>multipart/form-data</code>, the
+        <code>maxPostSize</code> attribute of the Connector has been set to a
+        negative value and the Context has been configured with a value of
+        <code>true</code> for <code>allowCasualMultipartParsing</code>. The
+        meaning of the value zero for the <code>maxPostSize</code> has also been
+        changed to mean a limit of zero rather than no limit to align it with
+        <code>maxSavePostSize</code> and to be more intuitive. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54618">54618</a>: Add a new <code>HttpHeaderSecurityFilter</code> that
+        adds the <code>Strict-Transport-Security</code>,
+        <code>X-Frame-Options</code> and <code>X-Content-Type-Options</code>
+        HTTP headers to the response. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add a workaround for issues with SPNEGO authentication when running on
+        Java 8 update 40 and later. The workaround should be safe for earlier
+        Java versions but it can be disabled with the
+        <code>applyJava8u40Fix</code> attribute of the SPNEGO authenticator if
+        necessary. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57154">57154</a>: Add support for web applications (Context elements)
+        that do not have a docBase. This is primarily for use when embedding but
+        it also fixes a rare issue when running the unit test. Patch provided by
+        Huxing Zhang. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57959">57959</a>: Fixed deadlock in
+        <code>org.apache.juli.FileHandler</code> when log is rotated.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57977">57977</a>: Correctly bind and unbind the web application class
+        loader during execution of the PersistentValve. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=58023">58023</a>: Fix potentially excessive memory usage due to
+        unnecessary caching of JAR manifests in the web application class
+        loader. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57700">57700</a>: Ensure that Container event
+        <code>ADD_CHILD_EVENT</code> will be sent in all cases. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add configuration fields for header names in SSLValve. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57265">57265</a>: Further fix to address a potential threading issue
+        for NIO when sendfile is used in conjunction with TLS. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57931">57931</a>: Ensure that TLS connections with the NIO HTTP
+        connector that experience issues during the handshake (e.g. missing or
+        invalid client certificate) are closed cleanly and that the client
+        receives the correct error code rather than simply closing the
+        connection. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57943">57943</a>: Added a work-around to catch
+        <code>ConcurrentModificationException</code>s during Poller timeout
+        processing that were causing the Poller thread to stop. The root cause
+        of these exceptions is currently unknown. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix possible very long (1000 seconds) timeout with APR/native connector.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Support "-" separator in the SSLProtocol configuration of the
+        APR/native connector for protocol exclusion. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make sure that stream is closed after using it in
+        <code>DeltaSession.applyDiff()</code>. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57676">57676</a>: List conflicting WebSocket endpoint classes when
+        there is a path conflict. Based upon a patch proposed by yangkun.
+        (schultz)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Extend support for the <code>permessage-deflate</code> extension to the
+        client implementation.
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57969">57969</a>: Provide path parameters to POJO via per session
+        <code>javax.websocket.server.ServerEndpointConfig</code> as they vary
+        between different requests. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57974">57974</a>: Session.getOpenSessions should return all sessions
+        associated with a given endpoint instance, rather than all sessions
+        from the endpoint class. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57282">57282</a>: Update request processing sequence diagrams. Updated
+        diagrams provided by Stephen Chen. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57971">57971</a>: Correct the documentation for the cluster
+        configuration setting <code>recoverySleepTime</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57758">57758</a>: Add document of <code>testOnConnect</code> attribute
+        in jdbc-pool doc. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add description of <code>validatorClassName</code> attribute to testXXXX
+        attributes in jdbc-pool docs. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the state transfer flag is updated to true only when the map
+        states have been transferred correctly from existing map members.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Do not set the nodes that failed to replication to the backup nodes.
+        Ensure that the nodes that the data has been successfully replicated are
+        set to the backup node. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When failed to replication, rather than all member is handled as a
+        failed member, exclude the failure members from backup members.
+        (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Refactoring of the <code>removeOldest</code> method in
+        <code>SlowQueryReport</code> to behave as expected. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57783">57783</a>: Fix <code>NullPointerException</code> in
+        <code>SlowQueryReport</code>. To avoid this NPE, Refactor
+        <code>SlowQueryReport#removeOldest</code> and handle the abandoned
+        connection properly. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.63 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.63_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update package renamed Apache Commons BCEL to r1682271 to pick up some
+        some code clean up. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update package renamed Apache Commons File upload to r1682322 to pick up
+        the post 1.3.1 fixes. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update package renamed Apache Commons Codec to r1682326. No functional
+        changes. Javadoc only. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.62 (violetagg)"><!--()--></a><a name="Tomcat_7.0.62_(violetagg)"><strong>Tomcat 7.0.62 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2015-05-14</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.62 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.62_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Allow logging of the remote port in the access log using the format
+        pattern <code>%{remote}p</code>. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57765">57765</a>: When checking last modified times as part of the
+        automatic deployment process, account for the fact that
+        <code>File.lastModified()</code> has a resolution of one second to
+        ensure that if a file has been modified within the last second, the
+        latest version of the file is always used. Note that a side-effect of
+        this change is that files with modification times in the future are
+        treated as if they are unmodified. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Align redeploy resource modification checking with reload modification
+        checking so that now, in both cases, a change in modification time
+        rather than an increase in modification time is used to determine if the
+        resource has changed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Cleanup <code>o.a.tomcat.util.digester.Digester</code> from debug
+        messages that do not give any valuable information. Patch provided
+        by Polina Genova. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57772">57772</a>: When reloading a web application and a directory
+        representing an expanded WAR needs to be deleted, delete the directory
+        after the web application has been stopped rather than before to avoid
+        potential ClassNotFoundExceptions. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57801">57801</a>: Improve the error message in the start script in case
+        the PID read from the PID file is already owned by a process. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57824">57824</a>: Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57252">57252</a>
+        that broke request listeners for non-async requests that triggered an
+        error that was handled by the ErrorReportingValve. (markt/violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57841">57841</a>: Improve error logging during web application start.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57856">57856</a>: Ensure that any scheme/port changes implemented by the
+        <code>RemoteIpFilter</code> also affect
+        <code>HttpServletResponse.sendRedirect()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57896">57896</a>: Support defensive copying of "cookie" header so that
+        unescaping double quotes in a cookie value does not corrupt original
+        value of "cookie" header. This is an opt-in feature, enabled by
+        <code>org.apache.tomcat.util.http.ServerCookie.PRESERVE_COOKIE_HEADER</code>
+        or <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code>
+        system property. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.62 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.62_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57779">57779</a>: When an I/O error occurs on a non-container thread
+        only dispatch to a container thread to handle the error if using Servlet
+        3+ asynchronous processing. This avoids potential deadlocks if an
+        application is performing I/O on a non-container thread without using
+        the Servlet 3+ asynchronous API. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57833">57833</a>: When using JKS based keystores for NIO, ensure that
+        the key alias is always converted to lower case since that is what JKS
+        key stores expect. Based on a patch by  Santosh Giri Govind M. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57837">57837</a>: Add <code>text/css</code> to the default list of
+        compressable MIME types. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.62 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.62_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57845">57845</a>: Ensure that, if the same JSP is accessed directly and
+        via a <code>&lt;jsp-file&gt;</code> declaration in web.xml, updates to
+        the JSP are visible (subject to the normal rules on re-compilation)
+        regardless of how the JSP is accessed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57855">57855</a>: Explicitly handle the case where a
+        <code>MethodExpression</code> is invoked with null or the wrong number
+        of parameters. Rather than failing with an
+        <code>ArrayIndexOutOfBoundsException</code> or a
+        <code>NullPointerException</code> throw an
+        <code>IllegalArgumentException</code> with a useful error message.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.62 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.62_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add new attribute that send all actions for session across Tomcat
+        cluster nodes. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove unused <code>pathname</code> attribute in mbean definition of
+        <code>BackupManager</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57338">57338</a>:  Improve the ability of the ClusterSingleSignOn valve
+        to handle nodes being added and removed from the Cluster at run time.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid unnecessary call of <code>DeltaRequest.addSessionListener()</code>
+        in non-primary nodes. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.62 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.62_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57762">57762</a>: Ensure that the WebSocket client correctly detects
+        when the connection to the server is dropped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57776">57776</a>: Revert the 8.0.21 fix for the
+        <code>permessage-deflate</code> implementation and incorrect op-codes
+        since the fix was unnecessary (the bug only affected trunk) and the fix
+        broke rather than fixed <code>permessage-deflate</code> if an
+        uncompressed message was converted into more than one compressed
+        message. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix log name typo in <code>WsRemoteEndpointImplServer</code> class,
+        caused by a copy-paste. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57788">57788</a>: Avoid NPE when looking up a class hierarchy without
+        finding anything. (remm)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make WebSocket client more robust when handling errors during the close
+        of a WebSocket session. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.62 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.62_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57759">57759</a>: Add information to the keyAlias documentation to make
+        it clear that the order keys are read from the keystore is
+        implementation dependent. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57864">57864</a>: Update the documentation web application to make it
+        clearer that hex values are not valid for cluster send options. Based on
+        a patch by Kyohei Nakamura. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.62 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.62_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a concurrency issue when a backup message that has all session data
+        and a backup message that has diff data are processing at the same time.
+        This fix ensures that <code>MapOwner</code> is set to
+        <code>ReplicatedMapEntry</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Clarify the handling of Copy message and Copy nodes. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Copy node does not need to send the entry data. It is enough to send
+        only the node information of the entry. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <code>ReplicatedMap</code> should send the Copy message when
+        replicating. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix behavior of <code>ReplicatedMap</code> when member has disappeared.
+        If map entry is primary, rebuild the backup members. If primary node of
+        map entry has disappeared, backup node is promoted to primary. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When a map member has been added to <code>ReplicatedMap</code>, make
+        sure to add it to backup nodes list of all other members. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.61 (violetagg)"><!--()--></a><a name="Tomcat_7.0.61_(violetagg)"><strong>Tomcat 7.0.61 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2015-04-07</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.61 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.61_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55988">55988</a>: Correct the check used for Java 8 JSSE
+        server-preferred TLS cipher suite ordering. Ensure that SSL parameters
+        are provided to <code>SSLServerSocket</code> and <code>SSLEngine</code>.
+        Patch provided by Ognjen Blagojevic. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.61 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.61_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57761">57761</a>: Ensure that the opening HTTP request is correctly
+        formatted when the WebSocket client connects to a server root. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)"><strong>Tomcat 7.0.60 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Clarify threaded usage of variables by removing volatile marker
+        in NonceInfo. Issue reported by Coverity Scan. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49785">49785</a>: Enable StartTLS connections for JNDIRealm.
+        (fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55988">55988</a>: Add support for Java 8 JSSE server-preferred TLS
+        cipher suite ordering. This feature requires Java 8
+        and is controlled by <code>useServerCipherSuitesOrder</code>
+        attribute on an HTTP connector.
+        Based upon patches provided by Ognjen Blagojevic. (schultz)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56438">56438</a>: Add logging that reports when a JAR is scanned for
+        TLDs but nothing is found so that Tomcat may be configured to skip this
+        JAR in future. Based on a patch by VIN. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56848">56848</a>: Use <code>Locale.forLanguageTag</code> to process
+        Locale headers when running on a Java 7 or later JRE. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57021">57021</a>: Improve logging in AprLifecycleListener and
+        jni.Library when Tomcat-Native DLL fails to load. Based on a patch by
+        Pravallika Peddi. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57180">57180</a>: Further fixes to support the use of arbitrary HTTP
+        methods with the CORS filter. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Warn about problematic setting of appBase. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+       <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57534">57534</a>: CORS Filter should only look at media type component of
+       Content-Type request header. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that user name checking in the optional SecurityListener is
+        case-insensitive (as documented) and than the case-insensitive
+        comparison is performed using the system default Locale. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When docBase refers internal war and unpackWARs is set to false, avoid
+        registration of the invalid redeploy resource that has been added ".war"
+        extension in duplicate. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If WAR exists, it is not necessary to trigger a reload when adding a
+        Directory. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56608">56608</a>: When deploying an external WAR, add watched resources
+        in the expanded directory based on whether the expanded directory is
+        expected to exist rather than if it does exist.
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+         When triggering a reload due to a modified watched resource, ensure
+         that multiple changed watched resources only trigger one reload rather
+         than a series of reloads.
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57601">57601</a>: Ensure that HEAD requests return the correct content
+        length (i.e. the same as for a GET) when the requested resource includes
+        a resource served by the Default servlet. (jboynes/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57602">57602</a>: Ensure that HEAD requests return the correct content
+        length (i.e. the same as for a GET) when the requested resource includes
+        a resource served by a servlet that extends <code>HttpServlet</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57621">57621</a>: When an async request completes, ensure that any
+        remaining request body data is swallowed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57637">57637</a>: Do not create unnecessary sessions when using
+        PersistentValve. (jboynes/fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57645">57645</a>: Correct a regression in the fix for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57190">57190</a> that incorrectly required the path passed to
+        <code>ServletContext.getContext(String)</code> to be an exact match to a
+        path to an existing context. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make sure that <code>unpackWAR</code> attribute of <code>Context</code>
+        is handled correctly in <code>HostConfig</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When deploying a WAR file that contains a context.xml file and
+        <code>unpackWARs</code> is <code>false</code> ignore any context.xml
+        file that may exist in an expanded directory associated with the WAR.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57675">57675</a>: Correctly quote strings when using the extended
+        access log. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57704">57704</a>: Fix potential NPEs during web application start/stop
+        when <code>org.apache.tomcat.InstanceManager</code> is not initialized.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add support for <code>LAST_ACCESS_AT_START</code> system property to
+        <code>SingleSignOn</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57723">57723</a>: Ensure that the Context name and path remain
+        consistent when adding a web application to an embedded Tomcat instance
+        via <code>Tomcat.addWebapp(Host,String,String,String)</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57724">57724</a>: Handle the case in the CORS filter where a user agent
+        includes an origin header for a non-CORS request. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Refactor Authenticator implementations to reduce code duplication.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When searching for SCIs
+        <code>o.a.catalina.Context.getParentClassLoader</code> will be used
+        instead of <code>java.lang.ClassLoader.getParent</code>. Thus one can
+        provide the correct parent class loader when running embedded Tomcat in
+        other environments such as OSGi. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57509">57509</a>: Improve length check when writing HTTP/1.1
+        response headers: reserve space for 4 extra bytes. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57540">57540</a>: Make TLS/SSL protocol available in a new request
+        attribute
+        (<code>org.apache.tomcat.util.net.secure_protocol_version</code>).
+        (Note that AJP connectors will require <tt>mod_jk</tt> 1.2.41 or later,
+        or an as-yet-unknown version of mod_proxy_ajp, or configure the proxy
+        to send the AJP_SSL_PROTOCOL request attribute to Tomcat. Please see
+        the bug comments for details.)
+        Based upon a patch provided by Ralf Hauser. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57544">57544</a>: Fix potential infinite loop when preparing a kept
+        alive HTTP connection for the next request. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57546">57546</a>: Ensure that a dropped network connection does not
+        leave references to the UpgradeProcessor associated with the connection
+        in memory. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57570">57570</a>: Make the processing of trailer headers with chunked
+        input optional and disabled by default. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When applying the <code>maxSwallowSize</code> limit to a connection read
+        that many bytes first before closing the connection to give the client a
+        chance to read the response. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent an async timeout being processed multiple times for the same
+        socket when running on slow and/or heavily loaded systems. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57581">57581</a>: Change statistics byte counter in coyote Request
+        object to be long to allow values above 2Gb. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a concurrency issue in the APR Poller that meant it was possible
+        under low load for a socket queued to be added to the Poller not to be
+        added for 10 seconds. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57638">57638</a>: Avoid an IllegalArgumentException when an AJP request
+        body chunk larger than the socket read buffer is being read. This
+        typically requires a larger than default AJP packetSize. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57674">57674</a>: Avoid a BufferOverflowException when an AJP response
+        body chunk larger than the socket write buffer is being written. This
+        typically requires a larger than default AJP packetSize. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Refactor Connector authentication (only used by AJP) into a separate
+        method. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57708">57708</a>: Implement a new feature for AJP connectors - Tomcat
+        Authorization. If the new tomcatAuthorization attribute is set to
+        <code>true</code> (it is disabled by default) Tomcat will take an
+        authenticated user name from the AJP protocol and use the appropriate
+        Realm for the request to authorize (i.e. add roles) to that user.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix an issue that meant that any pipe-lined data read by Tomcat before
+        an asynchronous request completed was lost during the completion of the
+        asynchronous request. This mean that the pipe-lined request(s) would be
+        lost and/or corrupted. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the minimum recommended version of the Tomcat Native library (if
+        used) to 1.1.33. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57136">57136</a>: Ensure only <code>\${</code> and <code>\#{</code> are
+        treated as escapes for <code>${</code> and <code>#{</code> rather than
+        <code>\$</code> and <code>\#</code> being treated as escapes for
+        <code>$</code> and <code>#</code> when processing literal expressions in
+        expression language. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57148">57148</a>: When coercing an object to a given type and a
+        <code>PropertyEditor</code> has been registered for the type correctly
+        coerce the empty string to <code>null</code> if the
+        <code>PropertyEditor</code> throws an exception. (kkolinko/markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove unnecessary method that always returns true. The domain filtering
+        works on <code>DomainFilterInterceptor</code>. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a bug in the <code>permessage-deflate</code> implementation that
+        meant that the incorrect op-codes were used if an uncompressed message
+        was converted into more than one compressed message. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix possible resource leaks by closing streams properly. Issues
+        reported by Coverity Scan. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56058">56058</a>: Add links to the AccessLogValve documentation for
+        configuring reverse proxies and/or Tomcat to ensure that the desired
+        information is used entered in the access log when Tomcat is running
+        behind a reverse proxy. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57503">57503</a>: Make clear that the JULI integration for log4j only
+        works with log4j 1.2.x. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove incorrect note from context configuration page in the
+        documentation web application that stated WAR files located outside the
+        appBase were never unpacked. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57644">57644</a>: Update examples to use Apache Standard Taglib 1.2.5.
+        (jboynes)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57683">57683</a>: Ensure that if a client aborts their connection to the
+        stock ticker example (the only way a client can disconnect), the example
+        continues to work for existing and new clients. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the documentation for deployOnStartup to make clear that if a
+        WAR file is updated while Tomcat is stopped and unpackWARs is true,
+        Tomcat will not detect the changed WAR file when it starts and will not
+        replace the unpacked WAR file with the contents of the updated WAR.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/Extras"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/Extras"><strong>Extras</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57377">57377</a>: Remove the restriction that prevented the use of SSL
+        when specifying a bind address with the JMXRemoteLifecycleListener. Also
+        enable SSL to be configured for the registry as well as the server.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make sure that refuse the messages from a different domain in
+        <code>DomainFilterInterceptor</code>. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.60 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.60_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Enhance bean factory used for JNDI resources. New attribute
+        <code>forceString</code> allows to support non-standard
+        string argument property setters. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix <code>TestAbstractAjpProcessor</code> unit test failures on
+        Windows. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Guard the digester from MbeansDescriptorsDigesterSource with its own
+        lock object. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57558">57558</a>: Add missing JAR in Ant task definition required by
+        the validate task. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        List names of Testsuites that have failed or skipped tests when
+        running tests with Ant. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57703">57703</a>: Update the <code>http-method</code> definition for
+        web applications using a Servlet 2.5 descriptor as per Servlet 2.5 MR 6.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Tomcat Native Library version 1.1.33 to pick up the Windows
+        binaries that are based on OpenSSL 1.0.1m and APR 1.5.1. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.59 (violetagg)"><!--()--></a><a name="Tomcat_7.0.59_(violetagg)"><strong>Tomcat 7.0.59 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2015-02-04</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.59 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.59_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57504">57504</a>: Initialize TLD locations cache when creating the
+        ServletContext. (jboynes)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.59 (violetagg)/Tribes"><!--()--></a><a name="Tomcat_7.0.59_(violetagg)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a possible deadlock when receiver thread invokes
+        <code>mapMemberAdded()</code> while ping thread invokes
+        <code>memberAlive()</code>. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.58 (violetagg)"><!--()--></a><a name="Tomcat_7.0.58_(violetagg)"><strong>Tomcat 7.0.58 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.58 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.58_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57173">57173</a>: Revert the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56953">56953</a> that broke
+        annotation scanning in some cases. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57178">57178</a>: The CORS filter now treats <code>null</code> as a
+        valid origin that matches <code>*</code>. Patch provided by Gregor
+        Zurowski. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57180">57180</a>: Do not limit the CORS filter to only accepting
+        requests that use an HTTP method defined in RFC 7231. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57190">57190</a>: Fix <code>ServletContext.getContext(String)</code>
+        when parallel deployment is used so that the correct ServletContext is
+        returned. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57208">57208</a>: Prevent NPE in JNDI Realm when no results are found
+        in a directory context for a user with specified user name. Based on
+        a patch provided by Jason McIntosh. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57209">57209</a>: Add a new attribute, userSearchAsUser to the JNDI
+        Realm. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57215">57215</a>: Ensure that the result of calling
+        <code>HttpServletRequest.getContextPath()</code> is neither decoded nor
+        normalized as required by the Servlet specification. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57216">57216</a>: Improve handling of invalid context paths. A context
+        path should either be an empty string or start with a
+        <code>'/'</code> and do not end with a
+        <code>'/'</code>. Invalid context path are automatically
+        corrected and a warning is logged. The <code>null</code> and
+        <code>"/"</code> values are now correctly changed to
+        <code>""</code>. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct message that is logged when load-on-startup servlet fails
+        to load. It was logging a wrong name. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57239">57239</a>: Correct several message typos. Includes patch by
+        vladk. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make the session id generator extensible by adding a
+        <code>SessionIdGenerator</code> interface, an abstract
+        base class and a standard implementation. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Back-port clarification from Servlet 3.1 specification that during
+        async processing an <code>IllegalStateException</code> should be thrown
+        if <code>getRequest()</code> or <code>getResponse()</code> is called
+        after <code>complete()</code> or <code>dispatch()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a concurrency issue in async processing. Ensure that a non-container
+        thread can not change the async state until the container thread has
+        completed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57252">57252</a>: Provide application configured error pages with a
+        chance to handle an async error before the built-in error reporting.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57281">57281</a>: Enable non-public Filter and Servlet classes to be
+        configured programmatically via the Servlet 3.0 API and then used
+        without error when running under a SecurityManager. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57308">57308</a>: Remove unnecessary calls to
+        <code>System.getProperty()</code> where more suitable API calls are
+        available. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add unit tests for RemoteAddrValve and RemoteHostValve. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Allow to configure RemoteAddrValve and RemoteHostValve to
+        adopt behavior depending on the connector port. Implemented
+        by optionally adding the connector port to the string compared
+        with the patterns <code>allow</code> and <code>deny</code>. Configured
+        using <code>addConnectorPort</code> attribute on valve. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Optionally trigger authentication instead of denial in
+        RemoteAddrValve and RemoteHostValve. This only works in
+        combination with <code>preemptiveAuthentication</code>
+        on the application context. Configured using
+        <code>invalidAuthenticationWhenDeny</code> attribute on valve. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent file descriptors leak and ensure that files are closed after
+        retrieving the last modification time. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57326">57326</a>: Enable <code>AsyncListener</code> implementations to
+        re-register themselves during <code>AsyncListener.onStartAsync</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57331">57331</a>: Allow ExpiresFilter to use "year" as synonym for
+        "years" in its configuration. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+          Improve SnoopServlet in unit tests. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+          Add RequestDescriptor class to unit tests.
+          Adjust TestRewriteValve to use RequestDescriptor. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+          Add more AJP unit tests. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57363">57363</a>: Log to stderr if LogManager is unable to read
+        configuration files rather than swallowing the exception silently.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57420">57420</a>: Make UEncoder a local variable in
+        DirContextURLConnection to make it threadsafe. Based on ideas from
+        kkolinko and violetagg. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57425">57425</a>: Don't add attributes with null value or name to the
+        replicated context. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57431">57431</a>: Enable usage of custom class for context creation when
+        using embedded tomcat. (fschumacher)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57446">57446</a>: Ensure that <code>ServletContextListener</code>s that
+        have limited access to <code>ServletContext</code> methods are called
+        with the same <code>ServletContext</code> instance for both
+        <code>contextInitialized()</code> and <code>contextDestroyed()</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57461">57461</a>: When an instance of
+        <code>org.apache.catalina.startup.VersionLoggerListener</code> logs the
+        result of <code>System.getProperty("java.home")</code> don't report it
+        in a manner that makes it look like the <code>JAVA_HOME</code>
+        environment variable. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        While closing streams for given resources ensure that if an exception
+        happens it will be handled properly. Issue is reported by Coverity Scan.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Change Response to use UEncoder instances with shared safeChars.
+        (fschumacher)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Allow <code>VersionLoggerListener</code> to log all system properties.
+        This feature is off by default. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.58 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.58_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57234">57234</a>: Make SSL protocol filtering to remove insecure
+        protocols case insensitive. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57265">57265</a>: Fix some potential concurrency issues with sendFile
+        and the NIO connector. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57324">57324</a>: If the client uses <code>Expect: 100-continue</code>
+        and Tomcat responds with a non-2xx response code, Tomcat also closes the
+        connection. If Tomcat knows the connection is going to be closed when
+        committing the response, Tomcat will now also send the
+        <code>Connection: close</code> response header. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57340">57340</a>: When using Comet, ensure that Socket and SocketWrapper
+        are only returned to their respective caches once on socket close (it is
+        possible for multiple threads to call close concurrently). (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57446">57446</a>: Ensure that <code>ServletContextListener</code>s that
+        have limited access to <code>ServletContext</code> methods are called
+        with the same <code>ServletContext</code> instance for both
+        <code>contextInitialized()</code> and <code>contextDestroyed()</code>.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.58 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.58_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        CVE-2014-7810:
+        Do not use a privileged code block when evaluating EL expressions
+        when running under a security manager, which allowed to bypass code
+        restrictions. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix an issue with BeanELResolver when running under a security
+        manager. Some classes may not be accessible but may have accessible
+        interfaces. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57316">57316</a>: Fix JspC when directory name contains a character
+        sequence that appears to be URL encoded. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.58 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.58_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In order to enable define in <code>Cluster</code> element,
+        <code>ClusterSingleSignOn</code> implements <code>ClusterValve</code>.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix mbean descriptor of <code>ClusterSingleSignOn</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57473">57473</a>: Add sanity check to FarmWebDeployer's WarWatcher to
+        detect suspected incorrect permissions on the watch directory. (schultz)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.58 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.58_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct multiple issues with the flushing of batched messages that could
+        lead to duplicate and/or corrupt messages. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly implement headers case insensitivity. (markt/remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow optional use of user extensions. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow using partial binary message handlers. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Limit ping/pong message size. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow configuration of the time interval for the periodic event. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        More accurate annotations processing. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow optional default for origin header in the client. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57490">57490</a>: Make it possible to use Tomcat's WebSocket client
+        within a web application when running under a SecurityManager. Based on
+        a patch by Mikael Sterner. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add some debug logging to the WebSocket session to track session
+        creation and session closure. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.58 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.58_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update documentation for CGI servlet. Recommend to copy the servlet
+        declaration into web application instead of enabling it globally.
+        Correct documentation for cgiPathPrefix. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve HTML version of build instructions and align with
+        BUILDING.txt. Document creating second Eclipse project to compile
+        WebSocket classes with Java 7 (<code>ide-eclipse-websocket</code>
+        target added in 7.0.56). (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve Tomcat Manager documentation. Rearrange, add section on
+        HTML GUI, document /expire command and Server Status page. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix ambiguity of section links on Valves configuration reference page.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57238">57238</a>: Update information on SSL/TLS on Security and SSL
+        documentation pages. Based on patch by Glen Peterson. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57261">57261</a>: Add vminfo and threaddump commands to Manager
+        application. Implement <code>VminfoTask</code> and
+        <code>ThreaddumpTask</code> Ant tasks. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57323">57323</a>: Correct display of outdated sessions in sessions
+        count listing in Manager application. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add document of <code>ClusterSingleSignOn</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Clarify documentation for <code>useBodyEncodingForURI</code>
+        attribute of a connector. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.58 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.58_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        When downloading required libraries at build time, use random name
+        for temporary file and automatically create destination directory
+        (<code>base.path</code>). (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update optional Checkstyle library to 6.1.1. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Simplify <code>setproxy</code> task in <code>build.xml</code>.
+        Taskdef there is not needed since Ant 1.8.2. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve Java 7 support in <code>build.xml</code>. Check whether
+        the specified ${java.7.home} is valid. By default use Java that
+        runs Ant (${java.home}) instead of the one found on $PATH
+        to run JUnit tests. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57344">57344</a>: Provide sha1 checksum files for Tomcat downloads.
+        Correct filename patterns for apache-tomcat-*-embed.tar.gz archive
+        to exclude an *.asc file. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)"><strong>Tomcat 7.0.57 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2014-11-11</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=47919">47919</a>: Extend the information logged when Tomcat starts to
+        optionally log the values of command line arguments (enabled by
+        default) and environment variables (disabled by default). Note that
+        the values added to CATALINA_OPTS and JAVA_OPTS environment variables
+        will be logged, as they are used to build up the command line. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56401">56401</a>: Log version information when Tomcat starts.
         (markt/kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        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)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57022">57022</a>: Ensure SPNEGO authentication continues to work with
+        the JNDI Realm using delegated credentials with recent Oracle JREs.
+        (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        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. (kkolinko)
+        Correct a couple of NPEs in the JNDI Realm that could be triggered with
+        when not specifying a roleBase and enabling roleSearchAsUser. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56369">56369</a>: Ensure that removing an MBean notification listener
+        Remove the unnecessary registration of context.xml as a redeploy
+        resource. The context.xml having an external docBase has already been
+        registered as a redeploy resources at first. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the previous fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56401">56401</a>. Avoid logging version
+        information in the constructor since it then gets logged at undesirable
+        times such as when using <code>StoreConfig</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57105">57105</a>: When parsing web.xml do not limit the buffer element
+        of the jsp-property-group element to integer values as the allowed 
+        values are <code>&lt;number&gt;kb</code> or <code>none</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the minimum required version of the Tomcat Native library (if
+        used) to 1.1.32. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57144">57144</a>: Improve ClientAbortException to provide non-null
+        message. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        AsyncContext should remain usable until fireOnComplete is called. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        AsyncContext createListener should wrap any instantiation exception
+        using a ServletException. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53952">53952</a>: Add support for TLSv1.1 and TLSv1.2 for APR connector.
+        Based upon a patch by Marcel &#352;ebek. This feature requires
+        Tomcat Native library 1.1.32 or later. (schultz/jfclere)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Disable SSLv3 by default for JSSE based HTTPS connectors (BIO and NIO).
+        The change also ensures that SSLv2 is disabled for these connectors
+        although SSLv2 should already be disabled by default by the JRE. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Disable SSLv3 by default for the APR/native HTTPS connector. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Do not increase remaining counter at end of stream in
+        IdentityInputFilter. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Async state MUST_COMPLETE should still be started. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57099">57099</a>: Ensure that semi-colons are not permitted in JSP
+        import page directives. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid possible integer overflows reported by Coverity Scan. (fschumacher)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57054">57054</a>: Correctly handle the case in the WebSocket client
+        when the HTTP response to the upgrade request can not be read in a
+        single pass; either because the buffer is too small or the server sent
+        the response in multiple packets. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix client subprotocol handling. (remm)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add null checks for arguments in remote endpoint. (remm/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57091">57091</a>: Work around the behaviour of the Oracle JRE when
+        creating new threads in an applet environment that breaks the WebSocket
+        client implementation. Patch provided by Niklas Hallqvist. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57118">57118</a>: Ensure that that an <code>EncodeException</code> is
+        thrown by <code>RemoteEndpoint.Basic.sendObject(Object)</code> rather
+        than an <code>IOException</code> when no suitable <code>Encoder</code>
+        is configured for the given Object. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct documentation for <code>ServerCookie.ALLOW_NAME_ONLY</code>
+        system property. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57049">57049</a>: Clarified that <code>jvmRoute</code> can be set in
+        <code>&lt;Engine&gt;</code>'s <code>jvmRoute</code> or in a system
+        property. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct version of Java WebSocket mentioned in documentation
+        (s/1.0/1.1/). (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        In examples web application move Async and Comet examples from JSP
+        to Servlet examples page. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Suppress timestamp comments and enable charset header in Javadoc.
+        (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57079">57079</a>: Use Tomcat version number for jdbc-pool module when
+        building and shipping the module as part of Tomcat. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix broken overview page in javadoc generated via "javadoc" task in
+        jdbc-pool build.xml file. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.57 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.57_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56079">56079</a>: The Apache Tomcat Windows service and the Apache
+        Tomcat Windows service monitor application are now digitally
+        signed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix timestamps in Tomcat build and jdbc-pool to use 24-hour format
+        instead of 12-hour one and use UTC timezone. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve Tomcat build script to ensure that only one ecj-nn.jar file
+        is present in Tomcat <code>lib</code> directory when Eclipse JDT
+        Compiler is updated to a new version. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56596">56596</a>: Update to Tomcat Native Library version 1.1.32 to
+        pick up the Windows binaries that are based on OpenSSL 1.0.1j and APR
+        1.5.1. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        In Tomcat tests: log name of the current test method at start time.
+        (kkolinko) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.56 (violetagg)"><!--()--></a><a name="Tomcat_7.0.56_(violetagg)"><strong>Tomcat 7.0.56 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2014-10-06</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.56 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.56_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When scanning class files (e.g. for annotations) and reading the number
+        of parameters in a <code>MethodParameters</code> structure only read a
+        single byte (rather than two bytes) as per the JVM specification. Patch
+        provided by Francesco Komauli. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow the JNDI Realm to start even if the directory is not available.
+        The directory not being available is not fatal once the Realm is started
+        and it need not be fatal when the Realm starts. Based on a patch by
+        C&eacute;dric Couralet. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56736">56736</a>: Avoid an incorrect <code>IllegalStateException</code>
+        if the async timeout fires after a non-container thread has called
+        <code>AsyncContext.dispatch()</code> but before a container thread
+        starts processing the dispatch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56739">56739</a>: If an application handles an error on an application
+        thread during asynchronous processing by calling
+        <code>HttpServletResponse.sendError()</code>, then ensure that the
+        application is given an opportunity to report that error via an
+        appropriate application defined error page if one is configured. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56771">56771</a>: When lookup for a resource in all the alternate or
+        backup <code>javax.naming.directory.DirContext</code>,
+        <code>javax.naming.NameNotFoundException</code> will be thrown at the
+        end of the search if the resource is not available in these alternate
+        or backup <code>javax.naming.directory.DirContext</code>. Based on a
+        patch by Sheldon Shao. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56796">56796</a>: Remove unnecessary sleep when stopping a web
+        application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56801">56801</a>: Improve performance of
+        <code>org.apache.tomcat.util.file.Matcher</code> which is to filter JARs
+        for scanning during web application start. Based on a patch by Sheldon
+        Shao. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56825">56825</a>: Enable pre-emptive authentication to work with the
+        SSL authenticator. Based on a patch by jlmonteiro. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56857">56857</a>: Fix thread safety issue when calling ServletContext
+        methods while running under a security manager. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56882">56882</a>: Add testcase for processing of forwards and includes
+        when Context have been reloaded. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56900">56900</a>: Fix some potential resource leaks when reading
+        property files reported by Coverity Scan. Based on patches provided by
+        Felix Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56902">56902</a>: Fix a potential resource leak in the Default Servlet
+        reported by Coverity Scan. Based on a patch provided by Felix
+        Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56903">56903</a>: Correct the return value for
+        <code>StandardContext.getResourceOnlyServlets()</code> so that multiple
+        names are separated by commas. Identified by Coverity Scan and fixed
+        based on a patch by Felix Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fixed the multipart elements merge operation performed during web
+        application deployment. Identified by Coverity Scan. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the information written by
+        <code>ExtendedAccessLogValve</code> when a format token x-O(XXX) is
+        used so that multiple values for a header XXX are separated by commas.
+        Identified by Coverity Scan. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a potential resource leak when reading MANIFEST.MF file for
+        extension dependencies reported by Coverity Scan. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly handle multiple <code>accept-language</code> headers rather
+        than just using the first header to determine the user's preferred
+        Locale. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix some potential resource leaks when reading properties, files and
+        other resources. Reported by Coverity Scan. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When using parallel deployment and <code>undeployOldVersions</code>
+        feature is enabled on a Host, correctly undeploy context of old
+        version. Make sure that Tomcat does not undeploy older Context if
+        current context is not running. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When deploying war, add XML file in the config base to the redeploy
+        resources if war does not have META-INF/context.xml or
+        <code>deployXML</code> is false. If  XML file is created in the config
+        base, redeploy will occur. (kfujino)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Various changes to reduce unnecessary code in Tomcat's copy of
+        Apache Commons BCEL to reduce the time taken for annotation scanning
+        when web applications start. Includes contributions from kkolinko and
+        hzhang9. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56938">56938</a>: Ensure web applications that have mixed case context
+        paths and are deployed as directories are correctly removed on undeploy
+        when running on a case sensitive file system. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57004">57004</a>: Add <code>stuckThreadCount</code> property to
+        <code>StuckThreadDetectionValve</code>'s JMX bean. Patch provided by
+        Ji&#345;&iacute; Pejchal. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57011">57011</a>: Ensure that the request and response are correctly
+        recycled when processing errors during async processing. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=57016">57016</a>: When using the <code>PersistentValve</code> do not
+        remove sessions from the store when persisting them. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.56 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.56_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56780">56780</a>: Enable Tomcat to start when using SSL with an IBM JRE
+        in strict SP800-131a mode. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56910">56910</a>: Prevent the invalid value of <code>-1</code> being
+        used for <code>maxConnections</code> with APR connectors. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that <code>AjpNioProtocol</code> and <code>AjpAprProtocol</code>
+        enable the <code>KeepAliveTimeout</code>. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.56 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.56_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=43001">43001</a>: Enable the JspC Ant task to set the JspC option
+        <code>mappedFile</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56797">56797</a>: When matching a method in an EL expression, do not
+        treat bridge methods as duplicates of the method they bridge to. In this
+        case always call the target of the bridge method. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a logic error in the <code>JasperElResolver</code>. There was no
+        functional impact but the code was less efficient as a result of the
+        error. Based on a patch by martinschaef. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the implementation of
+        <code>javax.servlet.jsp.PageContext.include(String)</code>
+        and
+        <code>javax.servlet.jsp.PageContext.include(String, boolean)</code>
+        will throw <code>IOException</code> when an I/O error occur during
+        the operation. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56908">56908</a>: Fix some potential resource leaks when reading jar
+        files. Reported by Coverity Scan. Based on patch provided by Felix
+        Schumacher. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56991">56991</a>: Deprecate the use of a request attribute to pass a
+        &lt;jsp-file&gt; declaration to Jasper and prevent an infinite loop
+        if this technique is used in conjunction with an include. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a potential resource leak in JDTCompiler when checking whether
+        a resource is a package. Reported by Coverity Scan. (fschumacher)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.56 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.56_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56446">56446</a>: Clearer handling of exceptions when calling a method
+        on a POJO based WebSocket endpoint. Based on a suggestion by Eugene
+        Chung. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56746">56746</a>: Allow secure WebSocket client threads to use the
+        current context class loader rather than explicitly setting it to the
+        class loader that loaded the WebSocket implementation. This allows
+        WebSocket client connections from within web applications to access,
+        amongst other things, the JNDI resources associated with the web
+        application. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56905">56905</a>: Make destruction on web application stop of thread
+        group used for WebSocket connections more robust. (kkolinko/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56907">56907</a>: Ensure that client IO threads are stopped if a secure
+        WebSocket client connection fails. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When a WebSocket client attempts to write to a closed connection, handle
+        the resulting <code>IllegalStateException</code> in a manner consistent
+        with the handling of an <code>IOException</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for the <code>permessage-deflate</code> extension. This is
+        currently limited to decompressing incoming messages on the server side.
+        It is expected that support will be extended to outgoing messages and to
+        the client side shortly. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Extend support for the <code>permessage-deflate</code> extension to
+        compression of outgoing messages on the server side. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56982">56982</a>: Return the actual negotiated extensions rather than an
+        empty list for <code>Session.getNegotiatedExtensions()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the WebSocket implementation to support the Java WebSocket
+        specification version 1.1. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.56 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.56_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the label in the list of sessions by idle time for the bin that
+        represents the idle time immediately below the maximum permitted idle
+        time when using the expire command of the Manager application. (markt) 
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the Windows authentication documentation after some additional
+        testing to answer the remaining questions. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a couple of broken links in the Javadoc. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.56 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.56_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56788">56788</a>: Display the full version in the list of installed
+        applications when installed via the Windows installer package. Patch
+        provided by Alexandre Garnier. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56829">56829</a>: Add the ability for users to define their own values
+        for <code>_RUNJAVA</code> and <code>_RUNJDB</code> environment
+        variables. Be more strict with executable filename on Windows
+        (s/java/java.exe/). Based on a patch by Neeme Praks. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56895">56895</a>: Correctly compose <code>JAVA_OPTS</code> in
+        <code>catalina.bat</code> so that escape sequences are preserved. Patch
+        by Lucas Theisen. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56988">56988</a>: Allow to use relative path in <code>base.path</code>
+        setting when building Tomcat. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56990">56990</a>: Ensure that the <code>ide-eclipse</code> build target
+        downloads all the libraries required by the default Eclipse
+        configuration files and configures Eclipse to use Java 6 for the
+        project. Add build target <code>ide-eclipse-websocket</code> that
+        creates a separate linked project that compiles websocket classes
+        of Tomcat 7 with Java 7 compiler. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.55 (violetagg)"><!--()--></a><a name="Tomcat_7.0.55_(violetagg)"><strong>Tomcat 7.0.55 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2014-07-27</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.55 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.55_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=44312">44312</a>: Log an error if there is a conflict between Host and
+        Alias names. Improve host management methods in <code>Mapper</code>
+        to avoid occasionally removing a wrong host. Check that host management
+        operations are performed on the host and not on an alias. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55282">55282</a>: Ensure that one and the same application listener is
+        added only once when starting the web application. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56461">56461</a>: New <code>failCtxIfServletStartFails</code> attribute
+        on Context and Host configuration to force the context startup to fail
+        if a load-on-startup servlet fails its startup. (slaurent)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56526">56526</a>: Improved the <code>StuckThreadDetectionValve</code> to
+        optionally interrupt stuck threads to attempt to unblock them.
+        (slaurent)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56545">56545</a>: Pre-load an additional class, the loading of which
+        may otherwise be triggered by a web application which in turn would
+        trigger an exception when running under a security manager. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56578">56578</a>: Correct regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56339">56339</a>
+        that prevented sessions from expiring when using clustering. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56588">56588</a>: Update deprecation of Context.addApplicationListener()
+        methods according to changes in Tomcat 8. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56600">56600</a>: In WebdavServlet: Do not waste time generating
+        response for broken PROPFIND request. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Provide a better error message when asynchronous operations are not
+        supported by a filter or servlet. Patch provided by Romain Manni-Bucau.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56606">56606</a>: User entries in <code>tomcat-users.xml</code> file
+        are recommended to use "username" attribute rather than legacy "name"
+        attribute. Fix inconsistencies in Windows installer, examples. Update
+        digester rules and documentation for <code>MemoryRealm</code>.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56611">56611</a>: Refactor code to remove inefficient calls to
+        <code>Method.isAnnotationPresent()</code>. Based on a patch by Jian Mou.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56653">56653</a>: Fix concurrency issue with lists of contexts in
+        <code>Mapper</code> when stopping Contexts. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56657">56657</a>: When using parallel deployment, if the same session id
+        matches different versions of a web application, prefer the latest
+        version. Ensure that remapping selects the version that we expect.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Assert that mapping result object is empty before performing mapping
+        work in <code>Mapper</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56658">56658</a>: Avoid delay between registrations of mappings for
+        context and for its servlets. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56665">56665</a>: Correct the generation of the effective web.xml when
+        elements contain an empty string as value. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56666">56666</a>: When clearing the SSO cookie use the same values for
+        domain, path, httpOnly and secure as were used to set the SSO cookie.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56677">56677</a>: Ensure that
+        <code>HttpServletRequest.getServletContext()</code> returns the correct
+        value during a cross-context dispatch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56684">56684</a>: Ensure that Tomcat does not shut down if the socket
+        waiting for the shutdown command experiences a
+        <code>SocketTimeoutException</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When the current PathInfo is modified as a result of dispatching a
+        request, ensure that a call to
+        <code>HttpServletRequest.getPathTranslated()</code> returns a value that
+        is based on the modified PathInfo. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56698">56698</a>: When persisting idle sessions, only persist newly idle
+        sessions. Patch provided by Felix Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56710">56710</a>: Do not map requests to servlets when context is
+        being reloaded. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56712">56712</a>: Fix session idle time calculations in
+        <code>PersistenceManager</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56717">56717</a>: Fix duplicate registration of
+        <code>MapperListener</code> during repeated starts of embedded Tomcat.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56724">56724</a>: Write an error message to Tomcat logs if container
+        background thread is aborted unexpectedly. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.55 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.55_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56518">56518</a>: When using NIO, do not attempt to write to the socket
+        if the thread is marked interrupted as this will lead to a connection
+        limit leak. This fix was based on analysis of the issue by hanyong.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56521">56521</a>: Re-use the asynchronous write buffer between writes to
+        reduce allocation and GC overhead. Based on a patch by leonzhx. Also
+        make the buffer size configurable and remove copying of data within
+        buffer when the buffer is only partially written on a subsequent write.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a copy/paste error and return a 500 response rather than a 400
+        response when an internal server error occurs on early stages of
+        request processing. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56582">56582</a>: Use switch(actionCode) in processors instead of a
+        chain of "elseif"s. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix CVE-2014-0227:
+        Various improvements to ChunkedInputFilter including clean-up, i18n for
+        error messages and adding an error flag to allow subsequent attempts at
+        reading after an error to fail fast. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If request contains an unrecognized Expect header, respond with error
+        417 (Expectation Failed), according to RFC2616 chapter 14.20. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When an error occurs after the response has been committed close the
+        connection immediately rather than attempting to finish the response to
+        make it easier for the client to differentiate between a complete
+        response and one that failed part way though. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56620">56620</a>: Avoid bogus access log entries when pausing the NIO
+        HTTP connector and ensure that access log entries generated by error
+        conditions use the correct request start time. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Fix CVE-2014-0230:
+        Add a new limit, defaulting to 2MB, for the amount of data Tomcat will
+        swallow for an aborted upload. The limit is configurable by
+        <code>maxSwallowSize</code> attribute of an HTTP connector. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Allow to configure <code>maxSwallowSize</code> attribute of an HTTP
+        connector via JMX. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56661">56661</a>: Fix <code>getLocalAddr()</code> for AJP connectors.
+        The complete fix is only available with a recent AJP forwarder like
+        the forthcoming mod_jk 1.2.41. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=59451">59451</a>: Correct Javadoc for <code>MessageBytes</code>. Patch
+        provided by Kyohei Nakamura. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.55 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.55_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56334#c15">56334#c15</a>: Fix a regression in EL parsing when quoted string
+        follows a whitespace. (kkolinko/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56543">56543</a>: Update to the Eclipse JDT Compiler 4.4. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56561">56561</a>: Avoid <code>NoSuchElementException</code> while handling
+        attributes with empty string value. (violetagg)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56581">56581</a>: If an error on a JSP page occurs when response has
+        already been committed, do not clear the buffer of JspWriter, but flush
+        it. It will make more clear where the error occurred. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56612">56612</a>: Correctly parse two consecutive escaped single quotes
+        when used in UEL expression in a JSP. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Move code that parses EL expressions within JSP template text from
+        <code>Parser</code> to <code>JspReader</code> class for better
+        performance. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.55 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.55_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56577">56577</a>: Improve the executor configuration used for the
+        callbacks associated with asynchronous writes. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.55 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.55_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Set the path for cookies created by the examples web application so they
+        only returned to the examples application. This reduces the opportunity
+        for using such cookies for malicious purposes should the advice to
+        remove the examples web application from security sensitive systems be
+        ignored. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Attempt to obfuscate session cookie values associated with other web
+        applications when viewing HTTP request headers with the Request Header
+        example from the examples web application. This reduces the opportunity
+        to use this example for malicious purposes should the advice to remove
+        the examples web application from security sensitive systems be ignored.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.55 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.55_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update optional Checkstyle library to 5.7. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56685">56685</a>: Add quotes necessary for <code>daemon.sh</code> to
+        work correctly on Solaris. Based on a suggestion by lfuka. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56596">56596</a>: Update to Tomcat Native Library version 1.1.31 to pick
+        up the Windows binaries that are based on OpenSSL 1.0.1h. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.54 (violetagg)"><!--()--></a><a name="Tomcat_7.0.54_(violetagg)"><strong>Tomcat 7.0.54 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2014-05-22</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.54 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.54_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56027">56027</a>: Add more options for managing FIPS mode in the
+        AprLifecycleListener. (schultz/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56321">56321</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56339">56339</a>: Avoid an infinite loop if an application calls
+        <code>session.invalidate()</code> from the session destroyed event for
+        that session. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56365">56365</a>: Simplify file name pattern matching code in
+        <code>StandardJarScanner</code>. Ignore leading and trailing whitespace
+        and empty strings when configuring patterns. Improve documentation.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56369">56369</a>: Ensure that removing an MBean notification listener
         reverts all the operations performed when adding an MBean notification
         listener. (markt)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Only create XML parsing objects if required and fix associated potential
-        memory leak in the default Servlet. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Ensure that a TLD parser obtained from the cache has the correct value
-        of <code>blockExternal</code>. (markt/kkolinko)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56382">56382</a>: Information about finished deployment and its execution
+        time is added to the log files. Patch is provided by Danila Galimov.
+        (violetagg)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56383">56383</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix CVE-2014-0119:
+        Only create XML parsing objects if required and fix associated potential
+        memory leak in the default Servlet.
         Extend XML factory, parser etc. memory leak protection to cover some
         additional locations where, theoretically, a memory leak could occur.
-        (markt)
+        Ensure that a TLD parser obtained from the cache has the correct value
+        of <code>blockExternal</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56409">56409</a>: Avoid <code>StackOverflowError</code> on non-Windows
+        systems if a file named <code>\</code> is encountered when scanning for
+        TLDs. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56430">56430</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56441">56441</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56451">56451</a>: Make resources accessed via a context alias accessible
+        via JNDI in the same way standard resources are available. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56463">56463</a>: 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)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
         Add the <code>org.apache.naming</code> package to the packages requiring
@@ -88,247 +4236,985 @@
         Make the naming context tokens for containers more robust. Require
         RuntimePermission when introducing a new token. (markt/kkolinko)
       </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56472">56472</a>: Allow NamingContextListener to clean up on stop if its
+        start failed. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56492">56492</a>: Avoid eclipse debugger pausing on uncaught exceptions
+        when tomcat renews its threads. (slaurent)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Minor fixes to <code>ThreadLocalLeakPreventionListener</code>. Do not
+        trigger threads renewal for failed contexts. Do not ignore
+        <code>threadRenewalDelay</code> setting. Improve documentation. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct regression introduced in <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=797162">r797162</a> that broke
+        authentication of users when using the
+        <code>JAASMemoryLoginModule</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56501">56501</a>: <code>HttpServletRequest.getContextPath()</code>
+        should return the undecoded context path used by the user agent. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56523">56523</a>: When using SPNEGO authentication, log the exceptions
+        associated with failed user logins at debug level rather than error
+        level. (markt)
+      </td></tr>
+     <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+       <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56536">56536</a>: Ensure that
+       <code>HttpSessionBindingListener.valueUnbound()</code> uses the correct
+       class loader when the <code>SingleSignOn</code> valve is used. (markt) 
+     </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.40/Coyote"><!--()--></a><a name="Tomcat_6.0.40/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.54 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.54_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        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)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56399">56399</a>: Assert that both Coyote and Catalina request objects
+        have been properly recycled. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix possible overflow when parsing long values from a byte array.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56363">56363</a>: Update to version 1.1.30 of Tomcat Native library.
-        The minimum required version of this library for APR connector is now
-        1.1.30. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56416">56416</a>: Correct documentation for default value of socket
+        linger for the AJP and HTTP connectors. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.40/Jasper"><!--()--></a><a name="Tomcat_6.0.40/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.54 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.54_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Change the default behaviour of JspC to block XML external entities by
-        default. (kkolinko) 
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56334">56334</a>: Fix a regression in the handling of back-slash
+        escaping introduced by the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55735">55735</a>. (markt/kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Restore the validateXml option to Jasper that was previously renamed
-        validateTld. Both options are now supported. validateXml controls the
-        validation of web.xml files when Jasper parses them and validateTld
-        controls the validation of *.tld files when Jasper parses them. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54475">54475</a>: Add Java 8 support to SMAP generation for JSPs. Patch
-        by Robbie Gibson. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56010">56010</a>: Don't throw an
-        <code>IllegalArgumentException</code> when
-        <code>JspFactory.getPageContext</code> is used with
-        <code>JspWriter.DEFAULT_BUFFER</code>. Based on a patch by Eugene Chung.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56425">56425</a>: 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)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56265">56265</a>: Do not escape values of dynamic tag attributes
-        containing EL expressions. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56283">56283</a>: Add support for running Tomcat 6 with
-        ecj-P20140317-1600.jar (as drop-in replacement for ecj-4.3.1.jar). Add
-        support for value "1.8" for the <code>compilerSourceVM</code> and
-        <code>compilerTargetVM</code> options. Note that ecj-P20140317-1600.jar
-        can only be used when running with Java 6 or later. The "1.8" options
-        make sense only when running with Java 8 (or later). (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56334">56334</a>: Fix a regression in the handling of back-slash
-        escaping introduced by the fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55735">55735</a>. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         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)
       </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.40/Cluster"><!--()--></a><a name="Tomcat_6.0.40/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
-        Refactor <code>AbstractReplicatedMap</code> and related classes to
-        enable Tomcat 6 to be compiled using Java 8. (markt)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56529">56529</a>: Avoid <code>NoSuchElementException</code> while handling
+        attributes with empty string value in custom tags. Patch provided by
+        Hariprasad Manchi. (violetagg)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.40/Web applications"><!--()--></a><a name="Tomcat_6.0.40/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.54 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.54_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove cluster and replicationValve from cluster manager template. These
+        instance are not necessary to template. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add support for cross context session replication to
+        <code>org.apache.catalina.ha.session.BackupManager</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        There is no need to set cluster instance when
+        <code>SimpleTcpCluster.unregisterClusterValve</code> is called.
+        Set null than cluster instance for cleanup. (kfujino)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Backport refactoring of <code>AbstractReplicatedMap</code> to implement
+        <code>Map</code> rather than extend <code>ConcurrentHashMap</code> to
+        enable Tomcat 7 to be built with Java 8. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.54 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.54_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56343">56343</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56093">56093</a>: Documentation for SSLValve. (markt/kkolinko)
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56449">56449</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56458">56458</a>: Report WebSocket sessions that are created over secure
+        connections as secure rather than as not secure. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.54 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.54_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add Support for <code>copyXML</code> attribute of Host to Host Manager.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Correct documentation on Windows service options, aligning it with
         Apache Commons Daemon documentation. (kkolinko)
       </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add support for <code>version-major</code>,
-        <code>version-major-minor</code> tags in documentation XSLT, to simplify
-        documentation backports. (kkolinko)
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55215">55215</a>: Improve log4j configuration example. Clarify access
+        logging documentation. Based on patches provided by Brian Burch.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55383">55383</a>: Backport improved HTML markup for tables and code
+        fragments from Tomcat 8 documentation. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56418">56418</a>: Ensure that the Manager web application does not
+        report success for a web application deployment that fails. (slaurent)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Fix target and rel attributes on links in documentation. They were
         lost during XSLT transformation. (kkolinko)
       </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve valves documentation. Split valves into groups. (kkolinko)
+      </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.40/Other"><!--()--></a><a name="Tomcat_6.0.40/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.54 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.54_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56363">56363</a>: Update to version 1.1.30 of Tomcat Native library.
+        (schultz)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update package renamed Apache Commons BCEL to r1593495 to pick up some
+        additional changes for Java 7 support and some code clean up. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        In tests: allow to configure directory where JUnit reports and access
+        log are written to. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.53 (violetagg)"><!--()--></a><a name="Tomcat_7.0.53_(violetagg)"><strong>Tomcat 7.0.53 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2014-03-30</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.53 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.53_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make it easier for applications embedding and/or extending Tomcat to
+        modify the <code>javaseClassLoader</code> attribute of the
+        <code>WebappClassLoader</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the robustness of web application undeployment based on some
+        code analysis triggered by the report for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54315">54315</a>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56219">56219</a>:
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56190">56190</a>: The response should be closed (i.e. no further output
+        is permitted) when a call to <code>AsyncContext.complete()</code> takes
+        effect. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56236">56236</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56246">56246</a>: Fix NullPointerException in MemoryRealm when
+        authenticating an unknown user. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56248">56248</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix CVE-2014-0096:
+        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)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a work around for validating XML documents (often TLDs) that use
+        just the file name to refer to the JavaEE schema on which they
+        are based. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56293">56293</a>: Cache resources loaded by the class loader from
+        <code>/META-INF/services/</code> for better performance for repeated
+        look ups. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.53 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.53_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53119">53119</a>: Make sure the NIO AJP output buffer is cleared on any
+        error to prevent any possible overflow if it is written to again before
+        the connection is closed. This extends the original fix for the
+        APR/native output buffer to the NIO connector. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56172">56172</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56213">56213</a>: Reduce garbage collection when the NIO connector is
+        under heavy load. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix CVE-2014-0075:
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix CVE-2014-0099:
+        Fix possible overflow when parsing long values from a byte array.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.53 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.53_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54475">54475</a>: Add Java 8 support to SMAP generation for JSPs. Patch
+        by Robbie Gibson. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55483">55483</a>: Improve handing of overloaded methods and constructors
+        in expression language implementation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56208">56208</a>:
+        Restore the validateXml option to Jasper that was previously renamed
+        validateTld. Both options are now supported. validateXml controls the
+        validation of web.xml files when Jasper parses them and validateTld
+        controls the validation of *.tld files when Jasper parses them. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56223">56223</a>: Throw an <code>IllegalStateException</code> if a call
+        is made to <code>ServletContext.setInitParameter()</code> after the
+        ServletContext has been initialized. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56265">56265</a>: Do not escape values of dynamic tag attributes
+        containing EL expressions. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make the default compiler source and target versions for JSPs Java 6
+        since Tomcat 7 requires Java 6 as a minimum. (markt) 
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56283">56283</a>: 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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.53 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.53_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid a possible deadlock when one thread is shutting down a connection
+        while another thread is trying to write to it. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Call onError if an exception is thrown calling onClose when closing
+        a session. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.53 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.53_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        In the documentation: add support for several documentation tags from
+        Tomcat 8. Such as <code>&lt;version-major/&gt;</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56093">56093</a>: Add the SSL Valve to the documentation web
+        application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56217">56217</a>: Improve readability by using left alignment for the
+        table cell containing the request information on the Manager application
+        status page. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+         Add support for <code>LAST_ACCESS_AT_START</code> system property to
+         Manager web application. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+         Add definition of <code>org.apache.catalina.ant.FindLeaksTask</code>.
+         (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56273">56273</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56304">56304</a>: Add a note to the documentation about not using
+        WebSocket with BIO HTTP in production. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.53 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.53_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56143">56143</a>: Improve <code>service.bat</code> so that it can be
+        launched from a non-UAC console. This includes using a single call to
+        <code>tomcat7.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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix regression in 7.0.52: when using <code>service.bat install</code>
+        to install the service the values for --StdOutput, --StdError options
+        were passed as blank instead of "auto". (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Simplify Windows *.bat files: remove %OS% checks, as java 6 does
+        not run on ancient non-NT operating systems. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56137">56137</a>: Explicitly use the BIO connector in the SSL example in
+        server.xml so it doesn't break if APR is enabled. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56139">56139</a>: Avoid a web application class loader leak in some unit
+        tests when running on Windows. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct build script to avoid building JARs with empty packages. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Allow to limit JUnit test run to a number of selected test case
+        methods. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56189">56189</a>: Remove used file cpappend.bat from the distribution.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.52 (violetagg)"><!--()--></a><a name="Tomcat_7.0.52_(violetagg)"><strong>Tomcat 7.0.52 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2014-02-17</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.52 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.52_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Generate a valid root element for the effective web.xml for a web
+        application for all supported versions of web.xml. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.52 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.52_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Pull up <code>SocketWrapper</code> to <code>AbstractProcessor</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In some circumstances asynchronous requests could time out too soon.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)"><strong>Tomcat 7.0.51 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55287">55287</a>: <code>ServletContainerInitializer</code> defined in
+        the container may not be found. (markt/jboynes)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55855">55855</a>: Provide a per Context option (containerSciFilter) to
+        exclude container SCIs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55937">55937</a>: When deploying applications, treat a context path of
+        <code>/ROOT</code> as equivalent to <code>/</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55943">55943</a>: Improve the implementation of the class loader check
+        that prevents web applications from trying to override J2SE
+        implementation classes. As part of this fix, refactor the way a null
+        parent class loader is handled which enables a number of null checks and
+        object creation calls to be removed. Note that this change means that,
+        by default, the web application class loader is now a higher priority
+        for loading classes than the system class loader.  (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55958">55958</a>: Differentiate between <code>foo.war</code> the WAR
+        file and <code>foo.war</code> the directory. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55960">55960</a>: Improve the single sign on (SSO) unit tests. Patch
+        provided by Brian Burch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55974">55974</a>: Retain order when reporting errors and warnings while
+        parsing XML configuration files. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56013">56013</a>: Fix issue with SPNEGO authentication when using IBM
+        JREs. IBM JREs only understand the option of infinite lifetime for
+        Kerberos credentials. Based on a patch provided by Arunav Sanyal.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56016">56016</a>: When loading resources for XML schema validation, take
+        account of the possibility that servlet-api.jar and jsp-api.jar may not
+        be loaded by the same class loader. Patch by Juan Carlos Estibariz.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56025">56025</a>: When creating a WebSocket connection, always call
+        <code>ServerEndpointConfig.Configurator.getNegotiatedSubprotocol()</code>
+        and always create the EndPoint instance after calling
+        <code>ServerEndpointConfig.Configurator.modifyHandshake()</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56032">56032</a>: Ensure that the WebSocket connection is closed after
+        an IO error or an interrupt while sending a WebSocket message. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56042">56042</a>: If a request in async mode has an error but has
+        already been dispatched don't generate an error page in the
+        ErrorReportValve so the dispatch target can handle it. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add missing <code>javax.annotation.sql.*</code> classes to
+        annotations-api.jar. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        The type of logger attribute of Context MBean should be not
+        <code>org.apache.commons.logging.Log</code> but
+        <code>org.apache.juli.logging.Log</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56082">56082</a>: Fix a concurrency bug in JULI's LogManager
+        implementation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56096">56096</a>: 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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Change default value of <code>xmlBlockExternal</code> attribute of
+        Context. It is <code>true</code> now. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid possible NPE if a content type is specified without a character
+        set. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55956">55956</a>: Make the forwarded remote IP address available to the
+        Connectors via a request attribute. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55976">55976</a>: Fix sendfile support for the HTTP NIO connector.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55996">55996</a>: Ensure Async requests timeout correctly when using the
+        NIO HTTP connector. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56021">56021</a>: Make it possible to use the Windows-MY key store with
+        the BIO and NIO connectors for SSL configuration. It requires a
+        <code>keystoreFile="" keystoreType="Windows-My"</code>
+        to be set on the connector. Based on a patch provided by Asanka. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression in the XML refactoring that meant that errors in
+        TLD files were swallowed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55671">55671</a>: Correct typo in the log message for a wrong value of
+        genStringAsCharArray init-param of JspServlet. This parameter
+        had a different name in Tomcat 6. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55973">55973</a>: Fix processing of XML schemas when validation is
+        enabled in Jasper. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56010">56010</a>: Don't throw an
+        <code>IllegalArgumentException</code> when
+        <code>JspFactory.getPageContext</code> is used with
+        <code>JspWriter.DEFAULT_BUFFER</code>. Based on a patch by Eugene Chung.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56012">56012</a>: When using the extends attribute of the page directive
+        do not import the super class if it is in an unnamed package as imports
+        from unnamed packages are now explicitly illegal. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56029">56029</a>: A regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55198">55198</a> meant
+        that when EL containing a ternary expression was used in an attribute
+        a compilation error would occur for some expressions. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct several errors in jspxml Schema and DTD. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Simplify the code of
+        <code>o.a.c.ha.tcp.SimpleTcpCluster.createManager(String)</code>.
+        Remove unnecessary class cast. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)/WebSocket"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)/WebSocket"><strong>WebSocket</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add index.xhtml to the welcome files list for the examples web
+        application. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Clarify that the connectionTimeout may also be used as the read timeout
+        when reading a request body (if any) in the documentation web
+        application. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Clarify the behaviour of the maxConnections attribute for a connector in
+        the documentation web application. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55888">55888</a>: Update the documentation web application to make it
+        clearer that a Container may define no more than one Realm. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55956">55956</a>: Where available, displayed the forwarded remote IP
+        address available on the status page of the Manager web application.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct links to the Tomcat mailing lists in the ROOT web application.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In Manager web application improve handling of file upload errors.
+        Display a message instead of error 500 page. Simplify parts handling
+        code, as it is known that Tomcat takes care of them when recycling a
+        request. (kkolinko) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)/Extras"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)/Extras"><strong>Extras</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55166">55166</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56045">56045</a>: Copy the XML schemas used for
+        validation that are packaged in jsp-api.jar to servlet-api.jar so that
+        an embedded Tomcat instance can start without Jasper being available.
+        This also enables validation to work without Jasper being available.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56039">56039</a>: Enable the JmxRemoteLifecycleListener to work over
+        SSL. Patch by esengstrom. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.51 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.51_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55743">55743</a>: Enable the stop script to work when the shutdown port
+        is disabled and a PID file is defined. This is only available on
+        platforms that use <code>catalina.sh</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55986">55986</a>: When forcing Tomcat to stop via
+        <code>kill -9 $CATALINA_PID</code>, the <code>catalina.sh</code> script
+        could incorrectly report that Tomcat had not yet completely stopped when
+        it had. Based on a patch by jess. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Package correct license and notice files with embedded JARs. (markt)
+      </td></tr>
       <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
         Remove svn keywords (such as $Id) from source files and documentation.
         (kkolinko)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Improvements to the Windows installer, to align it with installing
-        the sevice with <code>service.bat</code>. Use explicit memory sizes
-        (--JvmMs 128 Mb and --JvmMx 256 Mb). Specify log directory path
-        when ininstalling, so that the log file is written to the Tomcat logs
-        directory, instead of "%SystemRoot%\System32\LogFiles\Apache".
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix CVE-2014-0050, a denial of service with a malicious, malformed
+        Content-Type header and multipart request processing. Fixed by merging
+        latest code (r1565163) from Commons FileUpload. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=56115">56115</a>: 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)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.50 (violetagg)"><!--()--></a><a name="Tomcat_7.0.50_(violetagg)"><strong>Tomcat 7.0.50 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2014-01-08</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.50 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.50_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Handle the case where a <code>context.xml</code> file is added to a
+        web application deployed from a directory. Previously the file was
+        ignored until Tomcat was restarted. Now (assuming automatic deployment
+        is enabled) it will trigger a redeploy of the web application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix string comparison in <code>HostConfig.setContextClass()</code>.
         (kkolinko)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49993">49993</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56143">56143</a>: Improve <code>service.bat</code>
-        script. Allow it to be launched from non-UAC console. The UAC prompt
-        will be shown only once. Now there is no need to run the command shell
-        with elevated privileges. Improve check for <code>JAVA_HOME</code>
-        and add support for <code>JRE_HOME</code>. Warn if neither "client"
-        nor "server" JVM is found. Align classpath, display name and other
-        options with the <code>exe</code> installer. Make command names
-        case-insensitive. Update documentation. (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.39 (markt)"><!--()--></a><a name="Tomcat_6.0.39_(markt)"><strong>Tomcat 6.0.39 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2014-01-31</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.39 (markt)/Catalina"><!--()--></a><a name="Tomcat_6.0.39_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55166">55166</a>: Fix regression that broke XML validation when running
-        on some Java 5 JVMs. (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.39 (markt)/Coyote"><!--()--></a><a name="Tomcat_6.0.39_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make the HTTP NIO connector tolerant of whitespace in the individual
-        values used for the ciphers attribute. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove dependency introduced on the jsp-api.jar as part of the XML
-        validation changes introduced in 6.0.38. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.39 (markt)/Jasper"><!--()--></a><a name="Tomcat_6.0.39_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct several errors in jspxml Schema and DTD. (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.39 (markt)/Cluster"><!--()--></a><a name="Tomcat_6.0.39_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
-        Remove an empty TestTwoPhaseCommit test from Tribes. (kkolinko)
+        Streamline handling of WebSocket messages when no handler is configured
+        for the message currently being received. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Handle the case where a WebSocket annotation configures a message size
+        limit larger than the default permitted by Tomcat. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55855">55855</a>: This is a partial fix that bypasses the relatively
+        expensive check for a WebSocket upgrade request if no WebSocket
+        endpoints have been registered. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55905">55905</a>: Prevent a NPE when web.xml references a taglib file
+        that does not exist. Provide better error message. (violetagg)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.39 (markt)/Web applications"><!--()--></a><a name="Tomcat_6.0.39_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.50 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.50_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix broken link in Jasper How-To documentation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Align index.html and index.jsp in ROOT web application. Correct links
-        to specifications and to the Tomcat mailing lists. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove second copy of RUNNING.txt from the full-docs distribution. Some
-        unpacking utilities can't handle multiple copies of a file with the same
-        name in a directory. (kkolinko)
+        When using the BIO connector with an internal executor, do not display a
+        warning that the executor has not shutdown as the default configuration
+        for BIO connectors is not to wait. This is because threads in
+        keep-alive connections cannot be interrupted and therefore the warning
+        was nearly always displayed. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.39 (markt)/Other"><!--()--></a><a name="Tomcat_6.0.39_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.50 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.50_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        JspC uses servlet context initialization parameters to pass
+        configuration so ensure that the servlet context used supports
+        initialization parameters. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.50 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.50_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In <code>AbstractReplicatedMap#finalize</code>, remove rpcChannel from
+        channel Listener of group channel before sending
+        <code>MapMessage.MSG_STOP</code> message. This prevents that the node
+        that sent the <code>MapMessage.MSG_STOP</code> by normal shutdown is
+        added to member map again by ping at heartbeat thread in the node that
+        received the <code>MapMessage.MSG_STOP</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add time stamp to <code>GET_ALL_SESSIONS</code> message. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.50 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.50_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix the sample configuration of <code>StaticMembershipInterceptor</code>
+        in order to prevent warning log. uniqueId must be 16 bytes. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.50 (violetagg)/Extras"><!--()--></a><a name="Tomcat_7.0.50_(violetagg)/Extras"><strong>Extras</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update sample Eclipse IDE project: use JUnit 4 library and prefer a
-        Java 5 JDK when several JDKs are configured. Cleanup the Ant build
-        files. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct Maven dependencies for individual JAR files. (markt)
+        Update dependencies that are used to build tomcat-juli extras component.
+        Apache Avalon Framework is updated to version 4.1.5, Apache Log4J to
+        version 1.2.17. (rjung)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.38 (markt)"><!--()--></a><a name="Tomcat_6.0.38_(markt)"><strong>Tomcat 6.0.38 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.38 (markt)/Catalina"><!--()--></a><a name="Tomcat_6.0.38_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.49 (violetagg)"><!--()--></a><a name="Tomcat_7.0.49_(violetagg)"><strong>Tomcat 7.0.49 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.49 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.49_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Ensure that when Tomcat's anti-resource locking features are used
-        that the temporary copy of the web application and not the original is
-        removed when the web application stops. (markt/kkolinko) 
+        Correct a regression in the new XML local resolver that triggered false
+        failures when XML validation was configured. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55019">55019</a>: Fix a potential exception when accessing JSPs while
-        running under a SecurityManager. (jfclere)
+        Prevent a NPE when destroying HTTP upgrade handler for WebSocket
+        connections. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.48 (violetagg)"><!--()--></a><a name="Tomcat_7.0.48_(violetagg)"><strong>Tomcat 7.0.48 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.48 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.48_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51294">51294</a>: Add support for unpacking WARs located outside of the
+        Host's appBase in to the appBase. (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55052">55052</a>: Make JULI's LogManager to additionally look for
-        logging properties without prefixes if the property cannot be found with
-        a prefix. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55656">55656</a>: Configure the Digester to use the server class loader
+        when parsing server.xml rather than the class loader that loaded
+        StandardServer. Patch provided by Roberto Benedetti. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55266">55266</a>: Ensure that the session ID is parsed from the request
-        before any redirect as the session ID may need to be encoded as part of
-        the redirect URL. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55664">55664</a>: Correctly handle JSR 356 WebSocket Encoder, Decoder
+        and MessageHandler implementations that use a generic type such as
+        <code>Encoder.Text&lt;List&lt;String&gt;&gt;</code>. Includes a test
+        case by Niki Dokovski. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55404">55404</a>: Log warnings about using security roles in web.xml as
-        warnings. (markt)
+        Correctly handle WebSocket <code>Encoder</code>s, <code>Decoder</code>s
+        and <code>MessageHandler</code>s that use arrays of generic types.
+        (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55268">55268</a>: Added optional --service-start-wait-time
-        command-line option to change service start wait time from default
-        of 10 seconds. (schultz)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55681">55681</a>: Ensure that the WebSocket session is made available
+        to <code>MessageHandler</code> method calls. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correctly associate the default resource bundle with the English locale
-        so that requests that specify an Accept-Language of English ahead of
-        French, Spanish or Japanese get the English messages they asked for.
-        (markt) 
+        Updated servlet spec version and documentation section-number reported
+        when JAR files are rejected for containing a trigger class
+        (e.g. javax.servlet.Servlet). (schultz)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Modify the WebSocket handshake process so that the user properties
+        <code>Map</code> exposed by the <code>ServerEndpointConfig</code> during
+        the call to <code>Configurator.modifyHandshake()</code> is unique to the
+        connection rather than shared by all connections associated with the
+        Endpoint. This allows for easier configuration of per connection
+        properties from within <code>modifyHandshake()</code>. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add missing JavaEE 5 XML schema definitions. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55684">55684</a>: Log a warning but continue if the memory leak
+        detection code is unable to access all threads to check for possible
+        memory leaks when a web application is stopped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Define the web-fragment.xml in tomcat7-websocket.jar as a Servlet 3.0
+        web fragment rather than as a Servlet 3.1 web fragment. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55715">55715</a>: Add a per web application executor to the WebSocket
+        implementation and use it for calling
+        <code>SendHandler.onResult()</code> when there is a chance that the
+        current thread also initiated the write. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent file descriptors leak and ensure that files are closed when
+        configuring the web application. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fixed the name of the provider-configuration file located in
+        <code>tomcat7-websocket.jar!/META-INF/services</code> that exposes
+        information for
+        <code>javax.websocket.server.ServerEndpointConfig$Configurator</code>
+        implementation. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55760">55760</a>: Remove the unnecessary setting of the
+        <code>javax.security.auth.useSubjectCredsOnly</code> system property in
+        the <code>SpnegoAuthenticator</code> as in addition to it being
+        unnecessary, it causes problems with using SPNEGO with IBM JDKs. Patch
+        provided by Arunav Sanyal. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55772">55772</a>: Ensure that the request and response are recycled
+        after an error during asynchronous processing. Includes a test case
+        based on code contributed by Todd West. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55778">55778</a>: Add an option to the JNDI Realm to control the QOP
+        used for the connection to the LDAP server after authentication when
+        using SPNEGO with delegated credentials. This value is used to set the
+        <code>javax.security.sasl.qop</code> environment property for the LDAP
+        connection. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55798">55798</a>: Log an error if the MemoryUserDatabase is unable to
+        find the specified user database file. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55799">55799</a>: Correctly enforce the restriction in JSR356 that no
+        more than one data message may be sent to a remote WebSocket endpoint at
+        a time. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         When Catalina parses TLD files, always use a namespace aware parser to
         be consistent with how Jasper parses TLD files. The
         <code>tldNamespaceAware</code> attribute of the Context is now ignored.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Deprecate the <code>tldNamespaceAware</code> Context attribute as TLDs
+        are always parsed with a namespace aware parser. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a logic error that meant that unpackWARs was ignored and the WAR
+        was always expanded if a WAR failed to deploy. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for defining <code>copyXML</code> on a per Context basis.
         (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        As per section SRV.14.4.3 of the Servlet 2.5 specification, a namespace
-        aware, validating parser will be used when processing <code>*.tld</code>
-        and <code>web.xml</code> files if the system property
-        <code>org.apache.catalina.STRICT_SERVLET_COMPLIANCE</code> is set to
-        <code>true</code>. (markt)
+        Define the expected behaviour of the automatic deployment and align the
+        implementation to that definition. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        When running under a security manager, change the default value of the
+        Host's <code>deployXML</code> attribute to <code>false</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        If a Host is configured with a value of <code>false</code> for
+        <code>deployXML</code>, a web application has an embedded
+        descriptor at <code>META-INF/context.xml</code> and no explicit
+        descriptor has been defined for this application, do not allow the
+        application to start. The reason for this is that the embedded
+        descriptor may contain configuration necessary for secure operation
+        such as a <code>RemoteAddrValve</code>. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix CVE-2014-0033:
-        Ensure that sessions IDs are not parsed from URLs for Contexts where
-        <code>disableURLRewriting</code> is <code>true</code>. (markt)
+        Prevent an NPE in the WebSocket <code>ServerContainer</code> when
+        processing an HTTP session end event. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55801">55801</a>: Add the ability to set a custom
+        <code>SSLContext</code> to use for client wss connections. Patch
+        provided by Maciej Lypik. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55804">55804</a>: If the GSSCredential for the cached Principal expires
+        when using SPNEGO authentication, force a re-authentication. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55811">55811</a>: If the main web.xml contains an empty
+        absolute-ordering element and validation of web.xml is not enabled, skip
+        parsing any web-fragment.xml files as the result is never used. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55839">55839</a>: Extend support for digest prefixes {MD5}, {SHA} and
+        {SSHA} to all Realms rather than just the JNDIRealm. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55842">55842</a>: Ensure that if a larger than default response buffer
+        is configured that the full buffer is used when a Servlet outputs via a
+        Writer. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55851">55851</a>: Further fixes to enable SPNEGO authentication to work
+        with IBM JDKs. Based on a patch by Arunav Sanyal. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
         Fix CVE-2013-4590:
@@ -337,38 +5223,494 @@
         by default when a security manager is used. The block is implemented via
         a custom resolver to enable the logging of any blocked entities. (markt)
       </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.48 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.48_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Implement a number of small refactorings to the APR/native handler for
+        upgraded HTTP connections. (markt)
+      </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=56016">56016</a>: When loading resources for XML schema validation, take
-        account of the possibility that servlet-api.jar and jsp-api.jar may not
-        be loaded by the same class loader. Patch by Juan Carlos Estibariz.
+        Fix an issue with upgraded HTTP connections over HTTPS (e.g. secure
+        WebSocket) when using the APR/native connector that resulted in the
+        unexpected closure of the connection. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the application class loader is used when calling the
+        <code>ReadListener</code> and <code>WriteListener</code> methods when
+        using non-blocking IO. A side effect of not doing this was that JNDI was
+        not available when processing WebSocket events. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make the time that the internal executor (if used) waits for request
+        processing threads to terminate before continuing with the connector
+        stop process configurable. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55749">55749</a>: Improve the error message when <code>SSLEngine</code>
+        is disabled in the <code>AprLifecycleListener</code> and SSL is
+        configured for an APR/native connector. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        If a request that includes an <code>Expect: 100-continue</code> header
+        receives anything other than a 2xx response, close the connection This
+        protects against misbehaving clients that may not sent the request body
+        in that case and send the next request instead. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the parsing of trailing headers in HTTP requests. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.48 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.48_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55735">55735</a>: Fix a regression caused by the fix to
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55198">55198</a>. When processing JSP documents, attributes in XML
+        elements that are template content should have their text xml-escaped,
+        but output of EL expressions in them should not be escaped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55807">55807</a>: The JSP compiler used a last modified time of -1 for
+        TLDs in JARs expanded in to WEB-INF/classes (IDEs often do this
+        expansion) when creating the dependency list for JSPs that used that
+        TLD. This meant JSPs using that TLD were recompiled on every access.
         (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.38 (markt)/Coyote"><!--()--></a><a name="Tomcat_6.0.38_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.48 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.48_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add log message that initialization of
+        <code>AbstractReplicatedMap</code> has been completed. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        The logger of <code>AbstractReplicatedMap</code> should be non-static in
+        order to enable logging of each application. Side-effects of this change
+        is to throw <code>RuntimeException</code> in
+        <code>MapMessage#getKey()</code> and <code>getValue()</code> instead of
+        Null return and error log. (kfujino)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Simplify the code of <code>DeltaManager#startInternal()</code>. Reduce
+        unnecessary nesting for acquisition of cluster instance. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove unnecessary attributes of 
+        <code>stateTransferCreateSendTime</code> and <code>receiverQueue</code>
+        from cluster manager template. These attributes should not be defined as
+        a template. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix MBean attribute definition of <code>stateTransfered</code>. The
+        method name is not <code>isStateTransfered()</code> but
+        <code>getStateTransfered()</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct stop failure log of cluster. Failure cause is not only Valve.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove unnecessary sleep when sending session blocks on session sync
+        phase. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Expose <code>stateTimestampDrop</code> of
+        <code>org.apache.catalina.ha.session.DeltaManager</code> via JMX.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When the ping timeouted, make sure that <code>memberDisappeared</code>
+        method is not called by specifying the members that has already been
+        removed. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add log message of session relocation when member disappeared. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If ping message fails, prevent wrong timeout detection of normal member
+        that is no failure members. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.48 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.48_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add some documentation on the SSL configuration options for WebSocket
+        clients. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add to cluster document a description of
+        <code>notifyLifecycleListenerOnFailure</code> and
+        <code>heartbeatBackgroundEnabled</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update the documentation with information for WebSocket 1.0 specification
+        and javadoc. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55703">55703</a>: Clarify the role of the singleton attribute for JNDI
+        resource factories. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55746">55746</a>: Add documentation on the <code>allRolesMode</code> to
+        the <code>CombinedRealm</code> and <code>LockOutRealm</code>. Patch by
+        C&eacute;dric Couralet. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Expand the information on web applications that ship as part of Tomcat
+        in the security how-to section of the documentation web application.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Expand the description of the WebSocket buffers in the documentation web
+        application to clarify their purpose. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Correct the documentation for Cluster manager. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add information on how to configure integrated Windows authentication
+        when Tomcat is running on a non-Windows host. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.48 (violetagg)/Extras"><!--()--></a><a name="Tomcat_7.0.48_(violetagg)/Extras"><strong>Extras</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update commons-logging to version 1.1.3. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.48 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.48_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52323">52323</a>: Add support for the Cobertura code coverage tool
+        when running the unit tests. Based on a patch by mhasko.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update sample Eclipse IDE project. Explicitly use a Java 6 SE JDK.
+        Exclude JSR356 WebSocket classes from build path, as they cannot be
+        compiled with Java 6. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the Eclipse compiler to 4.3.1. (kkolinko/markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.47 (violetagg)"><!--()--></a><a name="Tomcat_7.0.47_(violetagg)"><strong>Tomcat 7.0.47 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2013-10-24</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.47 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.47_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52811">52811</a>: Fix parsing of Content-Type header in
-        <code>HttpServletResponse.setContentType()</code>. Introduces a new HTTP
-        header parser that follows RFC2616. (markt)
+        Fix regression with legacy WebSocket implementation in NIO and APR
+        connectors. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.47 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.47_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid hang observed with Java 6 on Windows when stopping the Tomcat
+        process via CTRL-C. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.47 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.47_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55663">55663</a>: NOTICE files are corrected according to
+        <a href="http://www.apache.org/legal/src-headers.html#notice">NOTICE files requirements</a>.
+        (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.46 (violetagg)"><!--()--></a><a name="Tomcat_7.0.46_(violetagg)"><strong>Tomcat 7.0.46 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.46 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.46_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Only send a WebSocket close message on an IOException if the client has
+        not yet received a close control message from the server as the
+        IOException may be in response to the client continuing to send a
+        message after the server sent a close control message. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54691">54691</a>: Add configuration attribute "sslEnabledProtocols"
-        to HTTP connector and document it. (Internally this attribute has
-        been already implemented but not documented, under names "protocols"
-        and "sslProtocols". Those names of this attribute are now deprecated).
-        (schultz)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49134">49134</a>: Ensure nested realms are correctly destroyed, when a
+        CombinedRealm is destroyed. This ensures that the associated MBeans are
+        deregistered. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.46 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.46_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Refactor APR/native connector to reduce the scope of
+        <code>localAddList</code>. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54947">54947</a>: Fix the HTTP NIO connector that incorrectly rejected a
-        request if the CRLF terminating the request line was split across
-        multiple packets. Patch by Konstantin Prei&szlig;er. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55602">55602</a>: Ensure that sockets removed from the Poller and then
+        closed in the APR/native connector are removed and then closed in a
+        thread-safe manner. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55228">55228</a>: Allow web applications to set a HTTP Date header.
+        Update the APR/native connector to version 1.1.29. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.46 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.46_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55642">55642</a>: Correct logic error in the JSP parser that was
+        incorrectly identifying EL expressions in jsp:param element values as a
+        literal string. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.46 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.46_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for notify periodic event of cluster. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.46 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.46_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the javadoc for <code>org.apache.catalina.Lifecycle</code>.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add document for sessionIdAttribute attribute in
+        <code>org.apache.catalina.ha.session.JvmRouteBinderValve</code>.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Handle the case when a user closes the browser whilst playing the
+        snake game in the JSR356 WebSocket examples. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure Javadoc comments are associated with the correct elements in
+        <code>org.apache.tomcat.jni.Poll</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Expand Context documentation for the use of
+        <code>sessionCookiePath="/"</code> to make the implications
+        for session fixation protection clearer. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55629">55629</a>: Ensure that the JMX notification listener added during
+        initialization of the servlet org.apache.catalina.manager.StatusManagerServlet
+        is removed in the destroy phase. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the documentation for Deployment Organization in the App Dev
+        Guide. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55639">55639</a>: Add a Drawboard WebSocket example. (kpreisser)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.45 (violetagg)"><!--()--></a><a name="Tomcat_7.0.45_(violetagg)"><strong>Tomcat 7.0.45 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.45 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.45_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55576">55576</a>: Preserve the order in which request parameters were
+        received when accessing them via the Servlet API. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.45 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.45_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Logger instance of cluster session manager is changed to non-static in
+        order to enable logging of each application. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.44 (violetagg)"><!--()--></a><a name="Tomcat_7.0.44_(violetagg)"><strong>Tomcat 7.0.44 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.44 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.44_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55582">55582</a>: Correct concurrency issue that can result in two
+        instances of JspServletWrapper being created for one tag Patch provided
+        by Sheldon Shao. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.43 (violetagg)"><!--()--></a><a name="Tomcat_7.0.43_(violetagg)"><strong>Tomcat 7.0.43 (violetagg)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.43 (violetagg)/Catalina"><!--()--></a><a name="Tomcat_7.0.43_(violetagg)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51526">51526</a>: <code>o.a.catalina.startup.Tomcat#addWebapp</code>
+        methods now process the web application's <code>META-INF/context.xml</code>
+        when it is available in the provided path. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55186">55186</a>: Ensure local name is recycled between requests so IP
+        virtual hosting works correctly. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55210">55210</a>: Correct the processing of the provider-configuration
+        file for <code>javax.servlet.ServletContainerInitializer</code> in the
+        resource directory <code>META-INF/services</code> when this file
+        contains comments and multiple SCIs. Patch provided by Nick Williams.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55230">55230</a>: Use the correct resource path when obtaining an
+        InputStream for resources served by a ProxyDirContext. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the JAR scanning process scans the Apache Log4j version 2
+        JARs. Patch provided by Nick Williams. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55261">55261</a>: Fix failing unit test for file upload checks when
+        running on platform / JVM combinations that have large network buffers.
         (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55268">55268</a>: Added optional --service-start-wait-time
+        command-line option to change service start wait time from default of 10
+        seconds.
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        The <code>contextClass</code> attribute of <code>HostConfig</code>
+        refers to the value of the <code>contextClass</code> attribute of Host.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55331">55331</a>: Dispatching to an asynchronous servlet from
+        <code>AsyncListener.onTimeout()</code> should not trigger an
+        <code>IllegalStateException</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55333">55333</a>: Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55071">55071</a>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When using a security manager, ensure that calls to the ServletContext
+        that are routed via an <code>AccessController.doPrivileged</code> block
+        do not result in a call to a different underlying method on the
+        ServletContext. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55354">55354</a>: Ensure that the naming context environment parameters
+        are restored after associating the Principle with the user name. Based
+        on patch provided by Richard Begg. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55357">55357</a>: Ensure the web application class loader is set as a
+        thread context class loader during session deserialization. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55404">55404</a>: Log warnings about using security roles in web.xml
+        without defining them as warnings. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55439">55439</a>: Don't try a forced stop when <code>stop
+        -force</code> is used if Tomcat has already been stopped. This avoids
+        error messages when the PID file has been cleared. If a forced stop is
+        required, improve handling of the case when the PID file can be read
+        from or written to but not deleted. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55454">55454</a>: Avoid NPE when parsing an incorrect content type.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Back-port the JSR-356 Java WebSocket 1.0 implementation from Tomcat 8.
+        Note that use of this functionality requires Java 7. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Deprecate the Tomcat proprietary WebSocket API in favour of the new
+        JSR-356 implementation. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55494">55494</a>: Reduce severity of log message from warning to
+        information for JNDI Realm connection issues where the JNDI Realm
+        automatically re-tries the action that failed. Make clear in the log
+        message that the action is being re-tried. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct several incorrect formats of <code>JdkLoggerFormatter</code>.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55521">55521</a>: Ensure that calls to
+        <code>HttpSession.invalidate()</code> do not return until the session
+        has been invalidated. Also ensure that checks on the validity of a
+        session return a result consistent with any previous call to
+        <code>HttpSession.invalidate()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55524">55524</a>: Refactor to avoid a possible deadlock when handling an
+        <code>IOException</code> during output when using Tomcat'
+        proprietary (and deprecated) WebSocket API. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        The loaded attribute never exists in <code>PersistentManager</code>.
+        isLoaded is defined as operation in mbeans-descriptors. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+          Added logging of logging.properties location when system property
+          <code>org.apache.juli.ClassLoaderLogManager.debug=true</code>
+          is set.
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55570">55570</a>: Correctly log exceptions for all error conditions in
+        the SPNEGO authenticator. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.43 (violetagg)/Coyote"><!--()--></a><a name="Tomcat_7.0.43_(violetagg)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55228">55228</a>: Allow web applications to set a HTTP Date header.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Expose the current connection count for each protocol handler via JMX.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55267">55267</a>: If an application configures a timeout for a Comet
+        connection ensure it is only used for read and not write operations.
+        This prevents a long timeout delaying the closing of the socket
+        associated with a Comet connection after an error occurs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that <code>java.lang.VirtualMachineError</code>s are not
+        swallowed when using the HTTP or AJP NIO connectors. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55399">55399</a>: Use the response locale to select the language to use
+        for the status message in the HTTP response. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Refactor the connectors to support the new JSR-356 Java WebSocket
+        1.0 implementation. The most noticeable change is that the AJP
+        APR/native and HTTP APR/native connectors no longer support multiple
+        poller threads. Both connectors now use a single poller thread. (markt)  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Internally, content length is managed as a <code>long</code>. Fix a few
+        places in the AJP connector where this was restricted to an
+        <code>int</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55453">55453</a>: Ensure that the AJP connector does not permit response
+        bodies to be included for responses with status codes and/or request
+        methods that are not permitted to have a response body. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55500">55500</a>: Don't ignore the value of an asynchronous context
+        timeout when using the AJP NIO connector. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Fix CVE-2013-4286:
         Better adherence to RFC2616 for content-length headers. (markt)
       </td></tr>
@@ -377,410 +5719,1537 @@
         when using chunked encoding. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55749">55749</a>: Improve the error message when SSLEngine is disabled
-        in the AprLifecycleListener and SSL is configured for an APR/native
-        connector. (markt)
+        Update the APR/native connector to version 1.1.28. Make this the minimum
+        acceptable version as the correct behaviour of the JSR-356 WebSocket
+        implementation when using the APR/native HTTP connector depends on a bug
+        fix in the 1.1.28 release. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.43 (violetagg)/Jasper"><!--()--></a><a name="Tomcat_7.0.43_(violetagg)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55198">55198</a>: Ensure attribute values in tagx files that include EL
+        and quoted XML characters are correctly quoted in the output. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Avoid possible NPE if a content type is specified without a character set.
+        Ensure that <code>javax.el.ELContext.getContext(Class)</code> will
+        throw <code>NullPointerException</code> when the provided class is
+        null. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that <code>FeatureDescriptor</code> objects returned by
+        <code>javax.el.MapELResolver.getFeatureDescriptors(ELContext,Object)</code>
+        will be created with a correct <code>shortDescription</code> - an empty string and
+        a named attribute <code>ELResolver.RESOLVABLE_AT_DESIGN_TIME</code> -
+        true. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that <code>FeatureDescriptor</code> objects returned by
+        <code>javax.el.ResourceBundleELResolver.getFeatureDescriptors(ELContext,Object)</code>
+        will be created with a correct <code>shortDescription</code> - an empty
+        string.
+        <code>javax.el.ResourceBundleELResolver.isReadOnly(ELContext,Object,Object)</code>
+        returns true if the base object is an instance of ResourceBundle.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55207">55207</a>: Enforce the restriction that a &lt;jsp:text&gt;
+        element may not contain any sub-elements from any namespace. Patch
+        provided by Jeremy Boynes. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that
+        <code>javax.el.ListELResolver.getFeatureDescriptors(ELContext,Object)</code>
+        will always return null.
+        <code>javax.el.ListELResolver.isReadOnly(ELContext,Object,Object)</code>
+        will return a result when the property cannot be coerced into an
+        integer. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that
+        <code>javax.el.ArrayELResolver.getFeatureDescriptors(ELContext,Object)</code>
+        will always return null.
+        <code>javax.el.ArrayELResolver.isReadOnly(ELContext,Object,Object)</code>
+        and
+        <code>javax.el.ArrayELResolver.getType(ELContext,Object,Object)</code>
+        will return a result when the property cannot be coerced into an
+        integer. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55309">55309</a>: Fix concurrency issue with JSP compilation and the
+        tag plug-in manager. Patch provided by Sheldon Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that
+        <code>javax.el.BeanELResolver.getFeatureDescriptors(ELContext,Object)</code>
+        and
+        <code>javax.el.BeanELResolver.getCommonPropertyType(ELContext,Object)</code>
+        do not throw <code>NullPointerException</code> when the provided context
+        is null. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.43 (violetagg)/Cluster"><!--()--></a><a name="Tomcat_7.0.43_(violetagg)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add new attribute terminateOnStartFailure. Set to true if you wish to
+        terminate replication map when replication map fails to start.
+        If replication map is terminated, associated context will fail to start.
+        If you set this attribute to false, replication map does not end.
+        It will try to join the map membership in the heartbeat. Default value
+        is false. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid ConcurrentModificationException when sending a heartbeat.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid NPE when the channel fails to start. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55301">55301</a>: Fix <code>IllegalArgumentException</code> thrown by
+        simple test for McastService. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55332">55332</a>: Fix NPE in <code>FileMessageFactory.main</code> when
+        specify empty file as arguments. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        More definite thread name for <code>MessageDispatch15Interceptor</code>.
+        (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.43 (violetagg)/Web applications"><!--()--></a><a name="Tomcat_7.0.43_(violetagg)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove the experimental label from the AJP NIO connector documentation.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly associated the default resource bundle with the English locale
+        so that requests that specify an Accept-Language of English ahead of
+        French, Spanish or Japanese get the English messages they asked for.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55469">55469</a>: Fixed tags that were not properly closed. Based on a
+        patch provided by Larry Shatzer, jr. (violetagg)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        The WebSocket examples in the examples web application have been changed
+        to use the new JSR-356 Java WebSocket 1.0 implementation. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add document for
+        <code>org.apache.catalina.tribes.group.GroupChannel</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct Realm Component page of Tomcat documentation. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.43 (violetagg)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.43_(violetagg)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54693">54693</a>: Add a validationQueryTimeout property. Patch provided
+        by Daniel Mikusa. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54693#c6">54693#c6</a>: Avoid NPE caused by <code>createConnection()</code>
+        method returns null. Patch provided by Daniel Mikusa. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55342">55342</a>: Remove unnecessary reset of interrupted flag. If
+        <code>InterruptedException</code> is thrown, the interrupted flag has
+        been cleared. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55343">55343</a>: Add flag to ignore exceptions of connection creation
+        while initializing the pool. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add undefined attributes and operations to mbeans-descriptor. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.43 (violetagg)/Other"><!--()--></a><a name="Tomcat_7.0.43_(violetagg)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=45428">45428</a>: Trigger a thread dump written to standard out if
+        Tomcat fails to stop in a timely manner to aid diagnostics. This is only
+        available on platforms that use <code>catalina.sh</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55204">55204</a>: Correct namespace used in Servlet 2.4 test web 
+        application. Patch provided by Jeremy Boynes. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55205">55205</a>: Reorder elements so web.xml complies with schema for
+        Servlet 3.0 test web application. Patch provided by Jeremy Boynes.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55211">55211</a>: Correct namespace in TLD files used in test web
+        applications. Rename elements <code>tagclass</code> to
+        <code>tag-class</code> so TLD files complies with DTD/schema. Patch
+        provided by Jeremy Boynes. (violetagg)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update package renamed version of Commons BCEL to the latest code from
+        Commons BCEL trunk. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update package renamed version of Commons FileUpload to the latest code
+        from Commons FileUpload trunk. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55297">55297</a>: When looking for the jsvc executable, if an explicit
+        path is not set and it is not found in $CATALINA_BASE, look in
+        $CATALINA_HOME as well. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55336">55336</a>: Correctly escape parameters passed to eval in the
+        catalina.sh script to ensure that Tomcat starts when installed on a path
+        that contains multiple consecutive spaces. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.42 (markt)"><!--()--></a><a name="Tomcat_7.0.42_(markt)"><strong>Tomcat 7.0.42 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2013-07-05</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.42 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.42_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Enforce the restriction described in section 4.4 of the Servlet 3.0
+        specification that requires the new pluggability methods only to be
+        available to <code>ServletContextListener</code>s defined in one of the
+        specified ways. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Better handle FORM authentication when requesting a resource as an
+        unauthenticated user that is only protected for a sub-set of HTTP
+        methods that does not include GET. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53777">53777</a>: Add support for a JAAS Realm instance to use a
+        dedicated configuration rather than the JVM global JAAS configuration.
+        This is most likely to be useful for per web application JAAS Realms.
+        Based on a patch by eolivelli. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54745">54745</a>: Fix JAR file scanning when Tomcat is deployed via Java
+        Web Start. Patch provided by Nick Williams. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55017">55017</a>: Add the ability to configure the RMI bind address when
+        using the JMX remote lifecycle listener. Patch provided by Alexey
+        Noskov. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55071">55071</a>: Ensure original exception is reported if JDBC Realm
+        fails to read a user's credentials. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55073">55073</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55108">55108</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55109">55109</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55110">55110</a>,
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55158">55158</a> &amp; <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55159">55159</a>: Small performance improvements.
+        Patches provided by Adrian Nistor. (markt/violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55102">55102</a>: Add support for time to first byte in the
+        AccessLogValve. Patch provided by Jeremy Boynes. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55125">55125</a>: If the Server container fails to start, don't allow
+        the Catalina wrapper to start (used when running from the command line
+        and when running as a service) since Tomcat will not be able to do any
+        useful work. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update the <code>JreMemoryLeakPreventionListener</code> to take account
+        of changes in the behaviour of
+        <code>java.beans.Introspector.flushCaches()</code> and
+        <code>sun.awt.AppContext.getAppContext()</code> in Java 7. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid WARNING log message of
+        <code>Users:type=UserDatabase,database=UserDatabase</code> at Tomcat
+        shutdown. (pero)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid <code>ClassCastException</code> when an asynchronous dispatch is
+        invoked in an asynchronous cycle which is started by a call to
+        <code>ServletRequest.startAsync(ServletRequest,ServletResponse)</code>
+        where ServletRequest/ServletResponse are custom implementations.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression introduced in 7.0.39 (refactoring of base 64
+        encoding and decoding) that broke the JNDI Realm when
+        <code>userPassword</code> was set and passwords were hashed with MD5 or
+        SHA1. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the mechanism for the path calculation in
+        <code>AsyncContext.dispatch()</code>. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55155">55155</a>: Avoid constant focus grabbing when running the Tomcat
+        unit tests under Java 6 on OSX. Patch provided by Casey Lucas. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55160">55160</a>: Don't ignore connectionUploadTimeout setting when
+        using HTTP NIO connector. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55176">55176</a>: Correctly handle regular expressions within SSI
+        expressions that contain an equals character. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.42 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.42_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55177">55177</a>: Correctly handle infinite soTimeout for BIO HTTP
+        connector. Based on a patch by Nick Bunn. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55180">55180</a>: Correctly handle infinite soTimeout when
+        <code>disableUploadTimeout</code> is set to false. Patch provided by
+        Nick Bunn. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.42 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.42_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Delete leftover of war file from tempDir when removing invalid
+        <code>FileMessageFactory</code>. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the keepAlive of NioSender works correctly when
+        <code>keepAliveCount</code>/<code>keepAliveTime</code> is set to a value
+        greater than 0. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add logging of when a member is unable to join the cluster. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Replace Tribes's <code>TaskQueue</code> as executor's
+        workQueue in order to ensure that executor's <code>maxThread</code>
+        works correctly. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54086">54086</a>: Fix an additional code path that could lead to
+        multiple threads attempting to modify the same selector key set. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.42 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.42_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Complete the document for <code>MessageDispatch15Interceptor</code>.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53655">53655</a>: Document the circumstances under which Tomcat will add
+        a <code>javax.mail.Authenticator</code> to mail sessions created via a
+        JNDI resource. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55179">55179</a>: Correct the Javadoc for the remote IP valve so the
+        correct name is used to refer to the <code>proxiesHeader</code>
+        property. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.42 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.42_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55031">55031</a>: Fixed <code>Export-Package</code> header and
+        <code>uses</code> directives in MANIFEST.MF. Change the version for
+        package <code>org.apache.juli.logging</code> to "0" in
+        <code>Import-Package</code> header. Thus any version of that package
+        can be used. Patch provided by Martin Lichtin. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.42 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.42_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Maven Central location used to download dependencies at build time
+        to be <code>repo.maven.apache.org</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update JUnit to version 4.11. Configure separate download for Hamcrest
+        1.3 core library as its classes are no longer included in junit.jar.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54013">54013</a>: When using a forced stop, allow a short period of time
+        (5s) for the process to die before returning. Patch provided by
+        mukarram.baig. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55119">55119</a>: Ensure that the build process produces Javadoc that is
+        not vulnerable to CVE-2013-1571. Based on a patch by Uwe Schindler.
         (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.38 (markt)/Jasper"><!--()--></a><a name="Tomcat_6.0.38_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.41 (markt)"><!--()--></a><a name="Tomcat_7.0.41_(markt)"><strong>Tomcat 7.0.41 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2013-06-10</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.41 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.41_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55198">55198</a>: Ensure attribute values in tagx files that include EL
-        and quoted XML characters are correctly quoted in the output. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54703">54703</a>: Make parsing of HTTP Content-Type headers tolerant of
+        any CR or LF characters that appear in the value passed by the
+        application. Also fix some whitespace parsing issues identified by the
+        additional test cases. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55671">55671</a>: Consistently use the configuration option name
-        <code>genStringAsCharArray</code> rather than a mixture of
-        <code>genStrAsCharArray</code> and <code>genStringAsCharArray</code> but
-        retain support for <code>genStrAsCharArray</code> as in initialisation
-        parameter for the JSP servlet to retain backwards compatibility with
-        existing configurations. (markt)
+        Prevent possible WAR file locking when reading a context.xml file from
+        an unexpanded WAR file. Note that in normal usage, the
+        <code>JreMemoryLeakPreventionListener</code> would protect against this.
+        (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55691">55691</a>: Fix <code>javax.el.ArrayELResolver</code> to correctly
-        handle the case where the base object is an array of primitives. (markt)
+        Ensure that when auto deployment runs for a Host, it uses the latest
+        values for copyXML, deployXML and unpackWARs. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55973">55973</a>: Fix processing of XML schemas when validation is
-        enabled in Jasper. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54939">54939</a>: Provide logging (using a UserDataHelper) when HTTP
+        header parsing fails (e.g. when maxHeaderCount is exceeded). (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54944">54944</a>: Enhancements to the unit tests for FORM
+        authentication. Patch provided by Brian Burch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54955">54955</a>: When a reload of the application is performed ensure
+        that a subsequent request to the context root does not result in a 404
+        response. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54971">54971</a>: Ensure that the correct location is used when writing
+        files via <code>javax.servlet.http.Part.write(String)</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54974">54974</a>: Ensure that 
+        <code>SessionCookieConfig#set&lt;methods&gt;</code>
+        will throw <code>IllegalStateException</code> if the
+        <code>ServletContext</code> from which this 
+        <code>SessionCookieConfig</code> was acquired has already been
+        initialized. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54981">54981</a>: Ensure that
+        <code>ServletContext#getJspConfigDescriptor()</code> will return
+        <code>null</code> when there is no jsp configuration provided by
+        web.xml/web-fragment.xml. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that when Tomcat's anti-resource locking features are used
+        that the temporary copy of the web application and not the original is
+        removed when the web application stops. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54984">54984</a>: Use the correct encoding when processing a form data
+        posted as multipart/form-data even when the request parameters are not
+        parsed. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54999">54999</a>: The old JSESSIONIDSSO needs to be removed when SSO is
+        being used and logout() and login() occur within a single request. Patch
+        provided by Keith Mashinter. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55035">55035</a>: Add support for the version attribute to the deploy
+        command of the Ant tasks for interfacing with the text based Manager
+        application. Patch provided by  Sergey Tcherednichenko. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55046">55046</a>: Add a Servlet Filter that implements
+        <a href="http://www.w3.org/TR/cors/" rel="nofollow">CORS</a>. Patch
+        provided by Mohit Soni. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=55052">55052</a>: JULI's LogManager now additionally looks for
+        logging properties without prefixes if the property cannot be found with
+        a prefix. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that only the first asynchronous dispatch operation for a given
+        asynchronous cycle will be performed. Any subsequent asynchronous
+        dispatch operation for the same asynchronous cycle will be ignored and
+        <code>IllegalStateException</code> will be thrown. (violetagg)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.38 (markt)/Web applications"><!--()--></a><a name="Tomcat_6.0.38_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.41 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.41_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54947">54947</a>: Fix the HTTP NIO connector that incorrectly rejected a
+        request if the CRLF terminating the request line was split across
+        multiple packets. Patch by Konstantin Prei&szlig;er. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.41 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.41_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54964">54964</a>: Allow tag plug-ins to be packaged with a web
+        application. Patch provided by Sheldon Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54968">54968</a>: Return the correct version number (2.2) of the JSP
+        specification that is supported by the JSP engine when
+        <code>javax.servlet.jsp.JspEngineInfo#getSpecificationVersion()</code>
+        is invoked. (violetagg) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.41 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.41_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add documentation for
-        <code>o.a.c.tribes.group.interceptors.TcpFailureDetector</code>.
+        Add <code>maxValidTime</code> attribute to prevent the leak of
+        <code>FileMessageFactory</code> in <code>FarmWarDeployer</code>.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Simplify the code of <code>ReplicationValve</code>: Rather than get
+        cluster instance from container on every request, use instance variable.
         (kfujino)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Complete the documentation for
-        <code>MessageDispatch15Interceptor</code>. (kfujino)
+        Add <code>maxWait</code> attribute that the senderPool will wait when
+        there are no available senders. (kfujino)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add to cluster document a description of
-        <code>notifyLifecycleListenerOnFailure</code> and
-        <code>heartbeatBackgroundEnabled</code>. (kfujino)
+        Improve error message by including specified timeout if failed to
+        retrieve a data sender. (kfujino)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55746">55746</a>: Add documentation on the <code>allRolesMode</code> to
-        the <code>CombinedRealm</code> and <code>LockOutRealm</code>. Patch by
-        C&eacute;dric Couralet. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix the sample configuration of <code>StaticMembershipInterceptor</code>
-        in order to prevent warning log. uniqueId must be 16 bytes. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55119">55119</a>: Avoid CVE-2013-1571 when generating Javadoc. (markt)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add <code>removeSuspectsTimeout</code> attribute in order to remove a
+        suspect node in TcpFailureDetector. (kfujino)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.38 (markt)/Other"><!--()--></a><a name="Tomcat_6.0.38_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.41 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.41_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update Maven Central location used to download dependencies at build
-        time to be <code>repo.maven.apache.org</code>. (kkolinko)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54931">54931</a>: Add information to the Window Service how-to about
+        installing and running multiple instances. Based on a patch by Chris
+        Derham. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=55663">55663</a>: Minor correction to the wording of the NOTICE files to
-        align them with the
-        <a href="http://www.apache.org/legal/src-headers.html#notice">requirements
-        for NOTICE files</a>. (violetagg)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54932">54932</a>: Correct the link to Tribes documentation. (violetagg)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add <code>@since</code> markers to the common annotations classes and
-        fix a few specification compliance issues. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update to Eclipse JDT Compiler 4.3.1. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update the Apache Jakarta JSTL implementation used by the exmaples web
-        application to 1.1.2. (markt)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add document for
+        <code>o.a.c.tribes.group.interceptors.TcpFailureDetector</code>.
+        (kfujino)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.37 (jfclere)"><!--()--></a><a name="Tomcat_6.0.37_(jfclere)"><strong>Tomcat 6.0.37 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2013-05-03</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.37 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.37_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.40 (markt)"><!--()--></a><a name="Tomcat_7.0.40_(markt)"><strong>Tomcat 7.0.40 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2013-05-09</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.40 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.40_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Tomcat's internal copy of Commons FileUpload to FileUpload 1.3.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54178">54178</a>, CVE-2013-2071: Protect against
+        <code>AsyncListener</code> implementations that throw
+        <code>RuntimeException</code>s in response to an event. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54791">54791</a>: Restore <code>tools.jar</code> entry in
+        <code>jarsToSkip</code> property to prevent warnings when running Tomcat
+        from Eclipse. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54851">54851</a>: When scanning for web fragments, directories without
+        any web-fragment.xml should not impact the status of distributable
+        element. Patch provided by Trask Stalnaker. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When an error occurs during the sending of a WebSocket message, notify
+        the Inbound side (where all the events occur that the application reacts
+        to) that an error has occurred and that the connection is being closed.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54906">54906</a>: Better error message if a
+        <code>ConcurrentModificationException</code> occurs while checking for
+        memory leaks when a web application stops. Also ensure that the
+        exception does not cause remaining checks to be skipped. Based on a
+        patch by NateC.
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow 204 responses (no content) to include entity headers as required
+        by RFC2616. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.40 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.40_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52055">52055</a>: Ensure that filters are recycled. (markt/kkolinko)
+        Ensure write errors when using HTTP Upgrade with the APR/native
+        connector result in <code>IOException</code>s rather than errors being
+        silently swallowed. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.40 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.40_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54802">54802</a>: Provide location information for exceptions thrown
+        by JspDocumentParser. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52184">52184</a>: Reduce log level for invalid cookies. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54801">54801</a>: Do not attempt to parse text that looks like an EL
+        expressions inside a scriptlet in a JSP document because EL expressions
+        are not permitted in scriptlets. (kkolinko/markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53481">53481</a>: Added support for SSLHonorCipherOrder to allow
-        the server to impose its cipher order on the client. Based on a patch
-        provided by Marcel &#352;ebek. (schultz)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54821">54821</a>: Do not attempt to parse text that looks like an EL
+        expressions in a JSP document if EL expressions have been disabled.
+        (kkolinko/markt)  
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54044">54044</a>: Correct bug in timestamp cache used by logging
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54888">54888</a>: Add support for CSV lists with the ForEach tag plugin.
+        Patch provided by Sheldon Shao. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.40 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.40_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add several improvements for FarmWarDeployer. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.40 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.40_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54872">54872</a>: Correct Cluster Receiver page of Tomcat
+        documentation. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.40 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.40_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Document <code>StatementCache</code> interceptor. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix minor threading issue in <code>ConnectionPool</code>.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54732">54732</a>: Fix leak of statements in <code>StatementCache</code>
+        interceptor. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix NPE in <code>SlowQueryReportJmx</code> when running
+        <code>TestSlowQueryReport</code> test. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.40 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.40_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Eclipse JDT Compiler 4.2.2. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54890">54890</a>: Update to Apache Commons Daemon 1.0.15. (mturk)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Convert remaining unit tests to JUnit 4 and enable Checkstyle rule
+        that forbids use of methods from JUnit 3. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove unneeded permissions for reading UserDataHelper properties
+        from <code>catalina.policy</code> file. The class that needed those
+        was moved in 7.0.26. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.39 (markt)"><!--()--></a><a name="Tomcat_7.0.39_(markt)"><strong>Tomcat 7.0.39 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2013-03-26</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.39 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.39_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure a log message is generated when a web application fails to start
+        due to an error processing a ServletContainerInitializer. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent NPE in JAR scanning when running in an environment where the
+        bootstrap class loader is not an ancestor of the web application class
+        loader such as OSGi environments. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that, if a call to UEncoder#encodeURL is made, all internal
+        structures are properly cleaned. (violetagg)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54660">54660</a>: Enable the modification of an access log's
+        <code>fileDateFormat</code> attribute while the access log is in use.
+        The change will take effect when the next entry is made to the access
+        log. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Tomcat's internal copy of Commons FileUpload to FileUpload trunk,
+        revision 1458500 and the associated extract from Commons IO to 2.4.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54702">54702</a>: Prevent file descriptors leak and ensure that files
+        are closed when parsing web application deployment descriptors.
+        (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54707">54707</a>: Further relax the parsing of DIGEST authentication
+        headers to allow for buggy clients that quote values that RFC2617 states
+        should not be quoted. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Enable support for MBeans with multiple operations with the same name
+        but different signatures. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Deprecate Tomcat's internal Base 64 encoder/decoder and switch to
+        using a package renamed copy of the Commons Codec implementation.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that StandardJarScanner#scan will use the provided class loader
+        when scanning the class loader hierarchy. (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.39 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.39_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54690">54690</a>: Fix a regression caused by the previous fix for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54406">54406</a>. If no values are specified for sslEnabledProtocols or
+        ciphers use the default values for server sockets rather than the
+        default values for client sockets. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.39 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.39_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Correct Deployer, Manager and Context pages of Tomcat documentation.
+        (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.39 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.39_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52318">52318</a>: Version for imported package
+        <code>org.apache.juli.logging</code> is extended to include also 7.0.x
+        versions. The fix is applicable only when running in OSGi environment.
+        Patch provided by Martin Lichtin. (violetagg)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54599">54599</a>: Do not print connection password in
+        <code>PoolProperties.toString()</code>. Based on a patch by
+        Daniel Mikusa. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54684">54684</a>: Add <code>javax.naming.spi</code> to 
+        <code>Import-Package</code> header in MANIFEST.MF in order to resolve
+        <code>ClassNotFoundException</code> when running in OSGi environment.
+        (violetagg)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.39 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.39_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update to Apache Commons Daemon 1.0.14 to resolve <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54609">54609</a>
+        which meant that installation of Windows service could fail
+        producing incorrect service launch command. (mturk)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure HEAD requests return the correct content length when the
+        requested resource uses a Writer. Patch by Nick Williams. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.38 (markt)"><!--()--></a><a name="Tomcat_7.0.38_(markt)"><strong>Tomcat 7.0.38 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.38 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.38_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the request start time (used by the access log valve to
+        calculate request processing time) is correctly recorded for the HTTP
+        NIO connector. In some cases the request processing time may have been
+        longer than that recorded. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add one more library from JDK 7 to the value of <code>jarsToSkip</code>
+        property in the <code>catalina.properties</code> file. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53871">53871</a>: If annotation scanning results in a
+        <code>StackOverflowError</code> due to broken class dependencies, add
+        the class hierarchy that triggered the exception to the error message.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a new option to the standard JarScanner implementation
+        (<code>scanBootstrapClassPath</code>) to control if the bootstrap
+        classpath is scanned or not. By default, it will not be scanned. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Provide more consolidated servlet MBean data in the webapp MBean.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54584">54584</a>: Take account of the delegate attribute when building
+        the web application class path to pass to the JSP compiler. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Copy the updated and re-packaged UTF-8 decoder from Tomcat 8.0.x and use
+        this improved decoder for WebSocket connections. Remove the WebSocket
+        specific UTF-8 decoder. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54602">54602</a>: Recycle the byte to character converter used for URIs
+        between requests to ensure an error in one request does not trigger a
+        failure in the next request. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Use the newly added improved UTF-8 decoder for decoding UTF-8 encoded
+        URIs and UTF-8 encoded request bodies. Invalid UTF-8 URIs will not
+        cause an error but will make use of the replacement character when an
+        error is detected. This will allow web applications to handle the URI
+        which will most likely result in a 404 response. The fall-back to
+        decoding with ISO-8859-1 if UTF-8 decoding fails has been removed.
+        Invalid UTF-8 sequences in a request body will trigger an IOException.
+        The way the decoder is used has also been improved. The notable change
+        is that invalid sequences at the end of the input now trigger an error
+        rather than being silently swallowed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54624">54624</a>: Ensure that the correct request body length is used
+        when swallowing a request body after FORM authentication prior to
+        restoring the original request preventing possible hanging when
+        restoring POST requests submitted over AJP. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54628">54628</a>: When writing binary WebSocket messages write from
+        start position in array rather than the start of the array. Patch
+        provided by blee. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.38 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.38_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Refactor char encoding/decoding using NIO APIs. (remm)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.38 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.38_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54203">54203</a>: Complete the Javadoc for
+        <code>javax.servlet.http.Part</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54638">54638</a>: Fix display of "Used" memory value for memory pools
+        on the status page in Manager web application when the page is rendered
+        as XML. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct typos in configuration samples on SSL Configuration page
+        of Tomcat documentation. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Disable support for comments on Changelog page of Tomcat
+        documentation. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix several issues with <code>status.xsd</code> schema in Manager web
+        application, testing it against actual output of StatusTransformer
+        class. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Clarify the documentation on how context paths may be configured for web
+        applications. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.38 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.38_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54601">54601</a>: Change <code>catalina.sh</code> to consistently use
+        <code>LOGGING_MANAGER</code> variable to configure logging,
+        instead of modifying <code>JAVA_OPTS</code> one. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.37 (markt)"><!--()--></a><a name="Tomcat_7.0.37_(markt)"><strong>Tomcat 7.0.37 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2013-02-18</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.37 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.37_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54521">54521</a>: Ensure that concurrent requests that require a DIGEST
+        authentication challenge receive different nonce values. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54534">54534</a>: Ensure that, if a call to
+        <code>StandardWrapper#isSingleThreadModel()</code> triggers the loading
+        of a Servlet, the correct class loader is used. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54536">54536</a>: Ensure the default error page is displayed if a custom
+        HTTP status code is used when calling
+        <code>HttpServletResponse#sendError(int, String)</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.37 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.37_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54456">54456</a>: Ensure that if a client aborts a request when sending
+        a chunked request body that this is communicated correctly to the client
+        reading the request body. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the native component of the APR/native connector to 1.1.27 and
+        make that version the recommended minimum version. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.37 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.37_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54239">54239</a>: Enable web applications to provide their own
+        Expression Language interpreter to enable them to optimise processing of
+        expressions. Based on a patch by Sheldon Shao. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.37 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.37_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54505">54505</a>: Create clearer links from the JNDI How-To to the
+        Tomcat specific options for configuring JNDI resources. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.37 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.37_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Apache Commons Daemon 1.0.13. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.36 (markt)"><!--()--></a><a name="Tomcat_7.0.36_(markt)"><strong>Tomcat 7.0.36 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.36 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.36_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make additional allowances for buggy client implementations of HTTP
+        DIGEST authentication. This is a follow-on to <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54060">54060</a>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54438">54438</a>: Fix a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52953">52953</a> that
+        triggered a NPE when digested passwords were used and an authentication
+        attempt was made for a user that did not exist in the realm. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54448">54448</a>: Correctly handle <code>@Resource</code> annotations on
+        primitives. Patch provided by Violeta Georgieva. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54450">54450</a>: Correctly handle resource injection when part of the
+        servlet properties uses <code>@Resource</code> and the other uses
+        <code>injection-target</code>. Patch provided by  Violeta Georgieva.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54458">54458</a>: Include exception when logging errors in the
+        DataSourceRealm. Patch provided by  Violeta Georgieva. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54483">54483</a>: Correct one of the Spanish translations. Based on a
+        suggestion from adinamita. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent the SSO deregister when web application is stopped or reloaded.
+        When StandardManager(pathname="") or DeltaManager stops normally, all
+        sessions in the context are expired.
+        In this case, because most sessions is not time-out, SSO deregister was
+        triggered. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Include the exception in the log message if the parsing of the
+        context.xml file fails. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54497">54497</a>: Make memory leak detection code more robust so a
+        failure in the leak detection code does not prevent the Context from
+        stopping unless the error is fatal to the JVM. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54507">54507</a>: Do not start the background thread that is used for
+        expiring sessions (amongst other things) until the web application is
+        fully started. Stop the background thread as soon as the web application
+        is stopped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow WebSocket Ping/Pong messages to be sent between fragments of a
+        fragmented message. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54612">54612</a>: Check if the socket is closed before trying to write a
+        WebSocket message to it. Also, flush any partial buffered data before
+        closing the socket. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.36 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.36_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54324">54324</a>: Allow APR connector to disable TLS compression
+        if OpenSSL supports it. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54406">54406</a>: Fix NIO HTTPS connector to prune specified <code>
+        ciphers</code> and <code>sslEnableProtocols</code> options to those
+        supported by the SSL implementation, sharing logic with the BIO
+        connector. Modified ciphers and sslEnabledProtocols option pruning to
+        not silently revert to JVM defaults when none of the options specified
+        are supported - new behaviour is to warn and explicitly enable no
+        options. (timw)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Align NIO HTTP connector with other HTTP connectors and include leading
+        blank lines when determining the size of the HTTP headers. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.36 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.36_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53869">53869</a>: Performance improvement for pages with lots of heavily
+        nested tags. Retain a reference to the root JSP context rather than
+        traversing the hierarchy on every call. Based on a patch suggested by
+        Sheldon Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54440">54440</a>: Correct a regression caused by the changes for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54240">54240</a> that broke compilation of JSPs with JspC. Patch
+        provided by Sheldon Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54466">54466</a>: Improve error message by including the name of the
+        file when the java file generated from a tag file cannot be compiled.
+        Based on a patch by Sheldon Shao. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.36 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.36_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix incorrect increment of <code>counterSend_EVT_SESSION_EXPIRED</code>
+        and <code>counterSend_EVT_CHANGE_SESSION_ID</code>. These values are not
+        incremented if no members active in cluster group. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54476">54476</a>: Correct error in Javadoc of GroupChannel send methods
+        to maker clear that the minimum length of the destination member array
+        is one, not two. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent SSO deregister when node shutdown normally in cluster
+        environment. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Check cluster member before sending replicate message in
+        ClusterSingleSignOn. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.36 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.36_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54461">54461</a>: Improve the documentation for the compiler attribute
+        in the Jasper how-to. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add Jespa to the list of third-party Windows authentication providers
+        and make external links in the documentation for those providers
+        <code>no-follow</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.36 (markt)/Tribes"><!--()--></a><a name="Tomcat_7.0.36_(markt)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54496">54496</a>: Don't use a hard-coded class name in
+        <code>MemberImpl.toString()</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.36 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.36_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Apache Commons Daemon 1.0.12. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.35 (markt)"><!--()--></a><a name="Tomcat_7.0.35_(markt)"><strong>Tomcat 7.0.35 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2013-01-16</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.35 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.35_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54247">54247</a>: Prevent <code>ClassNotFoundException</code>s on stop
+        when running as a service. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54249">54249</a>: Ensure resource properties are available when the
+        context path contains encoded characters such as a space. This triggered
+        compilation issues in Jasper. Patch provided by Polina Genova. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54256">54256</a>: Improve error reporting when a JAR file fails
+        extension validation by including the name of the JAR file in the
+        exception. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow web applications to be stopped cleanly even if filters throw
+        exceptions when their destroy() method is called. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix memory leak of servlet instances when running with a
+        SecurityManager and either init() or destroy() methods fail
+        or the servlet is a SingleThreadModel one. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Cleanup method cache lookup code in <code>SecurityUtil</code> class.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make the Tomcat 7 non-JSR356 WebSocket implementation non-blocking
+        (where supported by the connector) between the HTTP upgrade and the
+        first WebSocket message from the client to the server. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54262">54262</a>: Ensure that an empty
+        <code>&lt;absolute-ordering /&gt;</code> element in the main web.xml
+        file disables scanning for web fragments. Based on a patch by  Violeta
+        Georgieva. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54284">54284</a>: As per clarification from the Servlet EG, anonymous
+        Filters and Servlets are not permitted. Patch by Violeta Georgieva.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54371">54371</a>: Prevent exceptions when processing web fragments for
+        unexpanded WAR files when the context path contains characters that
+        need to be encoded in URLs such as spaces. Based on a patch by Polina
+        Genova. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54372">54372</a>: Make HTTP Digest authentication header parsing
+        tolerant of invalid headers sent by known buggy clients. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54377">54377</a>: Correctly set request attributes for AccessLog in
+        RemoteIpFilter. Patch by Violeta Georgieva. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54379">54379</a>: Implement support for post-construct and pre-destroy
+        elements in web.xml. Patch by Violeta Georgieva. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54380">54380</a>: Do not try to register servlets or contexts into the
+        mapper too early (which just caused a warning to be logged). (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix NPE in <code>WebappLoader.stopInternal</code> when stop is called
+        after a failed start. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54381">54381</a>: Add support for receiving WebSocket pong messages.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54382">54382</a>: Fix NPE when SSI processing is enabled and an empty
+        SSI directive is present. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix <code>ArrayIndexOutOfBoundsException</code> in
+        <code>HttpParser</code> when parsing incorrect HTTP headers. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54387">54387</a>: Deployment must fail when multiple servlets are mapped
+        to the same url-pattern. (markt)  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54391">54391</a>: Provide a value for the
+        <code>javax.servlet.context.orderedLibs</code> attribute. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.35 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.35_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54248">54248</a>: Ensure that byte order marks are swallowed when using
+        a Reader to read a request body with a BOM for those encodings that
+        require byte order marks. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix release of processors in <code>AjpNioProtocol</code>. Wrong object
+        was used as a key in the connections map. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.35 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.35_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54240">54240</a>: Add support for auto-detection and configuration of
+        JARs on the classpath that provide tag plug-in implementations. Based on
+        a patch by Sheldon Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54241">54241</a>: Revert the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=35410">35410</a> as it was not
+        compliant with the JSP specification, specifically that
+        <code>&lt;%= obj %&gt;</code> must be translated to
+        <code>out.print(obj)</code> which in turn becomes
+        <code>out.write(String.valueOf(obj))</code>. This will trigger a
+        <code>NullPointerException</code> if <code>obj.toString()</code> returns
+        <code>null</code>. The fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=35410">35410</a> incorrectly suppressed
+        the <code>NullPointerException</code> in this case. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54242">54242</a>: Correct handle null iterations with in the JSTL
+        ForEach tag plug-in implementation. Patch provided by Sheldon Shao.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54260">54260</a>: Avoid <code>NullPointerException</code> when using
+        JSP unloading and tag files. (markt)  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54370">54370</a>: Improve handling of nulls when trying to match sets of
+        parameters to a method in EL. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54338">54338</a>: Correctly coerce the value to the expected type when
+        using the tag plug-in for the JSTL set tag. Patch provided by Sheldon
+        Shao. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.35 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.35_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54244">54244</a>: Clarify the documentation for the BIO and NIO SSL
+        configuration attributes <code>sslEnabledProtocols</code> and
+        <code>sslProtocol</code> within the documentation web application.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Integrate documentation of Tomcat 7 with Apache Comments System.
+        People can leave their comments when reading documentation online
+        at the <a href="http://tomcat.apache.org/">tomcat.apache.org</a>
+        site. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.35 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.35_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54390">54390</a>: Use 'java_home' on Mac OS X to auto-detect JAVA_HOME.
+        (schultz)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.34 (markt)"><!--()--></a><a name="Tomcat_7.0.34_(markt)"><strong>Tomcat 7.0.34 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-12-12</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.34 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.34_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53871">53871</a>: Improve error message if annotation scanning fails
+        during web application start due to poor configuration or illegal
+        cyclic inheritance with the application's classes. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix unit test for AccessLogValve when using non-GMT time zone. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54170">54170</a>: Ensure correct registration of Filters and Servlets in
+        the JMX registry if the Filter or Servlet name includes a character that
+        must be quoted if used in an ObjectName value. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add new attribute <code>renameOnRotate</code> to the AccessLogValve.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54190">54190</a>: Correct unit tests for BASIC authentication so that
+        session timeout is correctly tested. Also refactor unit test to make it
+        easier to add additional tests. Patch by Brian Burch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54220">54220</a>: Ensure the ErrorReportValve only generates an error
+        report if the error flag on the response has been set. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Simplify time zone handling in the access log valve and correctly handle
+        various edge cases for non-standard DST changes. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.34 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.34_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54198">54198</a>: Clarify that
+        <code>HttpServletResponse.sendError(int)</code> results in an HTML
+        response by default. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54207">54207</a>: Correct JNDI factory package name in Javadoc for
+        <code>org.apache.naming.java.javaURLContextFactory</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.34 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.34_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Fix a handful of Eclipse warnings in the JDBC pool source code including
+        the warnings reported in <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53565">53565</a>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54150">54150</a>: Make sure that SlowQueryReportJmx mbean deregistered
+        during webapp shutdown. Reported by Alex Franken. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54194">54194</a>: Make sure that connection pool mbean is not registered
+        when jmxEnabled is false. Patch provided by tobias.gierke. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.34 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.34_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Eclipse JDT Compiler 4.2.1. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.33 (markt)"><!--()--></a><a name="Tomcat_7.0.33_(markt)"><strong>Tomcat 7.0.33 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-11-21</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.33 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.33_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53960">53960</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54115">54115</a>: Extensions to HttpClient test
+        helper class. Patches by Brian Burch. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53993">53993</a>: Avoid a possible NPE in the AccessLogValve when the
+        session ID is logged and a session is invalidated. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add support for LAST_ACCESS_AT_START system property to
+        PersistentManager. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Update MIME type mapping with additional / updated mime.types from the
+        Apache web server. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54007">54007</a>: Fix a memory leak that prevented deletion of a
+        context.xml file associated with a Context that had failed to deploy.
+        Also fix the problems uncovered with undeploying such a Context once the
+        leak had been fixed and the file could be deleted. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54044">54044</a>: Correct bug in timestamp cache used by logging
         (including the access log valve) that meant entries could be made with
         an earlier timestamp than the true timestamp. (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54054">54054</a>: Do not share shell environment variables between
+        multiple instances of the CGI servlet. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54060">54060</a>: Use a simple parser rather than a regular expression
+        to parse HTTP Digest authentication headers so the header is correctly
+        parsed. The new approach is also faster and generates less garbage.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54068">54068</a>: Rewrite the web fragment ordering algorithm to resolve
+        multiple issues that resulted in incorrect ordering or failure to find
+        a correct, valid order. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        The HTTP header parser added to address <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52811">52811</a> has been
+        removed and replaced with the light-weight HTTP header parser created to
+        address <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54060">54060</a>. The new parser includes a work-around for a
+        bug in the Adobe Acrobat Reader 9.x plug-in for Microsoft Internet
+        Explorer that was identified when the old parser was introduced
+        (<a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53814">53814</a>).  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54076">54076</a>: Add an alternative work-around for clients that use
+        SPNEGO authentication and expect the authenticated user to be cached
+        per connection (Tomcat only does this if an HTTP session is available).
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54087">54087</a>: Correctly handle (ignore) invalid If-Modified-Since
+        header rather than throwing an exception. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54096">54096</a>: In web.xml, &lt;env-entry&gt; should accept any type
+        that has a constructor that takes a single String or char. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54127">54127</a>: Add support for sending a WebSocket Ping. Patch
+        provided by Sean Winterberger. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Fix CVE-2013-2067:
         In FormAuthenticator: If it is configured to change Session IDs,
         do the change before displaying the login form. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54054">54054</a>: Do not share shell environment variables between
-        multiple instances of the CGI servlet. (markt)
+        Ensure <code>AsyncListener.timeout()</code> and
+        <code>AsyncListener.complete()</code> are called with the correct
+        thread context class loader. (fhanik)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54087">54087</a>: Correctly handle (ignore) invalid If-Modified-Since
-        header rather than throwing an exception. (markt/kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54123">54123</a>: If an asynchronous request times out without any
+        <code>AsyncListener</code>s defined, a 500 error will be triggered.
+        (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54220">54220</a>: Ensure the ErrorReportValve only generates an error
-        report if the error flag on the response has been set. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54124">54124</a>: Correct provided value of request attribute
+        <code>javax.servlet.async.request_uri</code> and add missing request
+        attribute <code>javax.servlet.async.path_info</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add <code>denyStatus</code> initialization parameter to
+        <code>CsrfPreventionFilter</code>, allowing to customize the HTTP
+        status code used for denied requests. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix memory leak of servlet instances when running with a
-        SecurityManager and either init() or destroy() methods fail
-        or the servlet is a SingleThreadModel one, and of filter instances
-        if their destroy() method fails with an Error. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54141">54141</a>: Increase the permitted number of nested Realm levels
+        from 2 to 3 by default and make the limit configurable via a system
+        property. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54382">54382</a>: Fix NPE when SSI processing is enabled and an empty
-        SSI directive is present. (markt)
+        Revert occasional API change in <code>BaseDirContext</code> class that
+        was done in 7.0.32. Methods should not be <code>final</code>. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54483">54483</a>: Correct one of the Spanish translations. Based on a
-        suggestion from adinamita. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54527">54527</a>: Synchronize conf/web.xml mime mapping with Tomcat 7.
+        Prevent failures in the AccessLogValve when running under a
+        SecurityManager and the first request received is an asynchronous one.
         (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.37 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.37_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.33 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.33_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54248">54248</a>: Ensure that byte order marks are swallowed when using
-        a Reader to read a request body with a BOM for those encodings that
-        require byte order marks. (markt)
+        Correct an issue that prevented WebSockets from being used over SSL when
+        using the HTTP NIO connector. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54324">54324</a>: Allow APR connector to disable TLS compression
-        if OpenSSL supports it. (schultz)
+       <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54022">54022</a>: Ensure the Comet END event is triggered on client
+       disconnect with APR/native on Windows Vista/2k8 or later. Patch provided
+       by Douglas Beachy. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54456">54456</a>: Ensure that if a client aborts a request when sending
-        a chunked request body that this is communicated correctly to the client
-        reading the request body. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update the native component of the APR/native connector to 1.1.27 and
-        make that version the recommended minimum version. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54067">54067</a>: Ensure responses with 1xx response codes are correctly
+        marked as not containing an entity body. This caused an issue for some
+        WebSocket clients when an Transfer-Encoding header was sent with the
+        101 (HTTP upgrade) response. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.37 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.37_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.33 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.33_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53867">53867</a>: Optimise the XML escaping provided by the PageContext
+        implementation. Based on a patch by Sheldon Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53896">53896</a>: Use an optimised CompositeELResolver for Jasper that
+        skips resolvers that are known to be unable to resolve the value. Patch
+        by Jarek Gawor. (markt)
+      </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54615">54615</a>:  Tomcat 6 doesn't build against ecj 4.x (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53986">53986</a>: Correct a regression introduced by the fix for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53713">53713</a>. JSP comments that ended with the sequence ---%&gt; (or
+        any similar sequence with a odd number of - characters) was not
+        correctly parsed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54011">54011</a>: Fix a bug in the tag plug-in for
+        <code>&lt;c:out&gt;</code> that triggered a JSP compilation error if the
+        <code>escapeXml</code> attribute was used. Patch provided by Sheldon
+        Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Follow up to <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54011">54011</a>. Simplify generated code for
+        <code>&lt;c:out&gt;</code>. Based on a patch by Sheldon Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54012">54012</a>: Fix a bug in the tag plug-in infrastructure that meant
+        the <code>&lt;c:set&gt;</code> triggered a JSP compilation error when
+        used in a tag file. Based on a patch provided by Sheldon Shao. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54017">54017</a>: Simplify coercion of <code>String</code> instances to
+        <code>Object</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54144">54144</a>: Fix a bug in the tag plug-in for
+        <code>&lt;c:out&gt;</code> that meant that if the value of the tag
+        evaluated to a <code>java.io.Reader</code> object then it was not
+        correctly handled. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.37 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.37_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.33 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.33_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54045">54045</a>: Make sure getMembers() returns available member when
+        Add getSessionIdsFull operation to mbeans-descriptor. listSessionIdsFull
+        no longer exist. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54086">54086</a>: Fix threading issue when stopping an 
+        <code>NioReceiver</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.33 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.33_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54143">54143</a>: Add display of the memory pools usage (including
+        PermGen) to the Status page of the Manager web application. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.33 (markt)/Tribes"><!--()--></a><a name="Tomcat_7.0.33_(markt)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=54045">54045</a>: Make sure getMembers() returns available member when
         TcpFailureDetector works in static cluster. (kfujino)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.37 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.37_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.32 (markt)"><!--()--></a><a name="Tomcat_7.0.32_(markt)"><strong>Tomcat 7.0.32 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-10-09</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.32 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.32_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=22278">22278</a>: Add a commented out sample configuration of
-        <code>RemoteAddrValve</code> to <code>META-INF/context.xml</code>
-        files of the Manager and Host Manager applications. (kkolinko)
-      </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54080">54080</a>: Clarify documentation for initial value of
-        <code>internalProxies</code> attribute of <code>RemoteIpValve</code>.
-        (schultz/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54198">54198</a>: Clarify that
-        <code>HttpServletResponse.sendError(int)</code> results in an HTML
-        response by default. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54207">54207</a>: Correct JNDI factory package name in Javadoc for
-        <code>org.apache.naming.java.javaURLContextFactory</code>. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.37 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.37_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-       Add sample Apache Commons Daemon JSVC wrapper script bin/daemon.sh that
-       can be used with /etc/init.d. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        In the build configuration: introduce property "tomcat.output" that is
-        used to specify location of the build output directory. This simplifies
-        configuration if someone wants to move the <code>output</code> directory
-        elsewhere (e.g. out of the source tree). (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54390">54390</a>: Use 'java_home' on Mac OS X to auto-detect JAVA_HOME.
-        (schultz)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54601">54601</a>: Change catalina.sh to consistently use LOGGING_MANAGER
-          variable to configure logging, instead of modifying JAVA_OPTS one.
-          (kkolinko) 
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=54890">54890</a>: Update to Apache Commons Daemon 1.0.15. (mturk)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.36 (jfclere)"><!--()--></a><a name="Tomcat_6.0.36_(jfclere)"><strong>Tomcat 6.0.36 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-10-19</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.36 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.36_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48692">48692</a>: Provide option to parse
-        <code>application/x-www-form-urlencoded</code> PUT requests. (schultz)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50306">50306</a>: New StuckThreadDetectionValve to detect requests that
-        take a long time to process, which might indicate that their processing
-        threads are stuck. Based on a patch provided by TomLu. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50570">50570</a>: Enable FIPS mode to be set in AprLifecycleListener.
-        Based upon a patch from Chris Beckey. Note that this mode requires
-        tomcat-native 1.1.23 or later linked to a FIPS-capable OpenSSL library,
-        which one has to build by themselves. (schultz/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve synchronization and error handling in AprLifecycleListener.
-        Do not allow to change SSL options if SSL has already been initialized.
-        (schultz/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52225">52225</a>: Fix ClassCastException when adding an alias for an
-        existing host via JMX. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52293">52293</a>: Correctly handle the case when
-        <code>antiResourceLocking</code> is enabled at the Context level when
-        <code>unpackWARs</code> is disabled at the Host level. Correctly
-        handle multi-level contexts when <code>antiResourceLocking</code>
-        is enabled. Patch by Justin Miller. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Do not throw IllegalArgumentException from parseParameters() call
-        when chunked POST request is too large, but treat it like an IO error.
-        The <code>FailedRequestFilter</code> filter can be used to detect this
-        condition. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52384">52384</a>: Do not fail with parameter parsing when debug logging
-        is enabled. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Do not flag extra '&amp;' characters in parameters as parse errors.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52488">52488</a>: Correct typos: exipre -&gt; expire. Based on a patch by
-        prockter. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Reduce log level for the message about hitting
-        <code>maxParameterCount</code> limit from WARN to INFO.
-        Fix limit comparison to allow exactly <code>maxParameterCount</code>
-        parameters, as documentation says, instead of
-        <code>(maxParameterCount-1)</code>. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Slightly improve performance of UDecoder.convert(). Align
-        <code>%2f</code> handling between implementations. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add <code>denyStatus</code> attribute to <code>RequestFilterValve</code>
-        (<code>RemoteAddrValve</code>, <code>RemoteHostValve</code> valves).
-        It allows to use different HTTP response code when rejecting denied
-        request. E.g. 404 instead of 403. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add <code>SetCharacterEncodingFilter</code> (similar to the one
-        contained in the examples web application) to the
-        <code>org.apache.catalina.filters</code> package so that it is
-        available for all web applications. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52500">52500</a>: Added configurable mechanism to retrieve user names
-        from X509 client certificates. Based on a patch provided by
-        Michael Furman. (schultz/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52719">52719</a>: Fix a theoretical resource leak in the JAR validation
-        that checks for non-permitted classes in web application JARs. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52830">52830</a>: Correct JNDI lookups when using
-        <code>javax.naming.Name</code> to identify the resource rather than a
-        <code>java.lang.String</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52850">52850</a>: Extend memory leak prevention and detection code to
-        work with IBM as well as Oracle JVMs. Based on a patch provided by
-        Rohit Kelapure. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52996">52996</a>: In <code>StandardThreadExecutor</code>:
-        Add the ability to configure a job queue size
-        (<code>maxQueueSize</code> attribute).
-        Add a variant of execute method that allows to specify a timeout for
-        how long we want to try to add something to the queue.
-        Based on a patch by R&uuml;diger Pl&uuml;m. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53047">53047</a>: If a JDBCRealm or DataSourceRealm is configured for
-        an all roles mode that only requires authorization (and no roles) and no
-        role table or column is defined, don't populate the Principal's roles.
-        (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53050">53050</a>: Fix handling of entropy value when initializing
-        session id generator in session manager. Based on proposal by
-        Andras Rozsa. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53056">53056</a>: Add APR version number to tcnative version INFO log
-        message. (schultz)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53057">53057</a>: Add OpenSSL version number INFO log message when
-        initializing. (schultz)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53071">53071</a>: Use the message from the Throwable for the error
-        report generated by the <code>ErrorReportValve</code> if none was
-        specified via <code>sendError()</code>. Use the standard text for HTTP
-        error codes. (markt/rjung)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53230">53230</a>: Change session managers to throw
-        TooManyActiveSessionsException instead of IllegalStateException
-        when the maximum number of sessions has been exceeded and a new
-        session will not be created. (schultz/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53267">53267</a>: Ensure that using the GC Daemon Protection feature of
-        the <code>JreMemoryLeakPreventionListener</code> does not trigger a
-        full GC every hour. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53531">53531</a>: Fix ExpandWar.expand to check the return value of
-        File.mkdir and File.mkdirs. (schultz)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make the CSRF nonce cache in <code>CsrfPreventionFilter</code>
-        serializable so that it can be replicated across a cluster and/or
-        persisted across Tomcat restarts. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53584">53584</a>: Ignore path parameters when comparing URIs for FORM
-        authentication. This prevents users being prompted twice for passwords
-        when logging in when session IDs are being encoded as path parameters.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        CVE-2012-3439:
-        Various improvements to the DIGEST authenticator including
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52954">52954</a>, the disabling caching of an authenticated user in the
-        session by default, tracking server rather than client nonces and better
-        handling of stale nonce values. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        CVE-2012-3546: Fix bypass of security constraint checks with FORM
-        authentication. Remove unneeded processing in <code>RealmBase</code>.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53800">53800</a>: <code>FileDirContext.list()</code> did not provide
-        correct paths for subdirectories. Patch provided by Kevin Wooten.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53830">53830</a>: Better handling of <code>Manager.randomFile</code>
-        default value on Windows. (kkolinko)
+        Revert multiple operation support for the <code>JMXProxyServlet</code>
+        pending further discussion. (schultz)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         CVE-2012-4431: Fix bypass of <code>CsrfPreventionFilter</code> when
@@ -789,39 +7258,798 @@
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.36 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.36_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.32 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.32_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42181">42181</a>: Better handling of edge conditions in chunk header
-        processing. (kkolinko)
+        Correct the couple of broken links in the Tomcat Javadoc. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.32 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.32_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update optional Checkstyle library to 5.6. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.31 (markt)"><!--()--></a><a name="Tomcat_7.0.31_(markt)"><strong>Tomcat 7.0.31 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.31 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.31_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add one library from JDK 7 to the value of <code>jarsToSkip</code>
+        property in the <code>catalina.properties</code> file. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52777">52777</a>: Add an option to automatically remove old, unused
+        versions (ones where there are no longer any active sessions) of
+        applications deployed using parallel deployment. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53828">53828</a>: Use correct status code when closing a WebSocket
+        connection normally in response to a close frame from a client. (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51477">51477</a>: Support all SSL protocol combinations in the APR/native
-        connector. This only works when using the native library version 1.1.21
-        or later. (rjung)
+        <code>JMXProxyServlet</code> now allows multiple operation commands like
+        <code>invokeAndSet</code>, <code>invokeAndGet</code>,
+        etc. (schultz) <em>Note</em>: reverted in 7.0.32.
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52055">52055</a> (comment 14): Correctly reset
-        <code>ChunkedInputFilter.needCRLFParse</code> flag when the filter
-        is recycled. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53843">53843</a>: <code>request.isAsyncStarted()</code> must continue to
+        return true until the dispatch actually happens (which at the earliest
+        isn't until the thread where <code>startAsync()</code> was called
+        returns to the container). (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52606">52606</a>: Ensure replayed POST bodies are available when using
-        AJP. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53863">53863</a>: Ensure that the implicit servlets (JSP and default) are
+        marked as override-able when using embedded mode. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52858">52858</a>, CVE-2012-4534: Fix high CPU load with SSL, NIO and
-        sendfile when client breaks the connection before reading all the
-        requested data.
-        (fhanik/kkolinko)
+        When the <code>DefaultServlet</code> is under heavy load, the HTTP
+        header parser added to address <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52811">52811</a> generates large amounts
+        of garbage and uses significant CPU time. A cache has been added that
+        significantly reduces the overhead of this parser. (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53119">53119</a>: Prevent buffer overflow errors being reported when a
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53854">53854</a>: Make directory listings work correctly when aliases
+        are used. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.31 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.31_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53713">53713</a>: Performance improvement of up to four times faster
+        parsing of JSP pages. Patch provided by Sheldon Shao. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.31 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.31_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make the cluster members and the cluster deployer associated with the
+        cluster accessible via JMX. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a behavior of TcpPingInterceptor#useThread. If set to false, ping
+        thread is never started. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.31 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.31_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Improve the documentation web application to clarify the difference
+        between the tag and version parameters when using text interface of the
+        Manager web application. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make sessions saved in the <code>Store</code> associated with a
+        <code>Manager</code> that extends <code>PersistentManager</code>
+        optionally visible (via the showProxySessions Servlet initialisation
+        parameter in web.xml) to the Manager web application. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.30 (markt)"><!--()--></a><a name="Tomcat_7.0.30_(markt)"><strong>Tomcat 7.0.30 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-09-06</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.30 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.30_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Automatically delete temporary files used by Servlet 3.0 file
+        upload (for parts which size is greater than
+        <code>file-size-threshold</code> option in web.xml)
+        when request processing completes. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53071">53071</a>: This additional fix for this issue improves the
+        formatting of Jasper errors (or any exceptions that use a multi-line
+        message) with the <code>ErrorReportValve</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53469">53469</a>: If a URL passed to
+        <code>javax.servlet.http.HttpServletResponse.encodeURL()</code> cannot
+        be made absolute, never encode it and return it unchanged. Previously,
+        the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53062">53062</a> meant than an
+        <code>IllegalArgumentException</code> was thrown. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53481">53481</a>: Added support for SSLHonorCipherOrder to allow
+        the server to impose its cipher order on the client. Based on a patch
+        provided by Marcel &#352;ebek. This feature requires
+        Tomcat Native 1.1.25 or later. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53498">53498</a>: Fix atomicity bugs in use of concurrent collections.
+        Based on a patch by Yu Lin. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression in the previous fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53062">53062</a> that did
+        not always correctly normalize redirect URLs when the redirect URL
+        included a query string or fragment component. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add missing getter and setter for <code>roleSearchAsUser</code> option
+        on JNDI Realm. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add some HTTP status codes registered at IANA. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53531">53531</a>: Fix ExpandWar.expand to check the return value of
+        File.mkdir and File.mkdirs. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53535">53535</a>: Reduce memory footprint when performing class scanning
+        on Context start. Patch provided by Cedomir Igaly. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53541">53541</a>: Fix JAR scanning when WEB-INF/lib is provided via
+        VirtualDirContext. Patch provided by Philip Zuev. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53574">53574</a>: Ensure Servlets defined using jsp-file are available
+        when metadata-complete is true. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53584">53584</a>: Ignore path parameters when comparing URIs for FORM
+        authentication. This prevents users being prompted twice for passwords
+        when logging in when session IDs are being encoded as path parameters.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53623">53623</a>: When performing a asynchronous dispatch after series
+        of forwards, ensure that the request properties are correct for the
+        request at each stage. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53624">53624</a>: Ensure that
+        <code>HttpServletResponse.sendRedirect()</code> works when called after
+        a dispatch from an <code>AsyncContext</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53641">53641</a>: Correct name of HTTP header used in WebSocket
+        handshake for listing the preferred protocols. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Document the constants that were added to the
+        <code>RequestDispatcher</code> interface in Servlet 3.0. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure custom error pages are not truncated if the page that triggered
+        the error set a content length header. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53677">53677</a>: Ensure that a 500 response rather than no response is
+        returned if the HTTP headers exceed the size limit. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53702">53702</a>: When merging web.xml fragments, allow for
+        <code>&lt;jsp-property-group&gt;</code> elements having multiple
+        <code>&lt;url-pattern&gt;</code> elements. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Always make the resulting web.xml available even if metadata-complete is
+        true. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53714">53714</a>: Provide separate system properties to control which
+        JARs are excluded from which scans when using the JarScanner. This
+        allows JARs to be excluded from all scans or only from TLD scanning
+        and/or Servlet 3.0 pluggability scanning. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add several JDK libraries to the value of <code>jarsToSkip</code>
+        property in the <code>catalina.properties</code> file. (markt, kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix typos etc. in the code that logs merged web.xml (as enabled by
+        <code>logEffectiveWebXml</code> option on Context). (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53758">53758</a>: When adding filters via
+        <code>FilterRegistration.Dynamic</code> the filters were added at the
+        wrong point because the <code>isMatchAfter </code> logic was inverted.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53783">53783</a>: Correctly handle JARs generated by tools that do not
+        create specific entries for directories. Patch provided by Violeta
+        Georgieva. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improvements to DIGEST authenticator including the disabling caching of
+        authenticated user in session by default, tracking server rather than
+        client nonces and better handling of stale nonce values. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve performance of DIGEST authenticator for concurrent requests.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        CVE-2012-3546: Fix bypass of security constraint checks with FORM
+        authentication. Remove unneeded processing in <code>RealmBase</code>.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53800">53800</a>: <code>FileDirContext.list()</code> did not provide
+        correct paths for subdirectories. Patch provided by Kevin Wooten.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53801">53801</a>: Overlapping URL patterns were sometimes merged
+        incorrectly in security constraints leading to incorrect 401 responses.
+        Note: it was possible for access to be denied when it should have been
+        granted but it was not possible for access to be granted when it should
+        have been denied. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.30 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.30_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove the <code>socket.soTrafficClass</code> from the BIO and NIO
+        HTTP and AJP connectors because any use of the option is either ignored
+        or in some cases (Java 7 with NIO) throws an Exception. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent possible NPE when processing Comet requests during Connector
+        shutdown. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=42181">42181</a>: Better handling of edge conditions in chunk header
+        processing. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53697">53697</a>: Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51881">51881</a>
+        that mean that in some circumstances the <code>comet</code> flag was not
+        reset on <code>HttpAprProcessor</code> instances. This caused problems
+        when the Processor was re-used for a new connection that would trigger a
+        <code>NullPointerException</code> and could result in a JVM crash.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53725">53725</a>: Fix possible corruption of GZIP'd output.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Better parsing of line-terminators for requests using chunked encoding.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Further improvements to handling of Comet END events when the connector
+        is stopped. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.30 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.30_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53545">53545</a>: Ensure buffered data is cleared when using a
+        jsp:forward action inside a classic custom tag. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53654">53654</a>: Support <code>file://</code> URLs for JSP
+        dependencies. Patch provided by Viola Lu. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53792">53792</a>: Support <code>MethodExpression</code>s that include a
+        method invocation that is not at the end of the expression. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.30 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.30_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix an issue when running under Java 7 which throws exceptions when
+        trying to set an invalid option whereas Java 6 silently swallowed them.
+        The option using the problem was <code>soTrafficClass</code>.
+        Investigations showed that this option had no effect for Cluster Channel
+        Receivers so it was removed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53513">53513</a>: Fix race condition between the processing of session
+        sync message and transfer complete message. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.30 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.30_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update JSTL version information in the JNDI section of the documentation
+        web application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53524">53524</a>: Correct a typo in the cluster how-to section of the
+        documentation web application. Also fix a handful of spelling errors.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53601">53601</a>: Clarify in documentation that building Apache Tomcat 7
+        from sources requires a Java 6 JDK. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53653">53653</a>: Allow for wrapped source code example in
+        config/context.html. Patch provided by Terence Bandoian. (schultz)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53793">53793</a>: Change links on the list of applications in the
+        Manager to point to '/appname/' instead of '/appname'. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.30 (markt)/Tribes"><!--()--></a><a name="Tomcat_7.0.30_(markt)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid potential NPE identified by Find Bugs in
+        <code>org.apache.catalina.tribes.io.ReplicationStream</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53606">53606</a>: Fix potential NPE in <code>TcpPingInterceptor</code>.
+        Based on a patch by F. Arnoud. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53607">53607</a>: To avoid NPE, set TCP PING data to ChannelMessage.
+        Patch provided by F.Arnoud (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.30 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.30_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53701">53701</a>: Javadoc fixes. Patch provided by sebb. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Remove some unused code from Tomcat's package renamed, cut-down
+        copy of Commons BCEL used for annotation scanning. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53735">53735</a>: Add support for Java 7 byte code to Tomcat's
+        package renamed, cut-down copy of Commons BCEL used for annotation
+        scanning. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.29 (markt)"><!--()--></a><a name="Tomcat_7.0.29_(markt)"><strong>Tomcat 7.0.29 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-07-08</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.29 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.29_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for searching for roles in JNDI/LDAP
+        using another value than the actual DN or username specified.
+        Rather it will use a value from the users directory entry.
+        The new attribute introduced to the JNDIRealm is userRoleAttribute
+        (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix checking of recommended tcnative library version when using the APR
+        connector. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50306">50306</a>: Improve StuckThreadDetectionValve: add
+        stuckThreadNames property as a pair for the stuckThreadIds one,
+        add thread ids to the log messages. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52135">52135</a>: Add support for a default error page to be defined in
+        web.xml by defining an error page with just a nested location element.
+        It appears this feature was intended to be included in the Servlet 3.0
+        specification but was accidently left out. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53450">53450</a>: Correct regression in fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52999">52999</a> that
+        could easily trigger a deadlock when deploying a ROOT web application.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        As per section 1.6.2 of the Servlet 3.0 specification and clarification
+        from the Servlet Expert Group, the servlet specification version
+        declared in web.xml no longer controls if Tomcat scans for annotations.
+        Annotation scanning is now always performed - regardless of the version
+        declared in web.xml - unless metadata complete is set to true. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53619">53619</a>: As per clarification from the Servlet Expert Group,
+        JARs will always be scanned for ServletContainerInitializers regardless
+        of the setting of metadata complete. However, if an absolute ordering is
+        specified and a JAR is excluded from that ordering it will not be
+        scanned for ServletContainerInitializers nor will it be scanned for
+        matches to any HandleTypes annotations. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53465">53465</a>: Populate mapped-name property for resources defined in
+        web.xml. Based on a patch by Violeta Georgieva. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make the request available when establishing a WebSocket connection.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53467">53467</a>: Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53257">53257</a>
+        that introduced problems for JSPs that used characters that must be
+        encoded if used in a URI. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.29 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.29_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53430">53430</a>: Avoid a JVM crash when a connector that requires the
+        APR/native library is explicitly specified and the library, or a recent 
+        enough  version of it, is not available. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.29 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.29_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53421">53421</a>: Provide a more helpful error message if a getter or
+        setter cannot be found for a bean property when using expression
+        language. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+       <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53460">53460</a>: Allow container to handle errors if the creation of the
+       PageContext fails rather than swallowing the error. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.29 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.29_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update the WebSocket examples in the examples web application so that
+        they work with secure connections (wss) as well as non-secure (ws)
+        connections. (markt)  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53456">53456</a>: Minor corrections and improvements to the HTTP
+        connector configuration reference. Patch provided by sebb. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53459">53459</a>: Correction and clarifications to the SSL Connector
+        configuration examples in the SSL how-to. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53464">53464</a>: Correct reference to sample init.d script for use with
+        jsvc in the documentation web application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53473">53473</a>: Correct the allowed values for the SSI option
+        <code>isVirtualWebappRelative</code> which are <code>true</code> or
+        <code>false</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Document <code>roleNested</code> property of <code>JNDIRealm</code>
+        in Configuration Reference. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+    <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.29 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.29_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53445">53445</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1354173">r1354173</a>):
+        Allow configurable name for SlowQueryReportJmx (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53416">53416</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1354641">r1354641</a>):
+        Multiple pools with the same name should register under JMX (fhanik)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.29 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.29_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix cleanup of temporary files in <code>TestNamingContext</code> test.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove a few files from the source distribution that are not required
+        since they are copied / generated during the build. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add manifest files to the set of files for which the line-ending is
+        changed to match the OS defaults in the source distributions. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Align Jk Ant tasks definitions between antlib.xml and catalina.tasks
+        files, introducing <code>jkupdate</code> as synonym for
+        <code>jkstatus</code>. The latter one is deprecated.
+        Simplify <code>bin/catalina-tasks.xml</code>, replacing
+        <code>taskdef</code> with <code>typedef</code> and adding Ant condition
+        implementations used with JMX to <code>jmxaccessor.tasks</code> file.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53454">53454</a>: Return correct content-length header for HEAD requests
+        when content length is greater than 2GB. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.28 (markt)"><!--()--></a><a name="Tomcat_7.0.28_(markt)"><strong>Tomcat 7.0.28 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-06-19</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.28 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.28_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52055">52055</a>: An additional fix to ensure that the
+        ChunkedInputFilter is correctly recycled. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52954">52954</a>: Make DIGEST authentication tolerant of clients (mainly
+        older Android implementations) that do not follow RFC 2617 exactly.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52955">52955</a>: Implement custom thread factory for container
+        start-stop thread pool. It allows to use daemon threads and give
+        them more distinct names. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52999">52999</a>: Remove synchronization bottleneck from the firing of
+        <code>Container</code> events. (markt)  
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53008">53008</a>: Additional test cases for BASIC authentication and
+        RFC2617 compliance. Patch provided by Brian Burch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53021">53021</a>: Correct WebSocket protocol version detection. (pero)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add new attributes of <code>allow</code> and <code>deny</code> to
+        UserConfig. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53024">53024</a>: Fix context reloading so requests received during the
+        reload are paused and processed when reloading completes rather than
+        receiving 404 responses. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Improve the handling of watched resources so that changes trigger a
+        reload rather than a stop followed by a start which allows requests
+        received to be paused and processed when reloading completes rather than
+        receiving 404 responses. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove potential bottleneck on creation of new WebSocket connections.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53047">53047</a>: If a JDBC Realm or DataSource Realm is configured for
+        an all roles mode that only requires authorization (and no roles) and no
+        role table or column is defined, don't populate the Principal's roles.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53056">53056</a>: Add APR version number to tcnative version INFO log
+        message. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53057">53057</a>: Add OpenSSL version number INFO log message when
+        initializing. (schultz)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Save a bit of memory in annotations cache in
+        <code>DefaultInstanceManager</code> by trimming annotation lists
+        to their size. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly configure the parser used to process server.xml so that
+        external entities may be used to include the content of external files
+        into server.xml. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make sure ContextMBean#findFilterDefs returns correct filter
+        definitions. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Ensure that <code>maxParameterCount</code> applies to multi-part
+        requests handled via the Servlet 3 file upload API. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53062">53062</a>: When constructing absolute URLs for redirects from
+        relative URLs ensure that the resulting URLs are normalized. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53067">53067</a>: Ensure the WebSocket Servlet continues to work when
+        requests are wrapped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Enable host's xmlBase attribute in ContextConfig. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53071">53071</a>: Use the message from the throwable (if there is one)
+        when generating the report in the <code>ErrorReportValve</code> and no
+        message has been specified via <code>sendError()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53074">53074</a>: Switch to an infinite socket timeout by default for
+        WebSocket connections. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53081">53081</a>: Do not always cache resources loaded by the web
+        application class loader since they may be very large which in turn
+        could trigger a memory leak. Calls to the web application class
+        loader's <code>getResourceAsStream()</code> method will now access
+        the resource directly rather than via the cache in most cases. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53090">53090</a>: Include superclasses when considering injection
+        targets. Patch provided by Borislav Kapukaranov. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53161">53161</a>: Provide a better error message if a
+        <code>ClassFormatException</code> occurs during annotation scanning and
+        do not prevent the web application from starting in this case. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53180">53180</a>: Improve check for setter method when processing
+        annotations. Patch provided by Violeta Georgieva. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53225">53225</a>: Fix an IllegalStateException due to the JAR file being
+        closed when accessing static resources in a JAR file when
+        <code>urlCacheProtection="false"</code> in the
+        <code>JreMemoryLeakPreventionListener</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53230">53230</a>: Changed ManagerBase to throw
+        TooManyActiveSessionsException instead of IllegalStateException
+        when the maximum number of sessions has been exceeded and a new
+        session will not be created. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53257">53257</a>: Ensure that resources, including JSP files, that have
+        names that include characters with special meanings in URLs (such as
+        ampersand, semicolon, plus, hash and percent) are correctly handled.
+        This bug is partially a regression caused by the original fix for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51584">51584</a> and partially an existing issue that had not previously
+        been identified. This fix reverts the original fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51584">51584</a>,
+        correctly fixes that issue and fixes the additional issues identified by
+        the test cases that were also added as part of this fix.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53266">53266</a>: If a class specified in a <code>@HandlesTypes</code>
+        annotation on a <code>ServletContainerInitializer</code> is missing
+        log a more helpful message and do not prevent the web application from
+        starting. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53267">53267</a>: Ensure that using the GC Daemon Protection feature of
+        the <code>JreMemoryLeakPreventionListener</code> does not trigger a
+        full GC every hour. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53285">53285</a>: Do not require <code>security-role-ref</code> elements
+        to contain a <code>role-link</code> element. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53301">53301</a>: Prevent double initialization of pre-created Servlet
+        instances when used in embedded mode. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53322">53322</a>: When processing resource injection, correctly infer
+        property name from its setter method if the name starts with several
+        uppercase characters. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53333">53333</a>: When processing JNDI resources, take account of the
+        types of any specified injection targets to ensure that the resource
+        definition and the injection target types are consistent. Based on a
+        patch provided by Violeta Georgieva. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53337">53337</a>: Forwarding via a <code>RequestDispatcher</code> to an
+        asynchronous Servlet always failed. Includes a test case based on code
+        by Rossen Stoyanchev. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53339">53339</a>: Ensure WebSocket call backs (<code>onOpen</code> etc.)
+        are called using the web application's class loader. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53342">53342</a>: To avoid BindException, make startStopThreads into a
+        demon thread. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53353">53353</a>: Make the internal HTTP header parser more tolerant of
+        Content-Type values that contain invalid parameters by ignoring the
+        invalid parameters. It is a followup to bug <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52811">52811</a>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53354">53354</a>: Correctly handle <code>@WebFilter</code> annotations
+        that do not include a mapping. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53356">53356</a>: Add support for servlets mapped explicitly to the
+        context root of a web application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53366">53366</a>: Ensure new HTTP header parser works correctly when
+        running Tomcat under a security manager. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53368">53368</a>: Configure the default security policy to allow web
+        applications to use WebSocket when running under a security manager.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53373">53373</a>: Allow whitespace around delimiters in &lt;Context&gt;
+        aliases for readability. (schultz)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.28 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.28_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52858">52858</a>, CVE-2012-4534: Correct fix for high CPU load.
+        (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53138">53138</a>: Broken Sendfile on SSL introduced in 7.0.27
+        (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52055">52055</a>: Additional fix required to ensure that
+        <code>InputFilter</code>s are recycled between requests. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53061">53061</a>: Fix a problem in the NIO connector whereby if the
+        poller was under low but consistent load (&gt;1 request/per second and
+        always less than 1 second between requests) timeouts never took place.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53063">53063</a>: When using an Executor with BIO, use the
+        executor's maxThreads as the default for maxConnections. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53119">53119</a>: Prevent buffer overflow errors being reported when a
         client disconnects before the response has been fully written from an
-        AJP connection using the APR/native connector. (kkolinko)
+        AJP connection using the APR/native connector. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53169">53169</a>: Allow developers to avoid chunked encoding for a
+        response of unknown length by setting the <code>Connection: close</code>
+        header. Based on a patch suggested by Philippe Marschall. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        CVE-2012-2733:
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53173">53173</a>: Properly count down maxConnections (fhanik)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update default value of pollerThreadCount for the NIO connector.
+        The new default value will never go above 2 regardless of 
+        available processors. (fhanik)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Allow to retrieve the current <code>connectionCount</code>
+        via getter from the endpoint and as JMX attribute of the ThreadPool
+        mbean. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct an edge case where Comet END events were not send to connected
+        clients when the Tomcat connector was stopped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53406">53406</a>: Fix possible stack overflow on connection close when
+        using Comet. (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Improve <code>InternalNioInputBuffer.parseHeaders()</code>. (kkolinko)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
@@ -830,172 +8058,619 @@
         <a href="http://httpd.apache.org/">Apache HTTPD</a>.
         Default value is 100. (kkolinko)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        In JkCoyoteHandler connector for AJP/1.3 protocol
-        (in <code>JkMain.setProperty()</code>):
-        Fix setting of properties when connector has already started for
-        properties that have aliases. E.g. it now allows to change
-        <code>maxHeaderCount</code> attribute on Connector MBean via JMX.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53725">53725</a>: Fix possible corruption of GZIP'd output. (kkolinko)
-      </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.36 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.36_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.28 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.28_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48097">48097</a> (comment 7), <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53366">53366</a> (comment 1):
-        If JSP page unexpectedly fails to initialize PageContext instance,
-        write exception to the logs instead of silent swallowing. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48097#c7">48097#c7</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53366#c1">53366#c1</a>: If JSP page unexpectedly
+        fails to initialize PageContext instance, write exception to the logs
+        instead of silent swallowing. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52335">52335</a>: Only handle <code>&lt;\%</code> and not
-        <code>\%</code> as escaped in template text. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52666">52666</a>: Correct coercion order in EL when processing the
-        equality and inequality operators. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53001">53001</a>: Revert the fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46915">46915</a> since the use case
-        described in the bug is invalid since it breaks the EL specification.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53032">53032</a>: Modify <code>JspC</code> so it extends
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53032">53032</a>: Modify <code>JspC</code> so it extends
         <code>org.apache.tools.ant.Task</code> enabling it to work with features
         such as namespaces within build.xml files. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.36 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.36_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.28 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.28_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Replicate principal in ClusterSingleSignOn. (kfujino)
+        Avoid NPE when reload if a state of a BackupManager is FAILED. (kfujino)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53513">53513</a>: Fix race condition between the processing of session
-        sync message and transfer complete message. (kfujino)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53087">53087</a>: In order to avoid that a backup node expire a session,
+        replicate session access time in BackupManager. (kfujino)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53606">53606</a>: Fix potential NPE in <code>TcpPingInterceptor</code>.
-        Based on a patch by F. Arnoud. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53607">53607</a>: To avoid NPE, set TCP PING data to ChannelMessage.
-        Patch provided by F.Arnoud (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix a behavior of TcpPingInterceptor#useThread.
-        Do not start a ping thread when useThread is set to false. (kfujino)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for SecureRandom to cluster manager template. (kfujino)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.36 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.36_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.28 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.28_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52243">52243</a>: Improve windows service documentation to clarify how
-        to include <code>#</code> and/or <code>;</code> in the value of an
-        environment variable that is passed to the service. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52515">52515</a>: Make it clear in the Realm how-to in the documentation
-        web application that digested password storage when using DIGEST
-        authentication requires that MD5 digests are used. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52641">52641</a>: Remove mentioning of ldap.jar from docs.
-        Patch provided by Felix Schumacher. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove obsolete bug warning from windows service
+        Remove obsolete bug warning from Windows service
         documentation page. (rjung)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52983">52983</a>: Remove unnecessary code that makes switching to
-        other authentication methods difficult. (markt)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50182">50182</a>: Various improvements to the Compression Filter. Patch
+        provided by David Becker. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53158">53158</a>: Fix documented defaults for DBCP.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52853">52853</a>: Clarify how Jar Scanner handles directories. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53158">53158</a>: Fix documented defaults for DBCP.
         Patch provided by ph.dezanneau at gmail.com. (rjung)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update JavaSE documentation links to point to the current
-        docs.oracle.com site, instead of obsolete ones (download.oracle.com,
-        java.sun.com). (kkolinko)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53203">53203</a>: Correct documentation for the default value
+        of <code>connectionTimeout</code> attribute for AJP protocol
+        connectors. (kkolinko)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53289">53289</a>: Clarify <code>ResourceLink</code> example that
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53289">53289</a>: Clarify <code>ResourceLink</code> example that
         uses DataSource.getConnection(username, password) method. Not all
         data source implementations support it. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Prevent the custom error pages for the Manager and Host Manager
-        applications from being accessed directly. Configure custom
-        pages for error codes 401 and 403 in Host Manager application.
-        (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct documentation for <code>enableLookups</code> attribute
-        of a Connector. By default DNS lookups are disabled. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Fix several HTML markup errors in servlets of examples web application.
         (kkolinko)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Change the index page of ROOT webapp to mention "manager-gui" role
-        instead of "manager" one. (kkolinko)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53398">53398</a>: Correct spelling of "received" in the
+        Manager application's XML output. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53473">53473</a>: Correct the allowed values for the SSI option
-        <code>isVirtualWebappRelative</code> which are <code>true</code> or
-        <code>false</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53664">53664</a>: Minor JNDI Howto document enhancement concerning mail
-        properties. Patch provided by Mark Eggers. (schultz)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53601">53601</a>: Clarify that to build Apache Tomcat 6 from sources
-        a Java 5 JDK is recommended. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53793">53793</a>: Change links on the list of applications in the
-        Manager to point to <code>/appname/</code> instead of
-        <code>/appname</code>. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53403">53403</a>: Update a reference to the Servlet specification in the
+        first web application section of the documentation web application to
+        include newer versions of the specification. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.36 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.36_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.28 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.28_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49402">49402</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52124">52124</a>: Fix Maven publishing script:
-        make sure it finds tomcat-juli.jar and use later version of
-        wagon-ssh. (jfclere)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50864">50864</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1311844">r1311844</a>):
+        JMX enable most pool properties (fhanik)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53254">53254</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1340160">r1340160</a>):
+        Add in the ability to purge connections from the pool (fhanik)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53367">53367</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1346691">r1346691</a>):
+        Prevent pool from hanging during database failure (fhanik)
+      </td></tr>  
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+         When a connection is reconnected due to failed validation
+         make sure the ConnectionState is reset or it will assume
+         incorrect values (fhanik)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Update Apache Commons Daemon to 1.0.10. It resolves <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52548">52548</a>
-        which meant that services created with service.bat did not set the
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53374">53374</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1348056">r1348056</a>):
+        Add support for the following properties in DataSourceFactory:
+        <code>commitOnReturn</code>, <code>rollbackOnReturn</code>,
+        <code>useDisposableConnectionFacade</code>,
+        <code>logValidationErrors</code> and
+        <code>propagateInterruptState</code>.
+        Based on patch proposed by Suresh Avadhanula. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.28 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.28_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Eclipse JDT Compiler 3.7.2 at maven tomcat-jasper.pom. (pero)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the native component of the Tomcat APR/native connector to
+        1.1.24. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add missing dependencies in pom files. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53034">53034</a>: Add <code>project.url</code> and
+        <code>project.licenses</code> sections to the POMs for the Maven
+        artifacts. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Properly mention <code>jsp_2_2.xsd</code> in the main LICENSE and
+        INSTALLLICENSE files. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53115">53115</a>: Fix using the command "<code>catalina.bat run</code>"
+        when the value of <code>%TEMP%</code> contains spaces. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add dependencies and description to "validate" target in
+        <code>build.xml</code>, so that it could be run separately.
+        Improve <code>BUILDING.txt</code> and <code>RUNNING.txt</code>.
+        (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.27 (markt)"><!--()--></a><a name="Tomcat_7.0.27_(markt)"><strong>Tomcat 7.0.27 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-04-05</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.27 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.27_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Explicitly ignore empty path values in <code>virtualClasspath</code>
+        attribute of <code>VirtualWebappLoader</code> class. Document that
+        whitespace around the values is trimmed. Reformat documentation
+        examples to make them more readable. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Further improve fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51197">51197</a> to allow an error reporting
+        Valve to write a response body if <code>sendError()</code> is called
+        during an asynchronous request on a container thread. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51741">51741</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1307600">r1307600</a>):
+        If <code>VirtualDirContext</code> class is configured with non-empty
+        value of <code>extraResourcePaths</code> option (a feature added
+        in 7.0.24), do not implicitly set <code>allowLinking</code> option to
+        the value of <code>true</code>. If it is really needed, it should be
+        set explicitly. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52500">52500</a>: Added configurable mechanism to retrieve user names
+        from X509 client certificates. Based on a patch provided by
+        Michael Furman. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52719">52719</a>: Fix a theoretical resource leak in the JAR validation
+        that checks for non-permitted classes in web application JARs. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Code clean-up identified by <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52723">52723</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52724">52724</a>,
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52726">52726</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52727">52727</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52729">52729</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52731">52731</a>
+        and <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52732">52732</a>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52792">52792</a>: Improve error message when a JNDI resource can not be
+        found. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52811">52811</a>: Fix parsing of Content-Type header in
+        <code>HttpServletResponse.setContentType()</code>. Introduces
+        a new HTTP header parser that follows RFC2616. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52830">52830</a>: Correct JNDI lookups when using
+        <code>javax.naming.Name</code> to identify the resource rather than a
+        <code>java.lang.String</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52833">52833</a>: Handle the case where the parent class loader for the
+        Catalina object does not have the system class loader in its hierarchy.
+        This may happen when embedding. Patch provided by olamy. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52839">52839</a>: Add a unit test for DigestAuthenticator and
+        SingleSignOn. Patch provide by Brian Burch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52846">52846</a>: Make sure NonLoginAuthenticator registers not 
+        MemoryUser but GenericPrincipal into a session when UserDatabaseRealm 
+        is used. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52850">52850</a>: Extend memory leak prevention and detection code to
+        work with IBM as well as Oracle JVMs. Extend unit tests to check direct
+        and indirect ThreadLocal memory leak detection. Based on a patch
+        provided by Rohit Kelapure. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for the WebSocket protocol (RFC6455). Both streaming and
+        message based APIs are provided and the implementation currently fully
+        passes the Autobahn test suite. Also included are several examples.
+        A significant contribution to this new functionality was provided by
+        Johno Crawford &mdash; particularly the examples. Contributions were
+        also provided by Petr Praus, Jonathan Drake &amp; Sl&aacute;vka. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When stopping a Context, ensure that any Servlets registered with JMX
+        are unregistered. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Make the implementation of <code>Catalina.getParentClassLoader</code>
+        consistent with similar methods across the code base and have it return
+        the system class loader if no parent class loader is set. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52953">52953</a>: Ensure users can authenticate when using DIGEST
+        authentication with digested passwords if the digested password is
+        stored using upper case hexadecimal characters since DIGEST
+        authentication expects digests to use lower case characters. Based on a
+        patch provided by Neale Rudd. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52957">52957</a>: Ensure that a Valve implements Lifecycle before
+        calling any Lifecycle methods on that Valve. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52958">52958</a>: Fix MBean descriptors for
+        <code>org.apache.catalina.realm</code> package. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52974">52974</a>: Fix <code>NameNotFoundException</code> when
+        field/method is annotated with <code>@Resource</code> annotation. Patch
+        provided by Violet Agg. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for multi-thread deployment in UserConfig. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.27 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.27_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly register NIO sockets with poller after processing Comet events
+        to ensure that no read events are missed. This fixes an intermittent
+        issue observed in the unit tests. (fhanik/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52770">52770</a>: Fix a bug in the highly unlikely circumstance that
+        an infinite timeout was specified for writing data to a client when
+        using NIO. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52858">52858</a>: Fix high CPU load with SSL, NIO and sendfile when
+        client breaks the connection before reading all the requested data.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52926">52926</a>: Avoid NPE when an NIO Comet connection times out on
+        one thread at the same time as it is closed on another thread. (markt)  
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Include port number when known in connector name when logging messages
+        from connectors that use automatic free port allocation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't try an unlock the acceptor thread if it is not locked. This is
+        unlikely to impact normal usage but it does fix some unit test issues.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When using the APR connector ensure that any connections in a keep-alive
+        state are closed when the connector is stopped rather than when the
+        connector is destroyed. This is important when stop() followed by
+        start() is called on the connector. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.27 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.27_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52725">52725</a>: Use configurable package name for tags rather than
+        hard-coded value so configuration actually works. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52758">52758</a>: Implement additional interface methods in Eclipse JDT
+        integration required for Jasper to correctly with the latest Eclipse
+        development code. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52772">52772</a>: Ensure uriRoot is fully validated before it is used.
+        Patch based on a suggestion by Eugene Chung. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52776">52776</a>: Refactor the code so JspFragment.invoke cleans up
+        after itself. Patch provided by Karl von Randow. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52970">52970</a>: Take account of coercion rules when invoking methods
+        via EL. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52998">52998</a>: Partial fix. Remove static references to the EL
+        expression factory and use per web application references instead.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52998">52998</a>: Remainder of fix. Cache the class to use for the EL
+        expression factory per class loader. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=53001">53001</a>: Revert the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=46915">46915</a> since the use case
+        described in the bug is invalid since it breaks the EL specification.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.27 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.27_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Replicate principal in ClusterSingleSignOn. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.27 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.27_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52760">52760</a>: Fix expires filter mime type in javascript examples.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52842">52842</a>: Exception in MBeanDumper when dumping MBean for
+        StandardThreadExecutor. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Bring built-in mime types for embedded Tomcat more in line with the
+        ones defined in the default web.xml configuration file. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support to the JMXProxyServlet which is part of the Manager
+        application for fetching a specific key from a
+        <code>CompositeData</code> value. Updated documentation, so that
+        the entire 'get' command for the JMX proxy servlet is documented,
+        including the new optional 'key' parameter. (schultz/markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.27 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.27_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Pool cleaner thread should be created using the classloader
+        that loaded the pool, not the context loader (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52804">52804</a>: Make pool properties serializable and cloneable.
+        (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51237">51237</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1302902">r1302902</a>):
+        Slow Query Report should log using WARN level when queries are slow
+        and within the threshold of caching it. (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52002">52002</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1302948">r1302948</a>):
+        Add in configuration option to disallow connection reuse. 
+        (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1305862">r1305862</a>):
+        useDisposableConnectionFacade is by default enabled (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52493">52493</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1302969">r1302969</a>):
+        Java 7 DataSource method addition. (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51893">51893</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1302990">r1302990</a>):
+        Throw an error and notification when pool is exhausted. (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50860">50860</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1303031">r1303031</a>):
+        Add in option to configure logging for validation errors. (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52066">52066</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1305931">r1305931</a>):
+        Add in configuration option, progagateInterruptState, to allow threads to 
+        retain the interrupt state. (fhanik)
+      </td></tr>  
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.27 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.27_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52750">52750</a>: Fix the way how daemon.sh parses command options so
+        that more then one can be provided. (mturk)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Rearrange <code>validate-eoln</code> target in <code>build.xml</code>
+        so that it could be run ahead of compilation. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Apache Commons Daemon to 1.0.10. (mturk)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the native component of the Tomcat APR/native connector to
+        1.1.23 and take advantage of the simplified distribution. (mturk)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Eclipse JDT Compiler 3.7.2. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.26 (markt)"><!--()--></a><a name="Tomcat_7.0.26_(markt)"><strong>Tomcat 7.0.26 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-02-21</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.26 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.26_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Provide constants for commonly used <code>Charset</code> objects and use
+        these constants where appropriate. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Refactor the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52184">52184</a> to correct two issues (a missing
+        class and incorrect class/method names) when using the extras logging
+        packages. (markt)  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52444">52444</a>: Only load classes during HandlesTypes processing if
+        the class is a match. Previously, every class in the web application was
+        loaded regardless of whether it was a match or not. (markt)  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52488">52488</a>: Correct typo: exipre -&gt; expire. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a unit test for SSO authentication. Patch provided by Brian Burch.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52511">52511</a>: Correct regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51741">51741</a>
+        that caused a harmless exception to be logged when scanning for
+        annotations and <code>WEB-INF/classes</code> did not exist. (markt) 
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Refactor to remove a circular dependency between
+        <code>org.apache.catalina</code> and <code>org.apache.naming</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Remove some initialisation code from the standard start process (i.e.
+        via the scripts) that was intended for embedding but is not required
+        when performing a standard start.(markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add new method to <code>MBeanFactory</code> that allows any Valve to be
+        created and deprecate the methods to create specific Valves. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Partial sync of MIME type mapping with mime.types from the Apache web
+        server. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52577">52577</a>: Fix a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52328">52328</a>.
+        Prevent output truncation when <code>reset()</code> is called on a
+        response. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52586">52586</a>: Remove an old and now unnecessary hack that modified
+        the path info reported via the
+        <code>javax.servlet.forward.path_info</code> request attribute when
+        forwarding to an error page. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52587">52587</a>: Ensure that if it is necessary to fall back to the
+        default NullRealm, the NullRealm instance is created early enough for it
+        to be correctly initialised. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix millisecond output in AccessLogValve when using a
+        SimpleDateFormat based time pattern. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52591">52591</a>: When dumping MBean data, skip attributes where getters
+        throw <code>UnsupportedOperationException</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52607">52607</a>: Ensure that the extension validator checks the JARs in
+        the shared and common class loaders for extensions. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a threading issue in the generation of the list of standard
+        authenticators during Context initialization that could lead to a web
+        application failing to start if Contexts were started in parallel.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52669">52669</a>: Correct regression that broke annotation processing in
+        <code>/WEB-INF/classes</code> for web applications deployed as WARs,
+        packageless classes and some embedding scenarios. The regression was
+        introduced by the invalid assumptions made in the fix for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51741">51741</a>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52671">52671</a>: When dumping MBean data, skip attributes where getters
+        throw <code>NullPointerException</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.26 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.26_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51543">51543</a>: Provide a meaningful error message when writing more
+        response headers than permitted. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52547">52547</a>: Ensure that bytes written (which is used by the access
+        log) is correctly reset after an HTTP 1.0 request has been processed.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Minor refactoring to reduce code duplication in the HTTP connectors.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52606">52606</a>: Ensure that POST bodies are available for reply after
+        FORM authentication when using the AJP connectors. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.26 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.26_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52474">52474</a>: Ensure that leading and trailing white space is
+        removed from listener class names when parsing TLD files. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52480">52480</a>: When converting class path entries from URLs to
+        files/directories, ensure that any URL encoded characters are converted.
+        Fixes JSP compilation with javac when Tomcat is installed at a path that
+        includes spaces. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52666">52666</a>: Correct coercion order in EL when processing the
+        equality and inequality operators. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.26 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.26_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve <code>BUILDING.txt</code>. Update instructions for
+        building. Add instructions for using Checkstyle and running the
+        tests. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=38216">38216</a>: Improve handling of <code>null</code> return values in
+        the JMX proxy servlet which is part of the Manager application.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52515">52515</a>: Make it clear in the Realm how-to in the documentation
+        web application that digested password storage when using DIGEST
+        authentication requires that MD5 digests are used. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52634">52634</a>: Fix typos in JSP examples. Patch provided by
+        Felix Schumacher. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52641">52641</a>: Remove mentioning of ldap.jar from docs.
+        Patch provided by Felix Schumacher. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.26 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.26_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix code style issues and enable Checkstyle checks for jdbc-pool when
+        it is built within Tomcat. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51582">51582</a> Correct set and reset the query cache to avoid NPE   (fhanik)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.26 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.26_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update Commons Daemon to 1.0.9 to resolve <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52548">52548</a> which meant
+        that services created with service.bat did not set the
         <code>catalina.home</code> and <code>catalina.base</code> system
-        properties. (markt, kkolinko)
+        properties. (markt)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update Apache Commons Pool to 1.5.7. (kkolinko)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Implement check for correct end-of-line characters in the source
+        files. It is run as separate target in <code>build.xml</code>.
+        (kkolinko)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52579">52579</a>: Add a note about Sun's Charset.decode() bug to the
-        RELEASE-NOTES file. (kkolinko)
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.25 (markt)"><!--()--></a><a name="Tomcat_7.0.25_(markt)"><strong>Tomcat 7.0.25 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2012-01-21</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.25 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.25_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Restore format of the first line of error message for JMX proxy
+        servlet in case scripts were depending on it. (markt)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52805">52805</a>: Update to Eclipse JDT Compiler 3.7.2. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update the native component of the APR/native connectors to 1.1.23
-        and take advantage of the simplified distribution. (kkolinko) 
-      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.25 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.25_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         When building a Windows installer do not copy whole "res" folder to
         output/dist, but only the files that we need. Apply fixcrlf filter
@@ -1007,112 +8682,390 @@
         by the Windows installer is <code>res/INSTALLLICENSE</code>.
         (kkolinko)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Improve <code>RUNNING.txt</code>. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Align the script that deploys Maven jars for Tomcat
-        (<code>res/maven/mvn-pub.xml</code>) with the Tomcat 7 version,
-        making full use of Nexus. (markt)
-      </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53034">53034</a>: Add <code>project.url</code> and
-        <code>project.licenses</code> sections to the POMs for the Maven
-        artifacts. (kkolinko)
+        Automate the OpenPGP signature generation for the release process.
+        (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=53454">53454</a>: Return correct content-length header for HEAD requests
-        when content length is greater than 2GB. (markt)
+        Don't exclude directories named target from the build process.
+        (rjung)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.35 (jfclere)"><!--()--></a><a name="Tomcat_6.0.35_(jfclere)"><strong>Tomcat 6.0.35 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-12-05</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.35 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.35_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.24 (markt)"><!--()--></a><a name="Tomcat_7.0.24_(markt)"><strong>Tomcat 7.0.24 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.24 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.24_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix regression in decoding of parameters that contain spaces.
-        Patch by Willem Fibbe. (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.34 (jfclere)"><!--()--></a><a name="Tomcat_6.0.34_(jfclere)"><strong>Tomcat 6.0.34 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.34 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.34_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51550">51550</a>: Display an error page rather than an empty response
-        for an IllegalStateException caused by too many active sessions. (markt)
-      </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51640">51640</a>: Improve the memory leak prevention for leaks
-        triggered by java.sql.DriverManager. (markt/kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52184">52184</a>: Provide greater control over the logging of errors
+        triggered by invalid input data (i.e. data over which Tomcat has no
+        control). (markt/kkolinko) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51688">51688</a>: JreMemoryLeakPreventionListener now protects against
-        AWT thread creation. (schultz)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52225">52225</a>: Fix ClassCastException in an Alias added to
+        existing host through JMX. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51758">51758</a>: The digester (used for processing XML files) used the
-        logger name <code>org.apache.commons.digester.Digester</code> rather
-        than the expected <code>org.apache.tomcat.util.digester.Digester</code>.
-        The digester has been changed to use the expected logger name.
+        Do not throw IllegalArgumentException from parseParameters() call
+        when chunked POST request is too large, but treat it like an IO error.
+        The <code>FailedRequestFilter</code> filter can be used to detect this
+        condition. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52245">52245</a>: Don't allow web applications to package classes from
+        the <code>javax.el</code> package. Patch provided by pid. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52259">52259</a>: Fix regression caused by the addition of the threaded
+        component start (<a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=46264">46264</a>) that triggered a deadlock on startup
+        if no Realm was configured. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52293">52293</a>: Correctly handle the case when
+        <code>antiResourceLocking</code> is enabled at the Context level when
+        <code>unpackWARs</code> is disabled at the Host level. Based on a patch
+        by Justin Miller. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In <code>ExtendedAccessLogValve</code> when printing %-encoded value of
+        a parameter, use UTF-8 encoding to convert parameter value to bytes
+        instead of platform default encoding. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52303">52303</a>: Allow web applications that do not have a login
+        configuration to participate in a SSO session. Patch provided by Brian
+        Burch. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52316">52316</a>: When using sendfile, use the number of bytes requested
+        to be written to the response in the access log valve for bytes written
+        rather than recording a value of zero. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52326">52326</a>: Reduce log level for class loading errors during
+        <code>@HandlesTypes</code> processing to debug. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52328">52328</a>: Improve performance when large numbers of single
+        characters and/or small strings are written to the response via a
+        Writer. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52384">52384</a>: Do not fail with parameter parsing when debug logging
+        is enabled. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Do not flag extra '&amp;' characters in parameters as parse errors.
         (kkolinko)
       </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51862">51862</a>: Added a <code>classesToInitialize</code> attribute to 
-        <code>JreMemoryLeakPreventionListener</code> to allow pre-loading of configurable
-        classes to avoid some classloader leaks. (slaurent)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Reduce log level for the message about hitting
+        <code>maxParameterCount</code> limit from WARN to INFO. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51872">51872</a>: Ensure that the access log always uses the correct
-        value for the remote IP address associated with the request and that
-        requests with multiple errors do not result in multiple entries in
-        the access log. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52387">52387</a>: Ensure that the correct host is used when configuring
+        logging when Tomcat is embedded. Patch provided by David Calavera.
+        (markt)
       </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Allow to overwrite the check for distributability
-        of session attributes by session implementations. (rjung)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Provide the log format "OneLineFormatter" for JULI that provides the same
-        information as the default plus thread name but on a single line.
-        (markt/rjung)
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52405">52405</a>: Align the Servlet 3.0 implementation with the changes
+        defined in the first maintenance release (also know as Rev. A). See the
+        <a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr315/servlet3-mr-reva.html" rel="nofollow">JCP documentation</a> for a detailed list of changes
+        (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Ensure the the memory leak protection for the HttpClient keep-alive
+        Improve JMX names for objects related to Connectors that have the
+        address attribute set. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove some stale attributes from MBeans. (rjung)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+         Move destruction of <code>ContainerBase</code> objects to
+         <code>ContainerBase</code> to ensure that they are destroyed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52443">52443</a>: Change the behaviour of the default Realm in the
+        embedded use case so it is set once on the Engine rather than on every
+        Context thereby avoiding the Lifecycle issues with having the same Realm
+        set on multiple Contexts. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Provide a new Realm implementation, the NullRealm, that does not contain
+        any users and is used as the default Realm implementation (rather than
+        the JAAS Realm which was used prior to this change) if no Realm is
+        specified. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52461">52461</a>: Don't assume file based URLs when checking last
+        modified times for global and host level web.xml files. Patch provided
+        by violetagg. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add test cases for the BASIC and NonLogin Authenticators when not using
+        SSO. Patch provided by Brian Burch. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.24 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.24_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52028">52028</a>: Add support for automatic binding to a free port by a
+        connector if the special value of zero is used for the port. This is
+        mainly useful in embedded and testing scenarios. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove obsolete <code>emptySessionPath</code> JMX attribute. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct error in fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49683">49683</a>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the process of unlocking the acceptor thread does not
+        trigger processing of the connection as if it were a valid request.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.24 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.24_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52450">52450</a>: Add setter for entityResolver in ParserUtils.
+        This is mainly useful when jasper and dtds are in different
+        class loaders. (mturk)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52321">52321</a>: Ensure that the order of multiple prelude/coda values
+        for JSP pages is respected. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52335">52335</a>: Only handle <code>&lt;\%</code> and not
+        <code>\%</code> as escaped in template text. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52440">52440</a>: Ensure that when using
+        <code>ValueExpression.getValueReference()</code> if the expression is an
+        EL variable that the value returned is the <code>ValueReference</code>
+        for the <code>ValueExpression</code> associated with the EL variable.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52445">52445</a>: Don't assume that EL method expressions have
+        exactly three components (identifier, method name, parameters). (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.24 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.24_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=38216">38216</a>: Add the ability to invoke MBean operations to the JMX
+        proxy servlet in the Manager application. Based on a patch by
+        Christopher Hlubek. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Further clarify the relation between values used by
+        <code>RemoteIpValve</code> and <code>RemoteIpFilter</code>
+        and their use by <code>AccessLogValve</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52243">52243</a>: Improve windows service documentation to clarify how
+        to include <code>#</code> and/or <code>;</code> in the value of an
+        environment variable that is passed to the service. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52366">52366</a>: Fix typo in VirtualWebappLoader documentation
+        (configuration example). (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Replace Bugzilla search link on <code>ROOT/index.jsp</code> page with
+        one pointing to the bug reporting page of Tomcat site. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Move MBean dump code from JMXProxyServlet into a utility class. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.24 (markt)/Tribes"><!--()--></a><a name="Tomcat_7.0.24_(markt)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52208">52208</a>: Fix threading issue that may lead to harmless NPE
+        during shutdown that has occasionally been observed when running the
+        unit tests. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52213">52213</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52354">52354</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52355">52355</a> and
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52356">52356</a>: Fix some potential concurrency issues in
+        <code>FastQueue</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.24 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.24_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1207712">r1207712</a>: Pool cleaner should be a global thread, not spawn
+        one thread per connection pool. (fhanik)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.24 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.24_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Apache Commons Daemon to 1.0.8. (mturk)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Apache Commons Pool to 1.5.7. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix line ends in <code>.gitignore</code> files contained in source
+        distributions. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Run Mapper performance test twice if the first run took too long,
+        to ignore occasional failures. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Align <code>.gitignore</code> and <code>build.xml</code>
+        exclude patterns with <code>svn:ignore</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Configure <code>defaultexcludes</code> for Ant 1.8.1/1.8.2.
+        The <code>.git</code> and <code>.gitignore</code> patterns are
+        in since Ant 1.8.2, but we include <code>.gitignore</code> in
+        src distributions. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52237">52237</a>: Allow JUnit logs to be generated in formats other than
+        plain text. Patch provided by M Hasko. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix build condition for tomcat-dbcp to always rebuild when a new version
+        of commons-pool or commons-dbcp is downloaded. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add example of configuration for <code>SetCharacterEncodingFilter</code>
+        to the default <code>web.xml</code> file. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Switch unit tests to bind Connectors to localhost rather than all
+        available IP addresses. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Eclipse JDT Compiler 3.7.1. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add Netbeans <code>nbproject</code> folder to <code>svn:ignore</code>
+        and <code>.gitignore</code>. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Align <code>.gitignore</code> with trunk. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.23 (markt)"><!--()--></a><a name="Tomcat_7.0.23_(markt)"><strong>Tomcat 7.0.23 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-11-25</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.23 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.23_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=46264">46264</a>: Add the ability to start and stop containers
+        (primarily Contexts) using a thread pool rather than a single thread.
+        This can significantly improve start and stop time. Based on patches
+        by Joe Kislo and Felix Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50570">50570</a>: Enable FIPS mode to be set in AprLifecycleListener.
+        Based upon a patch from Chris Beckey. (schultz/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51744">51744</a>: Throw the correct exception if an application attempts
+        to modify the associated JNDI context. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51744">51744</a>: Add an option to the StandardContext that allows
+        exception throwing when an application attempts to modify the associated
+        JNDI context to be disabled. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51910">51910</a>: Prevent NPE on connector stop if Comet applications
+        are being used without the CometConnectionManagerValve. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51940">51940</a>: Do not limit saving of request bodies during FORM
+        authentication to POST requests since any HTTP method may include a
+        request body. Based on a patch by Nicholas Sushkin. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51956">51956</a>: RemoteAddrFilter used getRemoteHost instead of
+        getRemoteAddr when filtering Comet events. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51952">51952</a>: Make the inclusion of a response body with a redirect
+        response introduced to address <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=41718">41718</a> optional and disabled by
+        default due to the side-effects of including a body with the response in
+        this case. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51972">51972</a>: Correctly handle protocol relative URLs when used with
+        <code>sendRedirect()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Simplify the deployment code and use full paths in log messages to
+        remove any ambiguity in where a context is being deployed from. (markt)  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52009">52009</a>: Fix a NPE during access log entry recording when an
+        error occurred during the processing of a Comet request. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In <code>OneLineFormatter</code> log formatter in JULI always use
+        the US locale to format the date (esp. the month names). (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Cache the results of parsing the global and host level web.xml files to
+        improve web application start time. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52042">52042</a>: Correct threading issue in annotation caching that
+        could lead to an NPE if multiple threads were processing the same class
+        hierarchy for annotations. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct additional threading and premature clearance issues with the
+        annotation cache. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49779">49779</a> that
+        parameters POSTed by an unauthenticated user to a page that required
+        FORM authentication were lost during the authentication process.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52055">52055</a>: Ensure that the input and output buffers are correctly
+        reset between keep-alive requests when using Servlet 3.0 asynchronous
+        request processing. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure changes to the configuration of the RemoteHostValve and the
+        RemoteAddrValve via JMX are thread-safe. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the memory leak protection for the HttpClient keep-alive
         always operates even if the thread has already stopped. (markt)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51940">51940</a>: Do not limit saving of request bodies during FORM
-        authentication to POST requests since any HTTP method may include a
-        request body. Based on a patch by Nicholas Sushkin. (kkolinko)
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Remove the Java 1.2 specific error handling around the adding of the
+        shutdown hook. (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52091">52091</a>: Address performance issues related to lock contention
-        in StandardWrapper. Based on patch provided by Taiki Sugawara.
-        (kkolinko)
+        Correct errors in i18n resources and resource usage that meant some
+        messages were either not used or were incorrectly formatted. (markt)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        In GenericPrincipal, SerializablePrincipal: Do not sort lists of roles
-        that have only one element. (kkolinko)
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Replace the use of deprecated auth method names from
+        <code>authenticator.Constants</code> with the auth method names from
+        <code>HttpServletRequest</code>. (kkolinko)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Make configuration issue for CsrfPreventionFilter result in the
-        failure of the filter rather than just a warning message. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Ensure changes to the configuration of RemoteAddrValve and
-        RemoteHostValve via JMX are thread-safe. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Make configuration issue for RemoteAddrValve and
-        RemoteHostValve result in the failure of the valve rather than
-        just a warning message. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        In <code>RequestFilterValve</code> (<code>RemoteAddrValve</code>,
-        <code>RemoteHostValve</code>): refactor value matching logic into
-        separate method and expose this new method <code>isAllowed</code>
-        through JMX. (kkolinko)
+        Make configuration issues for security related Valves and Filters result
+        in the failure of the valve or filter rather than just a warning
+        message. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
         Improve performance of parameter processing for GET and POST requests.
@@ -1121,80 +9074,146 @@
         Note that <code>FailedRequestFilter</code> can be used to reject the
         request if some parameters were ignored. (markt/kkolinko)
       </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52091">52091</a>: Address performance issues related to lock contention
+        in StandardWrapper. Patch provided by Taiki Sugawara. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Switch to using Collections.enumeration() rather than custom code that
+        does the same thing. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52113">52113</a>: Don't assume presence of context.xml file with JMX
+        deployment. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        In <code>RequestFilterValve</code> (<code>RemoteAddrValve</code>,
+        <code>RemoteHostValve</code>): refactor value matching logic into
+        separate method and expose this new method <code>isAllowed</code>
+        through JMX. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52156">52156</a>: Ensure that
+        <code>getServletContext().getResource(path)</code> returns the correct
+        resource when path contains <code>/../</code> sequences or any other
+        sequences that require normalization. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Report existence of HTTP request parameter parsing errors via new
+        special ServletRequest attribute,
+        <code>org.apache.catalina.parameter_parse_failed</code>. (kkolinko)
+      </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
         New filter <code>FailedRequestFilter</code> that will reject a request
         if there were errors during HTTP parameter parsing. (kkolinko)
       </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.34 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.34_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50394">50394</a>: Return -1 from read operation instead of throwing an
-        exception when encountering an EOF with the HTTP APR connector.
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve special attributes handling in Request object by using hash
+        table lookup instead of series of string comparisons. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Deprecate unused methods in <code>IntrospectionUtils</code> class.
         (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51698">51698</a>: Fix CVE-2011-3190. Prevent AJP message injection.
-        (markt)
+        Improve processing of errors that are wrapped in
+        <code>InvocationTargetException</code>. Rethrow fatal errors that must
+        be rethrown. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Detect incomplete AJP messages and reject the associated request if one
-        is found. (markt)
+        Improve handling of failed web application deployments during automatic
+        deployment. Once deployment of a web application fails in one form (e.g.
+        WAR), no further attempt (e.g. directory) will be made to deploy that
+        web application. The base Lifecycle implementation has been improved to
+        allow failed web applications to be started once the configuration
+        issues have been resolved. Any changes to a context.xml file (global,
+        per host or web application specific) will now result in a redeploy
+        of the affected web application(s) that ensures that any changes are
+        correctly applied rather than a reload which ignores changes in
+        context.xml files. (markt/kkolinko) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51794">51794</a>: Fix race condition in NioEndpoint selector. Patch
-        provided by dlord. (fhanik)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52173">52173</a>: Improve Javadoc for <code>delegate</code> attribute
+        of WebappClassLoader. Based on a patch by bmargulies. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add <code>denyStatus</code> attribute to <code>RequestFilterValve</code>
+        (<code>RemoteAddrValve</code>, <code>RemoteHostValve</code> valves) and
+        <code>RequestFilter</code> (<code>RemoteAddrFilter</code>,
+        <code>RemoteHostFilter</code> filters). It allows to use different
+        HTTP response code when rejecting denied request. E.g. 404 instead
+        of 403. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51905">51905</a>: Fix infinite loop in AprEndpoint shutdown if
+        Slightly improve performance of UDecoder.convert(). Align
+        <code>%2f</code> handling between implementations. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.23 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.23_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51881">51881</a>: Correctly complete Comet requests when the Comet END
+        event is triggered asynchronously. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51905">51905</a>: Fix infinite loop in AprEndpoint shutdown if
         acceptor unlock fails. Reduce timeout before forcefully closing
         the socket from 30s to 10s. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52121">52121</a>: Fix possible output corruption when compression is
-        enabled for a connector and the response is flushed. Test
-        case provided by David Marcks. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Replace unneeded call that iterated events queue in NioEndpoint.Poller.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51912">51912</a>: Fix HTTP header processing in NIO HTTP connector.
         (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Improve MimeHeaders.toString(). (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Allow the BIO HTTP connector to be used with SSL when running under Java
-        7. (markt) 
+        Fix threading issue in NIO connectors during shutdown that meant Comet
+        connections were not always shut down cleanly. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        In HTTP connectors: self-guard against using a non-recycled input
+        buffer. Requests will be rejected with response status 400. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve multi-byte character handling in all connectors. (rjung)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52121">52121</a>: Fix possible output corruption when compression is
+        enabled for a connector and the response is flushed. Includes a test
+        case provided by David Marcks. (kkolinko/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve multi-byte character handling in Coyote output for HTTP
+        and AJP. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Refactor acceptor unlock code to reduce waiting time during connector
+        pause and stop. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.34 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.34_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.23 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.23_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51220">51220</a>: Correct copy/paste error in original commit for this
-        issue. (markt)
+        Correct possible (but very small) memory leak when using maxLoadedJsps
+        to limit the number of JSPs loaded at any one time. (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52091">52091</a>: Address performance issues related to log creation
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52051">52051</a>: Better handling of missing resource problems with
+        non-standard Servlet mappings so that a 404 response is returned to the
+        client rather than a 500 response. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52091">52091</a>: Address performance issues related to log creation
         in TagHandlerPool. Patch provided by Taiki Sugawara. (markt)
       </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Switch to using Collections.enumeration() rather than custom code that
+        does the same thing. (markt)
+      </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.34 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.34_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.23 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.23_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51736">51736</a>: Make rpcTimeout configurable in BackupManager. 
-        (kfujino)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        New cluster manager attribute <code>sessionAttributeFilter</code>
-        allows to filter which session attributes are replicated using a
-        regular expression applied to the attribute name. (rjung)
-      </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Avoid an unnecessary session ID change notice. 
         Notice of changed session ID by JvmRouteBinderValve is unnecessary to 
@@ -1202,175 +9221,771 @@
         the call of a setId() method. (kfujino)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix unneeded duplicate <code>resetDeltaRequest()</code> call in
+        Fix duplicate <code>resetDeltaRequest()</code> call in
         <code>DeltaSession.setId(String)</code>. (kkolinko)
       </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Work around a <a href="http://bugs.sun.com/view_bug.do?bug_id=6427854" rel="nofollow">known JVM bug</a> that is fixed in 1.7.0_01 but still
+        present in 1.6.0_29 and was triggering intermittent unit test failure
+        for <code>org.apache.catalina.tribes.group.
+        TestGroupChannelMemberArrival.testMemberArrival</code>.
+        The bug affects any components that use NIO although it was more likely
+        to be observed in the clustering module than the HTTP or AJP NIO
+        connector. (markt) 
+      </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
         When Context manager does not exist, no context manager message is 
-        replied in order to avoid timeout (default 60 sec) of 
+        replied in order to avoid timeout (default 60sec) of 
         GET_ALL_SESSIONS sync phase. (kfujino)
       </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix setting maxInactiveInterval, sessionIdLength and
+        processExpiresFrequency for cluster managers. Use setter
+        when setting maxActiveSessions. (rjung)
+      </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.34 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.34_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.23 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.23_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50923">50923</a>: Use distinct background color for <code>code</code>
+        tag in Tomcat documentation, for better readability. (kkolinko)
+      </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct the documentation for the connectionLinger attribute of the HTTP
-        connector. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51630">51630</a>: Fix bug in async0 example that triggered an
+        IllegalStateException in the application log. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Show build date and version in the header on every documentation
-        page. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52025">52025</a>: Add additional information regarding DriverManager,
+        the service provider mechanism and memory leaks. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52049">52049</a>: Improve setup instructions for running as a Windows
-        service: correct information on how a JRE is identified and selected.
-        (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52049">52049</a>: Improve setup instructions for running as a Windows
+        service: remove references to specific Windows operating systems - it
+        easily becomes dated; correct information on how a JRE is identified and
+        selected. (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52172">52172</a>: Clarify Tomcat build instructions. Patch provided
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52172">52172</a>: Clarify Tomcat build instructions. Patch provided
         by bmargulies. (kkolinko)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.34 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.34_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.23 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.23_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update the native component of the APR/native connectors to 1.1.22.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update the recommended version of the native component of the APR/native
-        connectors to 1.1.22. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update the Eclipse compiler (used for JSPs) to 3.7. (markt)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52015">52015</a>: In jdbc-pool: JdbcInterceptor passes not 'this' but 
+        'proxy' to <code>getNext().invoke</code>. (kfujino)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct two typos in the Windows installer. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=52059">52059</a>: In Windows uninstaller: Do not forget to remove
-        Tomcat keys from 32-bit registry on deinstallation. (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.33 (jfclere)"><!--()--></a><a name="Tomcat_6.0.33_(jfclere)"><strong>Tomcat 6.0.33 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-08-18</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.33 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.33_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Allow to search the virtual paths before the webapp or after it. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=27988">27988</a>: Improve reporting of missing files. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=28852">28852</a>: Add URL encoding where missing to parameters in URLs
-        presented by Ant tasks to the Manager application. Based on a patch by
-        Stephane Bailliez. (markt) 
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46252">46252</a>: Allow to specify character set to be used to write
-        the access log in AccessLogValve. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48863">48863</a>: Provide an warning if there is a problem with a class
-        path entry but use debug level logging if it is expected due to catalina
-        home/base split. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49180">49180</a>: Add an option to disable file rotation in JULI
-        FileHandler. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50189">50189</a>: Once the application has finished writing to the
-        response, prevent further reads from the request since this causes
-        various problems in the connectors which do not expect this. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50700">50700</a>: Ensure that the override attribute of context
-        parameters is correctly followed. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50734">50734</a>: Return 404 rather than 400 for requests to the ROOT
-        context when no ROOT context is deployed. Patch provided by Violeta
-        Georgieva. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50751">50751</a>: When authenticating with the JNDI Realm, only attempt
-        to read user attributes from the directory if attributes are required.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50752">50752</a>: Fix typo in debug message in
-        <code>org.apache.catalina.startup.Embedded</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50855">50855</a>: Fix NPE on AuthenticatorBase.register() when debug
-        logging is enabled. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correctly format the timestamp reported by version.[sh|bat]. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove unnecessary whitespace from MIME mapping entries in global
-        web.xml file. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51042">51042</a>: Don't trigger session creation listeners when a
-        session ID is changed as part of the authentication process. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51119">51119</a>: Add JAAS authentication support to the
-        JMXRemoteLifecycleListener. Patch provided by Neil Laurance. (markt) 
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Implement display of multiple request headers in AccessLogValve:
-        print not just the value of the first header, but of the all of them,
-        separated by commas. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct the SSLValve so it returns the SSL key size as an Integer rather
-        than as a String. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51162">51162</a>: Prevent possible NPE when removing a web application.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51249">51249</a>: Improve system property replacement code
-        in ClassLoaderLogManager of Tomcat JULI to cover some corner cases.
+        In jdbc-pool: Improve handling of Errors that originate from methods
+        invoked through reflection. In <code>TrapException</code> interceptor:
+        rethrow Error as is, without wrapping it in a RuntimeException.
         (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51315">51315</a>: Fix IAE when removing an authenticator valve from a
-        container. Patch provided by Violeta Georgieva. (markt)
+        In jdbc-pool: Unwrap InvocationTargetException if it is caught in
+        <code>ResultSetProxy</code>, like we do it elsewhere. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51324">51324</a>: Improve handling of exceptions when flushing the
-        response buffer to ensure that the doFlush flag does not get stuck in
-        the enabled state. Patch provided by Jeremy Norris. (kkolinko)
+        When building jdbc-pool from within Tomcat, use Tomcat's
+        <code>output</code> directory location. This allows to move all build
+        output away from the source tree. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.23 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.23_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the package re-named copy of Commons BCEL (formerly Jakarta BCEL)
+        to the latest code from Commons BCEL trunk. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Remove some unused code from the packaged renamed Commons BCEL. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51348">51348</a>: Fix possible NPE when processing WebDAV locks. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52059">52059</a>: In Windows uninstaller: Do not forget to remove
+        Tomcat keys from 32-bit registry on deinstallation. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Start the process of deprecating unused and unnecessary code that will
+        be removed in the next major release (8.0.x). (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Ignore <code>.git</code> directory when building the source
+        distributive. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove trailing whitespace from the default configuration files.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve <code>RUNNING.txt</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update optional Checkstyle library to 5.5. (kkolinko)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add a container event that is fired when a session's ID is changed,
-        e.g. on authentication. (markt)
+        In test suite: add <code>LoggingBaseTest</code> class to allow
+        use of Tomcat logging configuration in tests that do not start Tomcat.
+        (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix CVE-2011-2204. Prevent user passwords appearing in log files if a
-        runtime exception (e.g. OOME) occurs while creating a new user for a
-        MemoryUserDatabase via JMX. (markt)
+        In test suite: speed up <code>TestGroupChannelSenderConnections</code>.
+        Remove 48 seconds worth of waits. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51400">51400</a>: Avoid jvm bottleneck on String/byte[] conversion
-        triggered by a JVM bug. Based on patches by Dave Engberg and Konstantin
-        Prei&szlig;er. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=52148">52148</a>: Add tomcat-coyote.jar to catalina-tasks.xml as this
+        JAR is now required by the Ant tasks. Patch provided by Volker Krebs.
+        (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51403">51403</a>: Avoid NPE in JULI FileHandler if formatter is
-        misconfigured. (kkolinko)
+        Add sample Apache Commons Daemon JSVC wrapper script
+        <code>bin/daemon.sh</code> that can be used with <code>/etc/init.d</code>.
+        (mturk)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.22 (markt)"><!--()--></a><a name="Tomcat_7.0.22_(markt)"><strong>Tomcat 7.0.22 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-10-01</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.22 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.22_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51550">51550</a>: An additional change that ensures any exceptions
+        thrown by an Authenticator (or any other Valve configured for the
+        Context) will be handled by the custom error pages for the Context if an
+        appropriate error page is configured. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51580">51580</a>: Added a nicer error message when a WAR file contains
+        filenames not properly encoded in UTF-8. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51687">51687</a>: Added (optional) protection against
+        sun.java2d.Disposer thread pinning a WebappClassLoader into memory
+        in the JreMemoryLeakPreventionListener. (schultz)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51741">51741</a>: Fixes a problem with Eclipse WTP "Serve modules
+        without publishing" feature where applications failed to access
+        resources when using getResource() on the classloader. (slaurent)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51744">51744</a>: Prevent application code from closing the associated
+        JNDI context while the application is running. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression with the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51653">51653</a> that broke custom
+        error pages for 4xx responses from the Authenticators. Error handling
+        and request listeners are now handled in the StandardHostValve to ensure
+        they wrap all Context level activity. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51758">51758</a>: The digester (used for processing XML files) used the
+        logger name <code>org.apache.commons.digester.Digester</code> rather
+        than the expected <code>org.apache.tomcat.util.digester.Digester</code>.
+        The digester has been changed to use the expected logger name.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51774">51774</a>: Fix incorrect cached method signature that prevented
+        session tracking modes from being defined in web.xml when running under
+        a security manager. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add an annotation cache to the <code>DefaultInstanceManager</code> that
+        improves performance for applications that make use of a lot of
+        non-poolable objects (e.g. tag files) that need to be scanned for
+        annotations when created. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Use the specification compliant request attribute of
+        <code>javax.servlet.request.ssl_session_id</code> to access the SSL
+        session ID and deprecated the Tomcat specific request attribute. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Allow to overwrite the check for distributability
+        of session attributes by session implementations. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add Java 7 sunec.jar and zipfs.jar to the list of JARs
+        to skip when scanning for TLDs and web fragments. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51862">51862</a>: Added a <code>classesToInitialize</code> attribute to 
+        <code>JreMemoryLeakPreventionListener</code> to allow pre-loading of configurable
+        classes to avoid some classloader leaks. (slaurent)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Reduce visibility of static field <code>ManagerBase.name</code> and
+        make it final. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add thread name to juli OneLineFormatter. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure Servlets that implement ContainerServlet always get treated as
+        restricted. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51872">51872</a>: Ensure that the access log always uses the correct
+        value for the remote IP address associated with the request and that
+        requests with multiple errors do not result in multiple entries in
+        the access log. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.22 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.22_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Remove unused and undocumented socketCloseDelay attribute from NIO
+        connector. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49683">49683</a>: Support separate connection and keep-alive timeouts
+        for the APR/native connector HTTP and AJP connectors. (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Further re-factoring of the HTTP connectors to align the BIO, NIO and
+        APR implementations. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51794">51794</a>: Fix race condition in NioEndpoint. (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51811">51811</a>: Correct SSL configuration property name from
+        sslImplemenationName to sslImplementationName. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a timing issue in NIO connector that meant that stopping a connector
+        did not trigger a Comet END event if the associated processor was
+        processing a READ event when the connector was stopped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Replace unneeded call that iterated events queue in NioEndpoint.Poller.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51860">51860</a>: Fix issues if using NIO with a custom
+        SSLImplementation. Based on a suggestion by Roman Tsirulnikov. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow the BIO HTTP connector to be used with SSL when running under Java
+        7. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Don't send AJP CPONG if endpoint is already paused. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Align APR AJP connector with NIO one. Send 503 if endpoint is paused.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Accept AJP request even if endpoint is paused, if CPING was successful.
+        (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.22 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.22_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When unloading JSPs due to configuration of the
+        <code>maxLoadedJsps</code> initialisation parameter, the unloading code
+        was retaining a reference to the unloaded JSP preventing the
+        associated class from being unloaded until the JSP that replaced it was
+        itself unloaded. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51852">51852</a>: Correct two problems in the handling of varargs
+        methods with the BeanELResolver. The first meant the wrong method was
+        sometimes called and the second that an ArrayIndexOutOfBoundsExceptions
+        could be thrown. Patch (including a test case) provided by Matt Benson.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.22 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.22_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Refactor cluster manager configuration: move handling of common
+        attributes to base class. (kfujino, rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        New cluster manager attribute <code>sessionAttributeFilter</code>
+        allows to filter which session attributes are replicated using a
+        regular expression applied to the attribute name. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.22 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.22_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the documentation for <code>connectionLinger</code> attribute
+        for the AJP and HTTP connectors. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Document caveat of using <code>RemoteAddrValve</code> with IPv6
+        addresses. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.22 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.22_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In jdbc-pool: Avoid IllegalArgumentException when setting maxActive 
+        less than or equal to 0.
+        ArrayBlockingQueue doesn't allow capacity of 0 or less. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48392">48392</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1169796">r1169796</a>): Fix typo in
+        <code>StatementDecoratorInterceptor</code>. (fhanik) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51139">51139</a>:
+        In jdbc-pool: validatorClassName and suspectTimeout are ignored. 
+        In order to support them correctly, validatorClassName and 
+        suspectTimeout are added to a property list. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51786">51786</a>:
+        In jdbc-pool: Discarded connection is not active in a pool any longer. 
+        It removes from the active connection list. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51871">51871</a>: Fix dependency in Maven POM file of
+        tomcat-jbdc. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.22 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.22_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the "test" target in the default build file to report a test
+        failure only after all available connector variants (bio, nio, apr)
+        have been tested. Do not stop after first connector that fails.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51887">51887</a>: When running the unit tests, use a fast but insecure
+        random number source for session ID generation to reduce the delays
+        caused by waiting for entropy. (kkolinko/markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Code clean-up to further reduce the number of warnings reported by
+        Eclipse, FindBugs and CheckStyle. (markt/kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>  
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.21 (markt)"><!--()--></a><a name="Tomcat_7.0.21_(markt)"><strong>Tomcat 7.0.21 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-09-01</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.21 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.21_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=41718">41718</a>: Include a response body when sending a redirect.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51640">51640</a>: Improve the memory leak prevention for leaks triggered
+        by java.sql.DriverManager. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51644">51644</a>: Fix annotation scanning for contexts with a
+        multi-level context path such as /a/b. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Unregisters MBean of DataSource when web application stops. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51650">51650</a>: Code clean-up. Patch provided by Felix Schumacher.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51653">51653</a>: Move application level error page handling from the
+        Host to the Context. This ensures that application error page handling
+        is completed before the requestDestroyed event of any
+        ServletRequestListener is fired. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51654">51654</a>: Improve handling of invalid appBase settings for Host
+        elements. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51658">51658</a>: Fix possible NPE when logging a failed request. Based
+        on a suggestion by Felix Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51688">51688</a>: JreMemoryLeakPreventionListener now protects against
+        AWT thread creation. (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51712">51712</a>: Ensure cache control headers are sent when appropriate
+        even if the request is secure. Patch provided by Michael Zampani.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51713">51713</a>: Improve message that is logged if there is an error
+        in the value of <code>protocol</code> in a <code>Connector</code>.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51739">51739</a>: When using a landing page with FORM authentication
+        ensure that the request has a valid HTTP method. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.21 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.21_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51641">51641</a>: Use correct key when removing processor instances from
+        the connections map during clean-up. Patch provided by zhh. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        More changes to align the code between the different HTTP connectors.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure AjpMessage headers are correct for the direction of the message.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="code" class="icon" src="./images/code.gif"></td><td>
+        Code clean-up and re-factoring to reduce duplicate code in the AJP
+        processor implementations. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Detect incomplete AJP messages and reject the associated request if one
+        is found. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51698">51698</a>: Fix CVE-2011-3190. Prevent AJP message injection.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.21 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.21_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=41673">41673</a>: Use platform line-endings when reporting compilation
+        errors. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.21 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.21_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51736">51736</a>: Make rpcTimeout configurable in BackupManager. 
+        (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.21 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.21_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51649">51649</a>: Update the documentation web application to include
+        the ThreadLocal leak prevention listener. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.21 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.21_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51583">51583</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1157874">r1157874</a>, <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1162102">r1162102</a>): Fix
+        shutdown delay in jdbc-pool. (fhanik/kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.21 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.21_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51558">51558</a>: Don't force the use of StandardManager when using
+        any of the <code>Tomcat#addWebapp()</code> methods. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51704">51704</a>: Make use of <code>File#mkdirs()</code> more robust.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>  
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.20 (markt)"><!--()--></a><a name="Tomcat_7.0.20_(markt)"><strong>Tomcat 7.0.20 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-08-11</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.20 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.20_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Corrected missing comma in the value of <code>jarsToSkip</code>
+        property in <code>conf/catalina.properties</code> file, which
+        caused tomcat-jdbc.jar and commons-beanutils*.jar to be not
+        ignored when scanning jars for tag libraries. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=41709">41709</a>: Provide exception messages where no message is
+        provided currently for IllegalStateExcpetions triggered by calling
+        HttpServletResponse methods when the response is committed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51509">51509</a>: Fix potential concurrency issue in CSRF prevention
+        filter that may lead to some requests failing that should not. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51518">51518</a>: Correct error in web.xml parsing rules for the
+        &lt;others/&gt; tag when using absolute ordering. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Move the SetCharacterEncoding filter from the examples web application
+        to the <code>org.apache.catalina.filters</code> package so it is
+        available for all web applications. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51550">51550</a>: Internal errors in Tomcat components that process
+        requests before they are passed to a web application, such as
+        Authenticators, now return a 500 response rather than a 200 response.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51555">51555</a>: Allow destroy() to be called on Lifecycle components
+        that are in the initialized state. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add x-threadname pattern format token to ExtendedAccessLogValve to log
+        the current request thread name. Based on a patch from Felix Schumacher.
+        (timw)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51584">51584</a>: Ensure file paths are encoded/decoded when translated
+        to/from URLs when working with resources from a Context so special
+        characters don't cause issues. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51586">51586</a>: Expand error handling to cover anything that is
+        recoverable (or might be recoverable) when loading classes during
+        HandlesTypes processing. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51588">51588</a>: Make it easier to extend the AccessLogValve to add
+        support for custom elements. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that calls to StandardWrapper methods() that may trigger creation
+        of a Servlet instance always do so in way that correctly instantiates a
+        Servlet instance. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In JDBCStore: Committing connection if autoCommit is false.
+        Make sure committed connection is returned to the pool if datasource is 
+        enabled. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Split <code>condition</code> attribute of AccessLogValve into two,
+        <code>conditionIf</code> and <code>conditionUnless</code>. Implement
+        conditional logging that logs only if a request attribute is present.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Allow to have several AccessLogValve instances in the same scope (e.g.
+        in the same Context). (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51610">51610</a>: If an unchecked exception occurs during a lifecycle
+        transition (e.g. web application start) ensure that the component is
+        put into the failed state. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51614">51614</a>: Avoid calling store.load() and  session.expire()
+        twice in PersistentManager when expiring sessions. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent spurious log warnings on container stop if a child component has
+        previously failed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add missing getter and setter for the alwaysUseSession attribute of the
+        authenticators. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.20 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.20_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49595">49595</a>: Prevent JVM crash with the AJP APR connector when
+        flushing a closed socket. (jfclere)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50394">50394</a>: Return -1 instead of throwing an exception when
+        encountering an EOF while processing an input stream with the HTTP APR
+        connector. (jfclere)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly handle a connectionTimeout value of -1 (no timeout) for the
+        HTTP NIO and AJP NIO connectors. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51503">51503</a>: Add additional validation that prevents a connector
+        from starting if it does not have a port &gt; 0. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51557">51557</a>: Ignore HTTP headers that do not comply with RFC 2616
+        and use header names that are not tokens. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Improve error handling for HTTP APR if an error occurs while using
+        sendfile. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that when using sendfile, HTTP APR sockets are not added to
+        multiple pollers. This may cause errors during shutdown. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Set <code>reuse</code> flag of final AJP <code>END_RESPONSE</code>
+        packet to <code>0</code> if we plan to close the connection. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Correctly indicate if socket is closing when calling recycle for the AJP
+        NIO processor. Note since the flag is unused in this case there were no
+        bugs triggered by the re-factoring error. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.20 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.20_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51532">51532</a>: JSP files with dependencies in JARs were recompiled on
+        every access leading to poor performance. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51544">51544</a>: Correctly resolve bean methods in EL so accessible
+        methods that are overridden by inaccessible methods do not cause an
+        IllegalAccessException. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.20 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.20_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=41498">41498</a>: Add the allRolesMode attribute to the Realm
+        configuration page in the documentation web application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48997">48997</a>: Fixed some typos and correct cross-referencing to the
+        HTTP Connector documentation with the SSL How-To page of the
+        documentation web application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49122">49122</a>: Improvements and fixes for index page for ROOT web
+        application. Based on a patch provided by pidster. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51516">51516</a>: Correct documentation web application to show correct
+        system property name for changing the name of the SSO session cookie.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Configure the Manager and Host Manager web applications with the Set
+        Character Encoding Filter to make the default request character encoding
+        UTF-8 to improve i18n support. Note that best results will be obtained
+        if the connector is also configured with
+        <code>URIEncoding="UTF-8"</code>.(markt)  
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the documentation web application to be even more explicit about
+        the implications of setting the path attribute on a Context element in
+        server.xml. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51561">51561</a>: Update the Realm page within the documentation web
+        application to recommend the use of digest.[bat|sh] to generate digests
+        rather than calling RealmBase directly. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51567">51567</a>: Update the class loading page of the documentation
+        web application to include information on the search order for the
+        common class loader when separate values are used for $CATALINA_HOME and
+        $CATALINA_BASE. (markt) 
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve class loading documentation and logging documentation.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add information to the security page of the documentation web
+        application for the ciphers attribute of the Connector element. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.20 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.20_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51503">51503</a>: Add additional validation to Windows installer that
+        ensure that the shutdown port, HTTP port and AJP port are all specified
+        during the install process. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51531">51531</a>: Update sample Eclipse classpath file to reflect
+        updated ECJ jar. Patch provided by Ian Brandt. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Convert Tomcat unit tests to JUnit 4. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update optional CheckStyle library to 5.4. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove <code>resolveHosts</code> attribute from AccessLogValve
+        configuration in the default <code>server.xml</code>. It was documented
+        in 7.0.19 that it has no effect. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Simplify mapping for <code>jsp</code> servlet in the default
+        <code>web.xml</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly handle uninstall with the Windows installer if the service is
+        installed with a name that contains a '-' character. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51598">51598</a>: Prevent direct invocation of the Windows uninstaller
+        without a service name from executing since the uninstall will not be
+        complete. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Use Tomcat icon (cat) instead of Apache Commons Daemon (feather) one
+        in the list of uninstallable programs on Windows. (kkolinko) 
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Apache Commons Daemon 1.0.7. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51621">51621</a>: Add additional required JARs to the deployer
+        distribution. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix a small number of warnings reported by FindBugs. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to version 1.1.22 of the native component for the AJP APR/native
+        and HTTP APR/native connectors. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.19 (markt)"><!--()--></a><a name="Tomcat_7.0.19_(markt)"><strong>Tomcat 7.0.19 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-07-19</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.19 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.19_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add option to activate access log for unit tests. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix regression in year number formatting for AccessLogValve. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=46252">46252</a>: Allow to specify character set to be used to write
+        the access log in AccessLogValve. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51494">51494</a>: Prevent an NPE when a long running request completes
+        if the associated web application was destroyed while the request was
+        processing. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Allow choosing a locale for timestamp formatting in AccessLogValve.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When generating access logs for errors, log at the Context/Host level if
+        a Context or Host can be identified for the failed request. (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
         Create a directory for access log or error log (in AccessLogValve and
@@ -1380,64 +9995,42 @@
         attribute. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Log a failure if access log file cannot be opened. Improve i18n
-        of messages. (kkolinko)
+        Log a failure if access log file cannot be opened. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve handling of URLs with path parameters and prevent incorrect 404
-        responses that could occur when path parameters were present. (kkolinko)
+        Use en_US as locale for timestamps in ExtendedAccessLogValve.
+        (rjung)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51473">51473</a>: Fix concatenation of values in
-        <code>SecurityConfig.setSecurityProperty()</code>. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51509">51509</a>: Fix potential concurrency issue in CSRF prevention
-        filter that may lead to some requests failing that should not. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51588">51588</a>: Make it easier to extend the AccessLogValve to add
-        support for custom elements. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Unregister DataSource MBeans when web application stops. (kfujino)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        CVE-2011-1184: Add additional configuration options to the DIGEST
-        authenticator. (markt)
+        Use en_US as locale for creationdate in WebdavServlet. (rjung)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.33 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.33_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.19 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.19_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Reduce level of log message for invalid URL parameters from WARNING to
-        INFO. (kkolinko) 
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51477">51477</a>: Support all SSL protocol combinations in the
+        APR/native connector. This only works when using the native library
+        version 1.1.21 or later, which is not yet released. (rjung)
       </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48208">48208</a>: Provide an option to specify a custom trust manager
-        for BIO and NIO HTTP connectors using SSL. Based on a patch by Luciana
-        Moreira. (markt)
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Various refactorings to reduce code duplication and unnecessary code in
+        the connectors. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49595">49595</a>: Protect against crashes when using the APR/native
-        connector. (jfclere)
+        Correct regression introduced in 7.0.17 that triggered 400 entries in
+        the AccessLog when using the AJP/BIO connector. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49929">49929</a>: Make sure flush packet is not send after END_RESPONSE
-        packet. (mturk/markt) 
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50887">50887</a>: Enable the provider to be configured when generating
-        SSL certs. Based on a patch by pknopp. (markt)
+        Fix regression producing invalid MBean names when using IPV6
+        addresses for connectors. (rjung)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51073">51073</a>: Throw an exception and do not start the APR connector
-        if it is configured for SSL and an invalid value is provided for
-        SSLProtocol. (markt)
+        Add missing thread name in RequestProcessor when Servlet 3 Async
+        is used. Fixes null thread name in access log and JMX MBean. (rjung)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix CVE 2011-2526. Protect against infinite loops (HTTP NIO) and crashes
+        Fix CVE-2011-2526. Protect against infinite loops (HTTP NIO) and crashes
         (HTTP APR) if sendfile is configured to send more data than is available
         in the file. (markt)
       </td></tr>
@@ -1445,214 +10038,1466 @@
         Prevent NPEs when a socket is closed in non-error conditions after
         sendfile processing when using the HTTP NIO connector. (markt) 
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51515">51515</a>: Prevent immediate socket close when comet is used over
-        HTTPS. (markt)
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.19 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.19_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove unnecessary server.xml parsing code for old cluster
+        implementation that does not ship as part of Tomcat 7. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.33 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.33_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.19 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.19_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add additional information to the documentation web application on the
+        benefits and remaining risks when running under a security manager.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51490">51490</a>: Correct broken HTML in JSP tag plugin examples and
+        improve the &lt;c:if&gt; example to make failures more obvious. Based on
+        suggestions by Charles. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Document ExtendedAccessLogValve. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct default value of <code>enableLookups</code> for connectors
+        and mention, that <code>resolveHosts</code> for the AccessLogValve
+        is replaced by <code>enableLookups</code>. (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.19 (markt)/jdbc-pool"><!--()--></a><a name="Tomcat_7.0.19_(markt)/jdbc-pool"><strong>jdbc-pool</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Include jdbc-pool into Tomcat release. (fhanik)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.19 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.19_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Apache Commons Daemon 1.0.6. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Eclipse JDT Compiler 3.7. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.18 (markt)"><!--()--></a><a name="Tomcat_7.0.18_(markt)"><strong>Tomcat 7.0.18 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.18 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.18_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36362">36362</a>: Handle the case where tag file attributes (which can
+        Correct regression introduced in 7.0.17 that triggered an NPE if a
+        CrawlerSessionManagerValve was used without setting crawlerUserAgents.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51466">51466</a>: Correct comment typos in HostManagerServlet. Patch
+        provided by Felix Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51467">51467</a>: Invoke Thread.start() rather than Thread.run() so that
+        listeners and filters are stopped in a separate thread rather than the
+        current thread. Patch provided by Felix Schumacher. (markt)  
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51473">51473</a>: Fix concatenation of values in
+        <code>SecurityConfig.setSecurityProperty()</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix response.encodeURL() for the special case of an absolute URL
+        with no path segment (http://name). (rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.18 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.18_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct regression caused by connector re-factoring that made AJP
+        APR/native connector very unstable on Windows platforms. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct regression caused by connector re-factoring that meant that
+        sendfile data was not reset between pipe-lined HTTP requests. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.18 (markt)/Tribes"><!--()--></a><a name="Tomcat_7.0.18_(markt)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Re-factor tests to align packages for tests with the classes under test.
+        Start to convert non-JUnit tests to JUnit. Remove unnecessary code.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add synchronization to receiver socket binding to prevent test failures
+        on Linux. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.18 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.18_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        More code clean-up to remove unused code and reduce IDE warnings.
+        (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Further improvements to the Windows installer. (markt/kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.17 (markt)"><!--()--></a><a name="Tomcat_7.0.17_(markt)"><strong>Tomcat 7.0.17 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.17 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.17_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48956">48956</a>: Add regular expression support for SSI. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49165">49165</a>: Allow any time stamp formats supported by
+        SimpleDateFormat in AccessLogValve. Support logging begin and/or end of
+        request. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50677">50677</a>: Allow system property variables to be used in the
+        values of "common.loader" and other "*.loader" properties in the
+        <code>catalina.properties</code> file. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51376">51376</a>: When adding a Servlet via
+        ServletContext#addServlet(String, Servlet), the Servlet was not
+        initialized when the web application started and a load on startup value
+        was set. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51386">51386</a>: Correct code for processing @HandlesTypes annotations
+        so only types of interest are reported to a ServletContainerInitializer.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Add the Tomcat extras, ant-junit and Java Help Jars to the list of JARs
+        to skip when scanning for TLDs and web fragments. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        The fix for bug <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51310">51310</a> caused a regression that re-introduced
+        bug <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49957">49957</a> and deleted the contents of the work directory
+        when Tomcat was shutdown. This fix ensures that that work directory for
+        an application is not deleted when Tomcat is shutdown. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct issues with JULI's OneLineFormatter including: correctly
+        re-using formatted timestamps when possible; thread-safety issues in
+        timestamp formatting; correcting the output of any milliseconds to
+        include leading zeros and formatting any parameters present.
+        (kkolinko/markt/rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51395">51395</a>: Fix memory leak triggered when an application that
+        includes a SAXParserFactory is the first web application to be loaded.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51396">51396</a>: Correctly handle jsp-file entries in web.xml when the
+        JSP servlet has been configured via code when embedding Tomcat. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51400">51400</a>: Avoid known bottleneck in JVM when converting between
+        Strings and bytes by always providing a Charset rather than an encoding
+        name. Based on a patch by Dave Engberg. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51401">51401</a>: Correctly initialise shared WebRuleSet instance used
+        by the digesters that parse web.xml and prevent incorrect warnings about
+        multiple occurrences of elements that are only allowed to appear once in
+        web.xml and web-fragment.xml. (kfujino)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51403">51403</a>: Avoid NPE in JULI FileHandler if formatter is
+        misconfigured. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Previous improvements in JAR scanning performance introduced a start-up
+        performance penalty for some use cases. This fix addresses those
+        performance penalties while retaining the original improvements. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51418">51418</a>: Provide more control over Context creation when
+        embedding Tomcat. Based on a patch by Benson Margulies. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove redundant copy of catalina.properties from o.a.c.startup.
+        Generate this copy for inclusion in bin and src jars during the
+        ant "compile" task. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Use system properties loaded from catalina.properties via the class
+        path in unit tests. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve JMX unit test. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix IllegalStateException for JavaScript files when switching from
+        Writer to OutputStream. The special handling of this case in the
+        DefaultServlet was broken due to a MIME type change for JavaScript.
+        (funkman)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix CVE-2011-2204. Prevent user passwords appearing in log files if a
+        runtime exception (e.g. OOME) occurs while creating a new user for a
+        MemoryUserDatabase via JMX. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix an issue with the CrawlerSessionManagerValve that meant sessions
+        were not always correctly tracked. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51436">51436</a>: Send 100 (Continue) response earlier to enable
+        ServletRequestListener implementations to read the request body. Based
+        on a patch by Simon Olofsson. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure an access log entry is made if an error occurs during
+        asynchronous request processing and the socket is immediately closed.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that if asyncDispatch() is called during an onTimeout event and
+        the target Servlet does not call startAsync() or complete() that Tomcat
+        calls complete() once the target Servlet exits. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the handling for Servlets that implement the deprecated
+        SingleThreadModel when embedding Tomcat. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51445">51445</a>: Correctly initialise all instances of Servlets that
+        implement SingleThreadModel. Based on a patch by Felix Schumacher.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51453">51453</a>: Fix a regression in the preemptive authentication
+        support (enhancement <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=12428">12428</a>) that could trigger authentication
+        even if preemptive authentication was disabled. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent possible NPE when serving Servlets that implement the
+        SingleThreadModel interface. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In launcher for embedded Tomcat: do not change <code>catalina.home</code>
+        system property if it had a value. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When using Servlets that implement the SingleThreadModel interface, add
+        the single instance created to the pool when it is determined that a
+        pool of servlets is required rather than throwing it away. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.17 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.17_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix unit test for bindOnInit which was failing for APR on some
+        platforms. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove superfluous quotes from thread names for connection pools.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix crash observed during pausing the connector when using APR.
+        Only add socket to poller if we are sure we don't close it later.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Various refactorings to reduce code duplication and unnecessary code in
+        the connectors. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression introduced in Apache Tomcat 7.0.11 that broke
+        certificate revocation list handling. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.17 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.17_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve the message printed by TldLocationsCache and add configuration
+        example to the <code>logging.properties</code> file. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=33453">33453</a>: Recompile JSPs if last modified time of the source or
+        any of its dependencies changes either forwards or backwards. Note that
+        this introduces an incompatible change to the code generated for JSPs.
+        Tomcat will automatically re-compile any JSPs and tag files found in the
+        work directory when upgrading from 7.0.16 or earlier to 7.0.17 or later.
+        If you later downgrade from 7.0.17 or later to 7.0.16 or earlier, you
+        must empty the work directory as part of the downgrade process. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=36362">36362</a>: Handle the case where tag file attributes (which can
         use any valid XML name) have a name which is not a Java identifier.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47371">47371</a>: Correctly coerce the empty string to zero when used as
-        an operand in EL arithmetic. Patch provided by gbt. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50726">50726</a>: Ensure that the use of the genStringAsCharArray does
-        not result in String constants that are too long for valid Java code.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50895">50895</a>: Don't initialize classes created during the
-        compilation stage. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51124">51124</a>: Make Tomcat more robust if an OOME occurs. Usually
-        after an OOME all bets are off but this change appears to help some
-        users and the description of a 'recoverable' OOME in the bug
-        is a plausible one. Based on a patch by Ramiro. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51177">51177</a>: Ensure Tomcat's MapELResolver and ListELResolver
-        always return <code>Object.class</code> for <code>getType()</code> as
-        required by the EL specification. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct possible threading issue in JSP compilation when development
-        mode is used. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51220">51220</a>: Add a system property to enable tag pooling with JSPs
-        that use a custom base class. Based on a patch by Dan Mikusa. (markt)
+        (markt/kkolinko)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
         Broaden the exception handling in the EL Parser so that more failures to
         parse an expression include the failed expression in the exception
         message. Hopefully, this will help track down the cause of
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51088">51088</a>. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Improve error reporting of Jasper compilation. (schultz)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51088">51088</a>. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.33 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.33_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.17 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.17_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50646">50646</a>: Fix cluster message data corruption if message size
-        exceeds the underlying buffer size. Patch provided by Olivier Costet.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50771">50771</a>: Ensure HttpServletRequest#getAuthType() returns the 
-        name of the authentication scheme if request has already been 
-        authenticated. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50950">50950</a>: Correct possible NotSerializableException for an
-        authenticated session when running with a security manager. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51306">51306</a>: Avoid NPE when handleSESSION_EXPIRED is processed 
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51306">51306</a>: Avoid NPE when handleSESSION_EXPIRED is processed 
         while handleSESSION_CREATED is being processed. (kfujino)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Notifications of changes in session ID to other nodes in the cluster
+        should be controlled by notifySessionListenersOnReplication rather than
+        notifyListenersOnReplication. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         The change in session ID is notified to the container event listener on 
-        the backup node in cluster. This notification is controlled by 
-        notifyContainerListenersOnReplication. (kfujino)
+        the backup node in cluster. 
+        This notification is controlled by 
+        notifyContainerListenersOnReplication.(kfujino)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.33 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.33_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.17 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.17_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41498">41498</a>: Add the allRolesMode attribute to the Realm
-        configuration page in the documentation web application. (markt)
+        Update Maven repository information in the documentation to reflect
+        current usage. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=43538">43538</a>: Add host name and IP address to the HTML Manager
+        application. Patch by Dennis Lundberg. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48997">48997</a>: Fixed some typos and improve cross-referencing to the
-        HTTP Connector and APR documentation with the SSL How-To page of the
-        documentation web application. (markt)
+        Add <code>session="false"</code> directive to the index page of the
+        ROOT web application. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50804">50804</a>: Update links for Servlet 2.5 and JSP 2.1 Javadoc.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51443">51443</a>: Document the notifySessionListenersOnReplication
+        attribute for the DeltaManager. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51447">51447</a>: Viewing a back up session in the HTML Manager web
+        application no longer changes the session to a primary session. Based on
+        a patch provided by Eiji Takahashi. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.17 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.17_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=33262">33262</a>: Install monitor to auto-start for current user only
+        rather than all users to be consistent with menu item creation. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=40510">40510</a>: Provide an option to install shortcuts for the current
+        user or all users. Also ensure registry is correctly cleaned on
+        uninstall for 64-bit platforms. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50949">50949</a>: Provide the ability to specify the AJP port and
+        service name when installing Tomcat using the Windows installer. This
+        permits multiple instances of the same Tomcat version to be installed
+        side-by-side. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Clean up shell and batch scripts (improve consistency,
+        clarify comments, add <code>configtest</code> command support for
+        Windows). (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51206">51206</a>: Make CATALINA_BASE visible for setenv.sh. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove unnecessary variable BASEDIR from scripts. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51425">51425</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51450">51450</a>: Update Spanish translations. Based
+        on patches provided by Jesus Marin. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.16 (markt)"><!--()--></a><a name="Tomcat_7.0.16_(markt)"><strong>Tomcat 7.0.16 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-06-17</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.16 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.16_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51249">51249</a>: Further improve system property replacement code
+        in ClassLoaderLogManager of Tomcat JULI to cover some corner cases.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51264">51264</a>: Improve the previous fix for this issue by returning
+        the connection to the pool when not in use so it does not appear to be
+        an abandoned connection. Patch provided by Felix Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51324">51324</a>: Improve handling of exceptions when flushing the
+        response buffer to ensure that the doFlush flag does not get stuck in
+        the enabled state. Patch provided by Jeremy Norris. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51278">51278</a> that prevented any
+        web application from being marked as distributable. (kfujino/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51278">51278</a> that prevented a
+        web application from overriding the default welcome files. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Enable remaining valves for Servlet 3 asynchronous processing support.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid possible NPE when logging requests received during embedded Tomcat
+        shutdown. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51340">51340</a>: Fix thread-safety issue when parsing multiple web.xml
+        files in parallel. Apache Tomcat does not do this but products that
+        embed it may. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51344">51344</a>: Fix problem with Lifecycle re-factoring for deprecated
+        embedded class that prevented events being triggered. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51348">51348</a>: Prevent possible NPE when processing WebDAV locks.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.16 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.16_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When parsing the port in the HTTP host header, restrict the value to be
+        base 10 integer digits rather than hexadecimal ones.
+        (rjung/markt/kkolinko) 
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Various refactorings to reduce code duplication and unnecessary code in
+        the connectors. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.16 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.16_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Change JAR scanning log messages where no TLDs are found to DEBUG level
+        and replace the multiple messages with a single INFO level message that
+        indicates that at least one JAR was scanned needlessly and how to obtain
+        more info. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.16 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.16_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Enable Servlet 3 asynchronous processing support when using clustering.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.16 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.16_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the log4j configuration settings when defining conversion
+        patterns in the documentation web application. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.15 (markt)"><!--()--></a><a name="Tomcat_7.0.15_(markt)"><strong>Tomcat 7.0.15 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.15 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.15_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=27122">27122</a>: Remove a workaround for a very old and since fixed
+        Mozilla bug and change the default value of the securePagesWithPragma
+        attribute of the Authenticator Valves to false. These changes should
+        reduce the likelihood of issues when downloading files with IE. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=35054">35054</a>: Check that a file is not specified for a Host's
+        appBase and log an error if it is. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51197">51197</a>: Fix possible dropped connection when sendError or
+        sendRedirect are used during async processing. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51221">51221</a>: Correct Spanish translation of text used in a 302
+        response. Patch provided by Paco Sober&oacute;n. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51249">51249</a>: Correct ClassLoaderLogManager system property
+        replacement code so properties of the form "}${...}" can be used
+        without error. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51264">51264</a>: Allow the JDBC persistent session store to use a
+        JNDI datasource to define the database in which sessions are persisted.
+        Patch provided by Felix Schumacher. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51274">51274</a>: Add missing i18n strings in PersistentManagerBase.
+        Patch provided by Eiji Takahashi. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51276">51276</a>: Provide an abstraction for accessing content in JARs
+        so the most efficient method can be selected depending on the type of
+        URL used to identify the JAR. This improves startup time when JARs are
+        located in $CATALINA_BASE/lib. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51277">51277</a>: Improve error message if an application is deployed
+        with an incomplete FORM authentication configuration. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51278">51278</a>: Allow ServletContainerInitializers to override
+        settings in the global default web.xml and the host web.xml. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51310">51310</a>: When stopping the Server object on shutdown call
+        destroy() after calling stop(). (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.15 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.15_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51145">51145</a>: Add an AJP-NIO connector. (markt/rjung)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.15 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.15_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51220">51220</a>: Add a system property to enable tag pooling with JSPs
+        that use a custom base class. Based on a patch by Dan Mikusa. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Include a comment header in generated java files that indicates when the
+        file was generated and which version of Tomcat generated it. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51240">51240</a>: Ensure that maxConnections limit is enforced when
+        multiple acceptor threads are configured. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.15 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.15_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51230">51230</a>: Add missing attributes to JMX for ReplicationValve and
+        JvmRouteBinderValve. Patch provided by Eiji Takahashi. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.15 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.15_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add documentation for AJP-NIO connector. (markt/rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51182">51182</a>: Document JAAS supported added in <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51119">51119</a>.
+        Patch provided by Neil Laurance. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51225">51225</a>: Fix broken documentation links for non-English locales
+        in the HTML Manager application. Patch provided by Eiji Takahashi.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51229">51229</a>: Fix bugs in the Servlet 3.0 asynchronous examples.
+        Patch provided by Eiji Takahashi. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51251">51251</a>: Add web application version support to the Ant tasks.
+        Based on a patch provided by Eiji Takahashi. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51294">51294</a>: Clarify behaviour of unpackWAR attribute of
+        StandardContext components. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.15 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.15_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=46451">46451</a>: Configure svn:bugtraq properties for Tomcat trunk.
+        Based on a patch provided by Marc Guillemot. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51309">51309</a>: Correct logic in catalina.sh stop when using a PID
+        file to ensure the correct message is shown. Patch provided by Caio
+        Cezar. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.14 (markt)"><!--()--></a><a name="Tomcat_7.0.14_(markt)"><strong>Tomcat 7.0.14 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-05-12</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.14 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.14_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Stylistic improvements to MIME type sync script.
+        Based on a patch provided by Felix Schumacher. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the SSLValve provides the SSL key size as an Integer rather
+        than a String. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that the RemoteIpValve works correctly with Servlet 3.0
+        asynchronous requests. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Use safe equality test when determining event type in the
+        MapperListener. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Use correct class loader when loading Servlet classes in
+        StandardWrapper. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Provide additional configuration options for the RemoteIpValve and
+        RemoteIpFilter to allow greater control over the values returned by
+        ServletRequest#getServerPort() and ServletRequest#getLocalPort() when
+        Tomcat is behind a reverse proxy. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure session cookie paths end in <code>/</code> so that session
+        cookies created for a context with a path of <code>/foo</code> do not
+        get returned with requests mapped to a context with a path of
+        <code>/foobar</code>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.14 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.14_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51177">51177</a>: Ensure Tomcat's MapElResolver always returns
+        <code>Object.class</code> for <code>getType()</code> as required by the
+        EL specification. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.13 (markt)"><!--()--></a><a name="Tomcat_7.0.13_(markt)"><strong>Tomcat 7.0.13 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.13 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.13_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct mix-up in Realm Javadoc. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix display of response headers in AccessLogValve. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Implement display of multiple request headers in AccessLogValve:
+        print not just the value of the first header, but of the all of them,
+        separated by commas. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50306">50306</a>: New StuckThreadDetectionValve to detect requests that
+        take a long time to process, which might indicate that their processing
+        threads are stuck. Based on a patch provided by TomLu. (slaurent)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51038">51038</a>: Ensure that asynchronous requests are included in
+        access logs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51042">51042</a>: Don't trigger session creation listeners when a
+        session ID is changed as part of the authentication process. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51050">51050</a>: Add additional common but non-standard file extension
+        to MIME type mappings for MPEG 4 files. Based on a patch by C&eacute;drik Lime.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add some additional common JARs that do not contain TLDs or web
+        fragments to the list of JARs to skip when scanning for TLDs and web
+        fragments. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        While scanning JARs for TLDs and fragments, avoid using JarFile and use
+        JarInputStream as in most circumstances where JARs are scanned, JarFile
+        will create a temporary copy of the JAR rather than using the resource
+        directly. This change significantly improves startup performance for
+        applications with lots of JARs to be scanned. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure response is committed when <code>AsyncContext#complete()</code>
+        is called. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a container event that is fired when a session's ID is changed,
+        e.g. on authentication. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51099">51099</a>: Correctly implement non-default login configurations
+        (configured via the loginConfigName attribute) for the SPNEGO
+        authenticator. (fhanik/markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51119">51119</a>: Add JAAS authentication support to the
+        JMXRemoteLifecycleListener. Patch provided by Neil Laurance. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51136">51136</a>: Provide methods that enable the name of a Context on
+        Context creation when using Tomcat in an embedded scenario. Based on a
+        patch provided by David Calavera. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51137">51137</a>: Add additional Microsoft Office MIME type mappings.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Partial sync of MIME type mapping with mime.types from the Apache web
+        server. About 600 MIME types added, some changed. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make access logging more robust when logging requests that generate 400
+        responses since the request object is unlikely to be fully/correctly
+        populated in that case. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.13 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.13_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50957">50957</a>: Fix regression in HTTP BIO connector that triggered
+        errors when processing pipe-lined requests. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50158">50158</a>: Ensure the asynchronous requests never timeout if the
+        timeout is set to zero or less. Based on a patch provided by Chris.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51073">51073</a>: Throw an exception and do not start the APR connector
+        if it is configured for SSL and an invalid value is provided for
+        SSLProtocol. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Align all the connector implementations with the documented default
+        setting for processorCache of 200. This changes the default from -1
+        (unlimited) for the AJP-BIO, AJP-APR and HTTP-APR connectors. Additional
+        information was also added to the documentation on how to select an
+        appropriate value. 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Take account of time spent waiting for a processing thread when
+        calculating connection and keep-alive timeouts for the HTTP BIO
+        connector. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51095">51095</a>: Don't trigger a NullPointerException when the SSL
+        handshake fails with the HTTP-APR connector. Patch provided by Mike
+        Glazer. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve handling in AJP connectors of the case where too large a AJP
+        packet is received. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Restore the automatic disabling of HTTP keep-alive with the BIO
+        connector once 75% of the processing threads are in use and make the
+        threshold configurable. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make pollerSize and maxConnections synonyms for the APR connectors since
+        they perform the same function. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Use maxThreads rather than 10000 as the default maxConnections for the
+        BIO connectors. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.13 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.13_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=47371">47371</a>: Correctly coerce the empty string to zero when used as
+        an operand in EL arithmetic. Patch provided by gbt. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Label JSP/tag file line and column numbers when reporting errors since
+        it may not be immediately obvious what the numbers represent. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49916">49916</a> that resulted in
+        JSPs being compiled twice rather than just once. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Log JARs that are scanned for TLDs where no TLD is found so that users
+        can easily identify JARs that can be added to the list of JARs to skip.
         (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Improve class loading documentation and logging documentation.
-        (kkolinko)
+        Use a single TLD location cache for a web application rather than one
+        per JSP compilation to speed up JSP compilation. (markt)
       </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51124">51124</a>: Refactor BodyContentImpl to assist in determining the
+        root cause of this bug. Based on a patch by Ramiro. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.13 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.13_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50950">50950</a>: Correct possible NotSerializableException for an
+        authenticated session when running with a security manager. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.13 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.13_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
         Configure Security Manager How-To to include a copy of the actual
         conf/catalina.policy file when the documentation is built, rather
         than maintaining a copy of its content. (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51147">51147</a>: Fix deployment via HTML Manager that was broken by
-        addition of CRSF protection. Patch provided by Alexis Hassler. (markt)
+        Fix broken stylesheet URL in XML based manager status output. (rjung)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51156">51156</a>: Ensure session expiration option is available in
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51156">51156</a>: Ensure session expiration option is available in
         Manager application was running web applications that were defined in
         server.xml. (markt)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct the log4j configuration settings when defining conversion
-        patterns in the documentation web application. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Update Maven repository information in the documentation to reflect
-        current usage. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51346">51346</a>: Update the documentation web application to make clear
-        the circumstances in which the RequestDumperValve will consume the
-        request's InputStream. Based on a patch by pid. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51443">51443</a>: Document the notifySessionListenersOnReplication
-        attribute for the DeltaManager. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51516">51516</a>: Correct documentation web application to show correct
-        system property name for changing the name of the SSO session cookie.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update documentation to be even more explicit about the implications
-        of setting the <code>path</code> attribute on a <code>Context</code>
-        element in <code>server.xml</code>. (markt/kkolinko)
-      </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.33 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.33_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.13 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.13_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
         Clarify error messages in *.sh files to mention that if a script is
         not found it might be because execute permission is needed. (kkolinko)
       </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33262">33262</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40510">40510</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50949">50949</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51135">51135</a>:
-        Various improvements to the Windows installer to be able to install
-        several copies of Tomcat 6 side by side. Allow to configure service
-        name, connector and shutdown ports. Allow to choose whether to install
-        Start menu shortcuts and Apache Tomcat monitor application for all
-        users or for the current one only. Improve auto-detection of JAVA_HOME
-        for 64-bit Windows platforms: autoselect 32-bit JRE if it exists and
-        64-bit one is not available. Improve server.xml file handling.
-        Fix uninstallation icon. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50854">50854</a>: Add additional entries to the default catalina.policy
-        file to support running the manager web application from CATALINA_HOME
-        or CATALINA_BASE. (markt) 
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Update default download sources to use the central Apache Maven 2
-        repository as some libraries have been removed from the central Apache
-        Maven 1 repository. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51155">51155</a>: Add comments to @deprecated tags that have none. Patch
-        provided by sebb. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=51309">51309</a>: Correct logic in catalina.sh stop when using a PID
-        file to ensure the correct message is shown. Patch provided by Caio
-        Cezar. (markt)
-      </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update Apache Commons Pool to 1.5.6. (kkolinko)
+        Update Apache Commons Pool to 1.5.6. (markt)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update Apache Commons Daemon to 1.0.7. (kkolinko)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51135">51135</a>: Fix auto-detection of JAVA_HOME for 64-bit Windows
+        platforms that only have a 32-bit JVM installed. (markt) 
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        At build time use two alternative download locations for components
-        downloaded from apache.org. (kkolinko)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51154">51154</a>: Remove duplicate @deprecated tags in ServletContext
+        Javadoc. Patch provided by sebb. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=51155">51155</a>: Add comments to @deprecated tags that have none. Patch
+        provided by sebb. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.32 (jfclere)"><!--()--></a><a name="Tomcat_6.0.32_(jfclere)"><strong>Tomcat 6.0.32 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-02-03</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.32 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.32_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.12 (markt)"><!--()--></a><a name="Tomcat_7.0.12_(markt)"><strong>Tomcat 7.0.12 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-04-06</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.12 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.12_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48822">48822</a>: Include context name in reload and stop log statements.
-        Based on the patch provided by Marc Guillemot. (kkolinko)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Automatically correct invalid paths when specified for Context elements
+        inside server.xml and log a warning that the configuration has been
+        corrected. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50673">50673</a>: Improve Catalina shutdown when running as a service.
+        Don't unpack WAR files if they are not located in the Host's
+        appBase. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't log to standard out in SSLValve. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Handle the case where a web crawler provides an invalid session ID in
+        the CrawlerSessionManagerValve. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update pattern used in CrawlerSessionManagerValve to that used by the
+        ASF infrastructure team. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove unnecessary whitespace from MIME mapping entries in global
+        web.xml file. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When using parallel deployment, correctly handle the scenario when the
+        client sends multiple JSESSIONID cookies. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=12428">12428</a>: Add support (disabled by default) for preemptive
+        authentication. This can be configured per context. Based on a patch
+        suggested by Werner Donn. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make the CSRF nonce cache serializable so that it can be replicated
+        across a cluster and/or persisted across Tomcat restarts. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Resolve some refactoring TODOs in the implementation of the new Context
+        attribute "swallowAbortedUploads". (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Include the seed time when calculating the time taken to create
+        SecureRandom instances for session ID generation, report excessive times
+        (greater than 100ms) at INFO level and provide a value for the message
+        key so a meaningful message appears in the logs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't register Contexts that fail to start with the Mapper. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48685">48685</a>: Add initial support for SPNEGO/Kerberos authentication
+        also referred to as integrated Windows authentication. This includes
+        user authentication, authorisation via the directory using the
+        user's delegated credentials and exposing the user's delegated
+        credentials via a request attribute so applications can make use of them
+        to impersonate the current user when accessing third-party systems that
+        use a compatible authentication mechanism. Based on a patch provided by
+        Michael Osipov. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        HTTP range requests cannot be reliably served when a Writer is in use so
+        prevent the DefaultServlet from attempting to do so. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Protect the DefaultServlet from Valves, Filters and Wrappers that write
+        content to the response. Prevent partial responses to partial GET
+        requests in this case since the range cannot be reliably determined.
+        Also prevent the DefaultServlet from setting a content length header
+        since this too cannot be reliably determined. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50929">50929</a>: When wrapping an exception, include the root cause.
+        Patch provided by sebb. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50991">50991</a>: Fix regression in fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=25060">25060</a> that called
+        close on a JNDI resource while it was still available to the
+        application. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Provide a configuration option that lets the close method to be used for
+        a JNDI Resource to be defined by the user. This change also disables
+        using the close method unless one is explicitly defined for the
+        resource and limits it to singleton resources. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly track changes to context.xml files and trigger redeployment
+        when copyXML is set to false. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50997">50997</a>: Relax the requirement that directories must have a
+        name ending in <code>.jar</code> to be treated as an expanded JAR file
+        by the default JarScanner. Based on patch by Rodion Zhitomirsky. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't append the jvmRoute to a session ID if the jvmRoute is a zero
+        length string. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't register non-singleton DataSource resources with JMX. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        CVE-2011-1184: Provide additional configuration options for the DIGEST
+        authenticator. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Provide a workaround for Tomcat hanging during shutdown when running the
+        unit tests. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.12 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.12_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50887">50887</a>: Add support for configuring the JSSE provider used to
+        convert client certificates. Based on a patch by pknopp. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50903">50903</a>: When a connector is stopped, ensure that requests that
+        are currently in a keep-alive state and waiting for client data are not
+        processed. Requests where processing has started will continue to
+        completion. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50927">50927</a>: Improve error message when SSLCertificateFile is not
+        specified when using APR with SSL. Based on a patch provided by sebb.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50928">50928</a>: Don't ignore keyPass attribute for HTTP BIO and
+        NIO connectors. Based on a patch provided by sebb. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.12 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.12_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Securely seed the SecureRandom instance used for UUID generation and
+        report excessive creation time (greater than 100ms) at INFO level.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.12 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.12_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50924">50924</a>: Clean-up HTTP connector comparison table. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Slightly expanded the documentation of the Host element to clarify the
+        relationship between host name and DNS name. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50925">50925</a>: Update SSL how-to to take account of
+        <code>keyPass</code> connector attribute. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve Tomcat Logging documentation. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Align the authenticator documentation and MBean descriptors with the
+        implementation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Prevent the custom error pages for the Manager and Host Manager
+        applications from being accessed directly. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50984">50984</a>: When using the Manager application ensure that
+        undeployment fails if a file cannot be deleted. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.12 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.12_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Eclipse JDT complier to 3.6.2. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update WSDL4J library to 1.6.2 (used by JSR 109 support in the extras
+        package). (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update optional CheckStyle library to 5.3. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50911">50911</a>: Reduce noise generated during the build of the Windows
+        installer so warnings are more obvious. Patch provided by sebb. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Further work to reduce compiler and validation warnings across the code
+        base. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.11 (markt)"><!--()--></a><a name="Tomcat_7.0.11_(markt)"><strong>Tomcat 7.0.11 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-03-11</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.11 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.11_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        CVE-2011-1088: Completed fix. Don't ignore @ServletSecurity
+        annotations. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=25060">25060</a>: Close Apache Commons DBCP datasources when the
+        associated JNDI naming context is stopped (e.g. for a non-global
+        DataSource resource on web application reload) to close remaining
+        database connections immediately rather than waiting for garbage 
+        collection. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=26701">26701</a>: Provide a mechanism for users to register their own
+        <code>URLStreamHandlerFactory</code> objects. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50855">50855</a>: Fix NPE on HttpServletRequest.logout() when debug
+        logging is enabled. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        New context attribute "swallowAbortedUploads" allows
+        to make request data swallowing configurable for requests
+        that are too large. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50854">50854</a>: Add additional permissions required by the Manager
+        application when running under a security Manager and support a shared
+        Manager installation when $CATALINA_HOME != CATALINA_BASE. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50893">50893</a>: Add additional information to the download README for
+        the extras components. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Calling <code>stop()</code> and then <code>destroy()</code> on a
+        connector incorrectly triggered an exception. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.11 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.11_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48208">48208</a>: Allow the configuration of a custom trust manager for
+        use in CLIENT-CERT authentication. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix issues that prevented asynchronous servlets from working when used
+        with the HTTP APR connector on platforms that support TCP_DEFER_ACCEPT.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.11 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.11_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct possible threading issue in JSP compilation when development
+        mode is used. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50895">50895</a>: Don't initialize classes created during the
+        compilation stage. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.10 (markt)"><!--()--></a><a name="Tomcat_7.0.10_(markt)"><strong>Tomcat 7.0.10 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-03-08</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.10 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.10_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        CVE-2011-1088: Partial fix. Don't ignore @ServletSecurity
+        annotations. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=27988">27988</a>: Improve reporting of missing files. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=28852">28852</a>: Add URL encoding where missing to parameters in URLs
+        presented by Ant tasks to the Manager application. Based on a patch by
+        Stephane Bailliez. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve handling of SSL renegotiation by failing earlier when the
+        request body contains more bytes than maxSavePostSize. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve shut down speed by not renewing threads during shut down when
+        the <code>ThreadLocalLeakPreventionListener</code> is enabled. (markt)  
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.10 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.10_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49284">49284</a>: Add SSL re-negotiation support to the HTTP NIO
+        connector and extend test cases to cover CLIENT-CERT authentication.
+        (fhanik/markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.9 (markt)"><!--()--></a><a name="Tomcat_7.0.9_(markt)"><strong>Tomcat 7.0.9 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.9 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.9_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=19444">19444</a>: Add an option to the JNDI realm to allow role searches
+        to be performed by the authenticated user. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=21669">21669</a>: Add the ability to specify the roleBase for the JNDI
+        Realm as relative to the users DN. Based on a patch by Art W. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=22405">22405</a>: Add a new Lifecycle listener,
+        <code>org.apache.catalina.security.SecurityListener</code> that prevents
+        Tomcat from starting insecurely. It requires that Tomcat is not started
+        as root and that a umask at least as restrictive as 0007 is used. This
+        new listener is not enabled by default.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48863">48863</a>: Better logging when specifying an invalid directory
+        for a class loader. Based on a patch by Ralf Hauser. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48870">48870</a>: Refactor to remove use of parallel arrays. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Enhance the RemoteIpFilter and RemoteIpValve so that the modified remote
+        address, remote host, protocol and server port may be used in an access
+        log if desired. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Restore access to Environments, Resources and ResourceLinks via JMX
+        which was lost in early 7.0.x re-factoring. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove ServerLifecycleListener. This was already removed from server.xml
+        and with the Lifecycle re-factoring is no longer required. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add additional checks to ensure that sub-classes of
+        <code>org.apache.catalina.util.LifecycleBase</code> correctly implement
+        the expected state transitions. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50189">50189</a>: Once the application has finished writing to the
+        response, prevent further reads from the request since this causes
+        various problems in the connectors which do not expect this. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50700">50700</a>: Ensure that the override attribute of context
+        parameters is correctly followed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50721">50721</a>: Correctly handle URL decoding where the URL ends in
+        %nn. Patch provided by Christof Marti. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50737">50737</a>: Add additional information when an invalid WAR file is
+        detected. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50748">50748</a>: Allow the content length header to be set up to the
+        point the response is committed when a writer is being used. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50751">50751</a>: When authenticating with the JNDI Realm, only attempt
+        to read user attributes from the directory if attributes are required.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50752">50752</a>: Fix typo in debug message in deprecated Embedded
+        class. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50789">50789</a>: Provide an option to enable ServletRequestListeners
+        for forwards as required by some CDI frameworks. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50793">50793</a>: When processing Servlet 3.0 async requests, ensure
+        that the requestInitialized and requestDestroyed events are only fired
+        once per request at the correct times. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50802">50802</a>: Ensure that
+        <code>ServletContext.getResourcePaths()</code> includes static resources
+        packaged in JAR files in its output. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Web crawlers can trigger the creation of many thousands of sessions as
+        they crawl a site which may result in significant memory consumption.
+        The new Crawler Session Manager Valve ensures that crawlers are
+        associated with a single session - just like normal users - regardless
+        of whether or not they provide a session token with their requests.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't attempt to start NamingResources for Contexts multiple times.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50826">50826</a>: Avoid <code>IllegalArgumentException</code> if an
+        embedded Tomcat instance that includes at least one Context is destroyed
+        without ever being started. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure a web application is taken out of service if the web.xml file is
+        not valid. (kkolinko/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure Servlet 2.2 jspFile elements are correctly converted to use a
+        leading '/' if missing. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50836">50836</a>: Better documentation of the meaning of
+        <code>Lifecycle.isAvailable()</code> and correct a couple of cases where
+        this could incorrectly return true. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.9 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.9_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50780">50780</a>: Fix memory leak in APR implementation of AJP
+        connector introduced by the refactoring for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49884">49884</a>. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If server configuration errors and/or faulty applications caused the
+        ulimit for open files to be reached, the acceptor threads for all
+        connectors could enter a tight loop. This loop consumed CPU and also
+        logged an error message for every iteration of the loop which lead to
+        large log files being generated. The acceptors have been enhanced to
+        better handle this situation. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.9 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.9_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50720">50720</a>: Ensure that the use of non-ISO-8859-1 character sets
+        for web.xml does not trigger an error when Jasper parses the web.xml
+        file. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50726">50726</a>: Ensure that the use of the genStringAsCharArray does
+        not result in String constants that are too long for valid Java code.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50790">50790</a>: Improve method resolution in EL expressions. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.9 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.9_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50771">50771</a>: Ensure HttpServletRequest#getAuthType() returns the 
+        name of the authentication scheme if request has already been 
+        authenticated. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.9 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.9_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50713">50713</a>: Remove roles command from the Manager application.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.9 (markt)/Tribes"><!--()--></a><a name="Tomcat_7.0.9_(markt)/Tribes"><strong>Tribes</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50667">50667</a> (<a href="http://svn.apache.org/viewvc?view=rev&amp;rev=1068549">r1068549</a>): Allow RPC callers to get
+        confirmation when sending a reply. (fhanik)
+      </td></tr>  
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.9 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.9_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50743">50743</a>: Cache CheckStyle results between builds to speed up
+        validation. Patch provided by Oliver. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.8 (markt)"><!--()--></a><a name="Tomcat_7.0.8_(markt)"><strong>Tomcat 7.0.8 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-02-05</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.8 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.8_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix NPE in CoyoteAdapter when postParseRequest() call fails. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+       <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50709">50709</a>: Make <code>ApplicationContextFacade</code> non-final to
+       enable extension. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When running under a security manager, user requests may fail with a
+        security exception. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.8 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.8_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Reduce level of log message for invalid URL parameters from WARNING to
+        INFO. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix hanging Servlet 3 asynchronous requests when using the APR based AJP
+        connector. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.8 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.8_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Align server.xml installed by the Windows installer with the one
+        bundled in zip/tar.gz files. The differences are LockOutRealm being
+        used and AccessLogValve being enabled by default. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.7 (markt)"><!--()--></a><a name="Tomcat_7.0.7_(markt)"><strong>Tomcat 7.0.7 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.7 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.7_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=18462">18462</a>: Don't merge <code>stdout</code> and
+        <code>stderr</code> internally so users retain the option to treat them
+        separately. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=18797">18797</a>: Provide protection against <code>null</code> or zero
+        length names being provided for users, roles and groups in the
+        <code>MemoryRealm</code> and <code>UserDatabaseRealm</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50205">50205</a> to trigger an error earlier if invalid
+        configuration is used. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Provide additional control over component class loaders, primarily for
+        use when embedding. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix NPE in RemoteAddrFilter, RemoteHostFilter. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49711">49711</a>: HttpServletRequest#getParts will work in a filter
+        or servlet without an @MultipartConfig annotation or
+        MultipartConfigElement if the new "allowCasualMultipartParsing"
+        context attribute is set to "true". (schultz)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49978">49978</a>: Correct another instance where deployment incorrectly
+        failed if a directory in the work area already existed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50582">50582</a>: Refactor access logging so chunked encoding is not
+        forced for all requests if bytes sent is logged. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50597">50597</a>: Don't instantiate a new instance of a Filter if
+        an instance was provided via the
+        <code>ServletContext.addFilter(String, Filter)</code> method. Patch
+        provided by Ismael Juma. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50598">50598</a>: Correct URL for Manager text interface. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50620">50620</a>: Stop exceptions that occur during
+        <code>Session.endAccess()</code> from preventing the normal completion
+        of <code>Request.recycle()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50629">50629</a>: Make <code>StandardContext.bindThread()</code> and
+        <code>StandardContext.unbindThread()</code> protected to allow use by
+        sub-classes. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Use getName() instead of logName() in error messages in StandardContext.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50642">50642</a>: Move the <code>sun.net.www.http.HttpClient</code>
+        keep-alive thread memory leak protection from the
+        JreMemoryLeakPreventionListener to the WebappClassLoader since the
+        thread that triggers the memory leak is created on demand. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50673">50673</a>: Improve Catalina shutdown when running as a service.
         Do not call System.exit(). (kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50689">50689</a>: Provide 100 Continue responses at appropriate points
-        during FORM authentication if client indicates that they are expected.
-        (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50683">50683</a>: Ensure annotations are scanned when
+        <code>unpackWARs</code> is set to <code>false</code> in the Host
+        where a web application is deployed. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Improve HTTP specification compliance in support of
@@ -1661,299 +11506,1232 @@
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.32 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.32_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.7 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.7_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49795">49795</a>: Backport AprEndpoint shutdown improvements, to make
-        it more robust. (mturk/kkolinko)
+        Prevent possible thread exhaustion if a Comet timeout event takes a
+        while to complete. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50325">50325</a>: When the JVM indicates support for RFC 5746, disable
+        Prevent multiple Comet END events if the CometServlet calls
+        <code>event.close()</code> during an END event. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50325">50325</a>: When the JVM indicates support for RFC 5746, disable
         Tomcat's <code>allowUnsafeLegacyRenegotiation</code> configuration
         attribute and use the JVM configuration to control renegotiation.
         (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50631">50631</a>: InternalNioInputBuffer should honor
-        <code>maxHttpHeadSize</code>. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50405">50405</a>: Fix occasional NPE when using NIO connector and
+        Comet. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50651">50651</a>: Fix NPE in InternalNioOutputBuffer.recycle().
-        (kkolinko)
+        Ensure correct recycling of NIO input filters when processing Comet
+        events. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50627">50627</a>: Correct interaction of NIO socket and Poller when
+        processing Comet events. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct interaction of APR socket and Poller when processing Comet
+        events. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50631">50631</a>: InternalNioInputBuffer should honor
+        <code>maxHttpHeadSize</code>. (kkolinko)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.32 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.32_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.7 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.7_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve special case handling of
+        <code>javax.servlet.jsp.el.ScopedAttributeELResolver</code> in
+        <code>javax.el.CompositeELResolver</code> to handle sub-classes. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=15688">15688</a>: Use fully-qualified class names in generated jsp files
+        to avoid naming conflicts with user imports. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=46819">46819</a>: Remove redundant object instantiations in
+        JspRuntimeLibrary. Patch provided by Anthony Whitford. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve error message when EL identifiers are not valid Java identifiers
+        and use i18n for the error message. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50680">50680</a>: Prevent an NPE when using tag files from an exploded
+        JAR file, e.g. from within an IDE. Patch provided by Larry Isaacs.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.7 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.7_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50591">50591</a>: Fix NPE in ReplicationValve. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Internationalise the log messages for the FarmWarDeployer. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50600">50600</a>: Prevent a <code>ConcurrentModificationException</code>
+        when removing a WAR file via the FarmWarDeployer. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Be consistent with locks on sessionCreationTiming,
         sessionExpirationTiming in DeltaManager.resetStatistics(). (kkolinko)
       </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50648">50648</a>: Correctly set the interrupt status if a thread using
+        <code>RpcChannel</code> is interrupted waiting for a message reply.
+        Based on a patch by Olivier Costet. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50646">50646</a>: Ensure larger Tribes messages are fully read. Patch
+        provided by Olivier Costet. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50679">50679</a>: Update the FarmWarDeployer to support parallel
+        deployment. (markt)
+      </td></tr>
     </table>
   </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.31 (jfclere)"><!--()--></a><a name="Tomcat_6.0.31_(jfclere)"><strong>Tomcat 6.0.31 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.31 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.31_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.7 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.7_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49543">49543</a>: Allow Tomcat to use shared data sources with per
-        application credentials. (fhanik)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=22278">22278</a>: Add a commented out <code>RemoteAddrValve</code> that
+        limits access to the Manager and Host Manager applications to localhost.
+        Based on a patch by Yann C&eacute;bron. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a handful of Javadoc warnings. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50205">50205</a>: Add the deployIgnorePaths attribute to the Host
-        element. Based on a patch by Jim Riggs. (markt/kkolinko)
+        Provide additional detail about how web application version order is
+        determined when using parallel deployment. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50413">50413</a>: Additional fix that ensures the error page is served
-        regardless of any Range headers in the original request. (kkolinko)
+        Correct the documentation for the recoveryCount count attribute of the
+        the default cluster membership. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50550">50550</a>: When a new directory is created (e.g. via WebDAV)
-        ensure that a subsequent request for that directory does not result in a
-        404 response. (markt/kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50441">50441</a>: Clarify when it is valid to set the docBase attribute
+        in a Context element. (markt)
       </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50526">50526</a>: Provide additional documentation on configuring
+        JavaMail resources. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50599">50599</a>: Use correct names of roles required to access the 
+        Manager application. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.7 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.7_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Provide session creation and destruction rate metrics in the session
-        managers. (markt) 
+        Extend the Checkstyle tests to check for license headers. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50606">50606</a>: Improve CGIServlet: Provide support for specifying
+        Modify the build script so a release build always rebuilds the
+        dependencies to ensure that the correct Tomcat version appears in the
+        manifest. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Code clean-up to remove unused code and reduce IDE warnings. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50601">50601</a>: Code clean-up. Patch provided by sebb. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50606">50606</a>: Improve CGIServlet: Provide support for specifying
         empty value for the <code>executable</code> init-param. Provide support
         for explicit additional arguments for the executable. Those were
-        broken when implementing fix for bug <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49657">49657</a>. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50620">50620</a>: Stop exceptions that occur during
-        <code>Session.endAccess()</code> from preventing the normal completion
-        of <code>Request.recycle()</code>. (markt)
+        broken when implementing fix for bug <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49657">49657</a>. (kkolinko)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.31 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.31_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.6 (markt)"><!--()--></a><a name="Tomcat_7.0.6_(markt)"><strong>Tomcat 7.0.6 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-01-14</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.6 (markt)/General"><!--()--></a><a name="Tomcat_7.0.6_(markt)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove a huge memory leak in the NIO connector introduced by the fix
-        for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49884">49884</a>. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.31 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.31_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50600">50600</a>: Prevent a <code>ConcurrentModificationException</code>
-        when removing a WAR file via the FarmWarDeployer. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.30 (jfclere)"><!--()--></a><a name="Tomcat_6.0.30_(jfclere)"><strong>Tomcat 6.0.30 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2011-01-13</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.30 (jfclere)/General"><!--()--></a><a name="Tomcat_6.0.30_(jfclere)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Filter input of manager app servlets. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43960">43960</a>: Expose available property of StandardWrapper via JMX.
-        (markt)
-      </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update to Commons Daemon 1.0.5. (mturk)
+        Update to Apache Commons Daemon 1.0.5. (mturk)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Switch to using the Eclipse compiler JAR directly rather than creating
-        it from the larger JDT download. (markt)
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.6 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.6_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=8705">8705</a>: <code>org.apache.catalina.SessionListener</code> now
+        extends <code>java.util.EventListener</code>. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Allow the off-line building of the extras package. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=10526">10526</a>: Add an option to the <code>Authenticator</code>s to
+        force the creation of a session on authentication which may offer some
+        performance benefits. (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update to Commons Pool 1.5.5. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=10972">10972</a>: Improve error message if the className attribute is
+        missing on an element in server.xml where it is required. (markt)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49728">49728</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50084">50084</a>: Improve PID file handling when
-        another process is managing the PID file and Tomcat does not have write
-        access. (markt)
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48692">48692</a>: Provide option to parse
+        <code>application/x-www-form-urlencoded</code> PUT requests. (schultz)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49909">49909</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50201">50201</a>: Provide a mechanism to log requests
-        rejected before they reach the AccessLogValve to appear in the access
-        log. (markt/kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.30 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.30_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38113">38113</a>: Provide a system property that enables a strict
-        interpretation of the specification for <code>getQueryString()</code>
-        when an empty query string is provided by the user agent. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Return a copy of the current URLs for the <code>WebappClassLoader</code>
-        to prevent modification. This facilitated, although it wasn't the root
-        cause, CVE-2010-1622. (markt)
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48822">48822</a>: Include context name in case of error while stopping
+        or starting a context during its reload. Patch provided by Marc 
+        Guillemot. (slaurent)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48837">48837</a>: Extend thread local memory leak detection to include
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48837">48837</a>: Extend thread local memory leak detection to include
         classes loaded by subordinate class loaders to the web
-        application's class loader such as the Jasper class loader.
-        Patch provided by Sylvain Laurent. (kkolinko)
+        application's class loader such as the Jasper class loader. Based
+        on a patch by Sylvain Laurent. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48973">48973</a>: Avoid creating a SESSIONS.ser file when stopping an 
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48973">48973</a>: Avoid creating a SESSIONS.ser file when stopping an 
         application if there's no session. Patch provided by Marc Guillemot.
         (slaurent)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49030">49030</a>: Failure during start of one connector should not leave
-        some connectors started and some ignored. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49000">49000</a>: No longer accept specification invalid name only
+        cookies by default. This behaviour can be restored using a system
+        property. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49159">49159</a>: Improve memory leak protection by renewing threads of
+        the pool when a web application is stopped. (slaurent)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49195">49195</a>: Don't report an error when shutting down a Windows
-        service for a Tomcat instance that has a disabled shutdown port. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49209">49209</a>: Fix problem with JDBC driver memory leak prevention
-        when running under a security manager. Patch provided by Sylvain
-        Laurent. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49613">49613</a>: Improve performance when using SSL for applications
-        that make multiple class to <code>Request.getAttributeNames()</code>.
-        Patch provided by Sampo Savolainen. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49657">49657</a>: Handle CGI executables with spaces in the path.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49372">49372</a>: Re-fix after connector re-factoring. If connector
+        initialisation fails (e.g. if a port is already in use) do not trigger
+        an <code>LifecycleException</code> for an invalid state transition.
         (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49667">49667</a>: Ensure that using the JDBC driver memory leak
-        prevention code does not cause a one of the memory leaks it is meant to
-        avoid. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49543">49543</a>: Allow Tomcat to use shared data sources with per
+        application credentials. (fhanik)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49749">49749</a>: Respect <code>httpOnly</code> setting of Context
-        when creating SSO cookie. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Provide better web application state information via JMX. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49811">49811</a>: Add an option to disable URL rewriting on a per
-        Context basis. The option name is <code>disableURLRewriting</code>.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49856">49856</a>: Expose the executor name for the connector via JMX.
-        (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49650">49650</a>: Remove unnecessary entries package.access property
+        defined in catalina.properties. Patch provided by Owen Farrell. (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49915">49915</a>: Make error more obvious, particularly when accessed
-        via JConsole, if StandardServer.storeConfig() is called when there is
-        no StoreConfig implementation present. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49965">49965</a>: Use correct i18n resources for StringManager in
-        JAASRealm. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49987">49987</a>: Fix potential data race in the population of the
-        Servlet Context initialisation parameters. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Code clean-up. Avoid some casts in StandardContext. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add security policy and token poller protection to the JRE memory leak
-        protection provided in Tomcat 6. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50026">50026</a>: Add support for mapping the default servlet to URLs
-        other than /. (timw)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50128">50128</a>: Improve exception handling in PersistentManagerBase
-        when running with a security manager. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50131">50131</a>: Avoid possible NPE in debug output in PersistentValve.
-        Patch provided by sebb. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50138">50138</a>: Fix threading issues in
-        <code>org.apache.catalina.security.SecurityUtil</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add a new filter, <code>org.apache.catalina.filters.CsrfPreventionFilter</code>,
-        to provide generic cross-site request forgery (CSRF)
-        protection for web applications. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make sure Contexts defined in server.xml pick up any <code>configClass</code>
-        setting from the parent Host. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50222">50222</a>: Modify memory leak prevention code so it pins the
-        system class loader in memory rather than than the common class loader,
-        which is better for embedded systems. (schultz) 
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Make memory leak prevention code that clears ThreadLocal instances more
-        robust against objects with <code>toString()</code> methods that throw
-        exceptions. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50282">50282</a>: Load <code>javax.security.auth.login.Configuration</code>
-        with <code>JreMemoryLeakPreventionListener</code> to avoid memory leak
-        when stopping a webapp that would use JAAS.
-        (slaurent)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50413">50413</a>: Ensure 304s are not returned when using static files
-        as error pages. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50453">50453</a>: Correctly handle multiple <code>X-Forwarded-For</code>
-        headers in the RemoteIpValve. Patch provided by Jim Riggs. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50459">50459</a>: Fix thread/classloader binding issues in
-        StandardContext. (slaurent) 
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50106">50106</a>: Correct several MBean descriptors. Patch provided by
+        Eiji Takahashi. (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50527">50527</a>: Improve an error message shown by HttpServlet. (markt)
+        Further performance improvements to session ID generation. Remove legacy
+        configuration options that are no longer required. Provide additional
+        options to control the <code>SecureRandom</code> instances used to
+        generate session IDs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50201">50201</a>: Update the access log reference in
+        <code>StandardEngine</code> when the ROOT web application is redeployed,
+        started, stopped or defaultHost is changed. (markt/kkolinko)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50556">50556</a>: Improve JreMemoryLeakPreventionListener to prevent
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50282">50282</a>: Load
+        <code>javax.security.auth.login.Configuration</code> with
+        <code>JreMemoryLeakPreventionListener</code> to avoid memory leak when
+        stopping a web application that would use JAAS. (slaurent)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50351">50351</a>: Fix the regression that broke BeanFactory resources
+        caused by the previous fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50159">50159</a>. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50352">50352</a>: Ensure that <code>AsyncListener.onComplete()</code> is
+        fired when <code>AsyncContext.complete()</code> is called. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50358">50358</a>: Set the correct LifecycleState when stopping instances
+        of the deprecated Embedded class. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Further Lifecycle refactoring for Connectors and associated components.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct handling of versioned web applications in deployer. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct removal of <code>LifeCycleListener</code>s from
+        <code>Container</code>s via JMX. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't use <code>null</code>s to construct log messages. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Code clean-up. Replace use of inefficient constructors with more
+        efficient alternatives. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50411">50411</a>: Ensure sessions are removed from the
+        <code>Store</code> associated with a <code>PersistentManager</code>.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50413">50413</a>: Ensure 304 responses are not returned when using
+        static files as error pages. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50448">50448</a>: Fix possible <code>IllegalStateException</code>
+        caused by recent session management refactoring. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure aliases settings for a context are retained after a context is
+        reloaded. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Log a warning if context.xml files define values for properties  that do
+        not exist (e.g. if there is a typo in a property name). (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50453">50453</a>: Correctly handle multiple <code>X-Forwarded-For</code>
+        headers in the RemoteIpFilter and RemoteIpValve. Patch provided by Jim
+        Riggs. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50541">50541</a>: Add support for setting the size limit and time limit
+        for LDAP searches when using the JNDI Realm with <code>userSearch</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        All configuration options that use regular expression now require a
+        single regular expression (using <code>java.util.regex</code>) rather
+        than a list of comma-separated or semi-colon-separated expressions.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50496">50496</a>: Bytes sent in the access log are now counted after
+        compression, chunking etc rather than before. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50550">50550</a>: When a new directory is created (e.g. via WebDAV)
+        ensure that a subsequent request for that directory does not result in a
+        404 response. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50554">50554</a>: Code clean up. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50556">50556</a>: Improve JreMemoryLeakPreventionListener to prevent
         a potential class loader leak caused by a thread spawned when the class
         <code>com.sun.jndi.ldap.LdapPoolManager</code> is initialized and the 
         system property <code>com.sun.jndi.ldap.connect.pool.timeout</code> is 
         set to a value greater than 0. (slaurent)
       </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.6 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.6_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50642">50642</a>: Move the <code>sun.net.www.http.HttpClient</code>
-        keep-alive thread memory leak protection from the 
-        JreMemoryLeakPreventionListener to the WebappClassLoader since the
-        thread that triggers the memory leak is created on demand. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=47319">47319</a>: Return the client's IP address rather than null
+        for calls to <code>getRemoteHost()</code> when the APR connector is
+        used with <code>enableLookups="true"</code> but the IP address
+        is not resolveable. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50108">50108</a>: Add get/set methods for Connector property
+        minSpareThreads. Patch provided by Eiji Takahashi. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50360">50360</a>:  Provide an option to control when the socket
+        associated with a connector is bound. By default, the socket is bound on
+        <code>Connector.init()</code> and released on
+        <code>Connector.destroy()</code> as per the current behaviour but this
+        can be changed so that the socket is bound on
+        <code>Connector.start()</code> and released on
+        <code>Connector.stop()</code>. This fix also includes further Lifecycle
+        refactoring for Connectors and associated components. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove a huge memory leak in the NIO connector introduced by the fix
+        for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49884">49884</a>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50467">50467</a>: Protected against NPE triggered by a race condition
+        that causes the NIO poller to fail, preventing the processing of further
+        requests. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.30 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.30_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.6 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.6_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=13731">13731</a>: Make variables in <code>_jspService()</code> method
+        final where possible. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50408">50408</a>: Fix <code>NoSuchMethodException</code> when using
+        scoped variables with EL method invocation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50460">50460</a>: Avoid a memory leak caused by using a cached exception
+        instance in <code>JspDocumentParser</code> and
+        <code>ProxyDirContext</code>. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50500">50500</a>: Use correct coercions (as per the EL spec) for
+        arithmetic operations involving string values containing '.',
+        'e' or 'E'. Based on a patch by Brian Weisleder.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.6 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.6_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50185">50185</a>: Add additional trace level logging to Tribes to assist
+        with fault diagnosis. Based on a patch by Ariel. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't try and obtain session data from the cluster if the current
+        node is the only node in the cluster. Log requesting session data as
+        INFO rather than WARNING. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50503">50503</a>: When web application has a version, Engine level 
+        Clustering works correctly. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50547">50547</a>: Add time stamp for CHANGE_SESSION_ID message and 
+        SESSION_EXPIRED message. (kfujino)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.6 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.6_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47913">47913</a>: Return the IP address rather than null for
-        <code>getRemoteHost()</code> with the APR connector if the IP address
-        does not resolve. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=21157">21157</a>: Ensure cookies are written before the response is
+        committed in the Cookie example. Patch provided by Stefan Radzom. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50294">50294</a>: Add more information to documentation regarding format
+        of configuration files. Patch provided by Luke Meyer. (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Avoid a NPE for APR connector unlockAccept with default soTimeout.
-        (mturk)
+        Correctly validate provided context path so sessions for the ROOT web
+        application can be viewed through the HTML Manager. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve documentation of database connection factory. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50488">50488</a>: Update classpath required when using jsvc and add a
+        note regarding server VMs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Further filtering of Manager display output. (kkolinko) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.6 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.6_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't configure Windows installer to use PID file since it is not
+        removed when the service stops which prevents the service from starting.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=14416">14416</a>: Make <code>TagLibraryInfo.getTag()</code> more robust
+        at handling <code>null</code>s. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50552">50552</a>: Avoid NPE that hides error message when using Ant
+        tasks. (schultz)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48545">48545</a>: Allow JSSE trust stores to be used without providing
-        a password. Based on a patch by smmwpf54. (kkolinko)
+        Provide two alternative locations for the libraries downloaded from
+        the ASF web site at build time. Use the main distribution site as
+        default and the archive one as fallback. (kkolinko)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.5 (markt)"><!--()--></a><a name="Tomcat_7.0.5_(markt)"><strong>Tomcat 7.0.5 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>beta, 2010-12-01</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.5 (markt)/General"><!--()--></a><a name="Tomcat_7.0.5_(markt)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update to Apache Commons Daemon 1.0.4. (mturk)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.5 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.5_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=3839">3839</a>: Provide a mechanism to gracefully handle the case where
+        users book-mark the form login page or otherwise misuse the FORM
+        authentication process. Based on a suggestion by Mark Morris. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49180">49180</a>: Add option to disable log rotation in 
+        juli FileHandler. Patch provided by Pid (pidster at apache). (funkman)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49991">49991</a>: Ensure servlet request listeners are fired for
+        the login and error pages during FORM authentication. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50107">50107</a>: When removing a Host via JMX, do not attempt to
+        destroy the host's pipeline twice. Patch provided by Eiji
+        Takahashi. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50138">50138</a>: Fix threading issues in
+        <code>org.apache.catalina.security.SecurityUtil</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50157">50157</a>: Ensure MapperListener is only added to a container
+        object once. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50159">50159</a>: Add a new attribute for <code>&lt;Resource&gt;</code>
+        elements, <code>singleton</code>, that controls whether or not a new
+        object is created every time a JNDI lookup is performed to obtain the
+        resource. The default value is <code>true</code>, which will return the
+        same instance of the resource in every JNDI lookup. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50168">50168</a>: Separate the <code>Lifecycle.DESTROY_EVENT</code> into
+        <code>Lifecycle.BEFORE_DESTROY_EVENT</code> and
+        <code>Lifecycle.AFTER_DESTROY_EVENT</code>. Use the additional state to
+        ensure that <code>Context</code> objects are only destroyed once.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50169">50169</a>: Ensure that when a Container is started that it
+        doesn't try and register with the mapper unless its parent has
+        already started. Patch provided by Eiji Takahashi. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48738">48738</a>: Add support for flushing gzipped output. Based on a
-        patch by Jiong Wang. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50222">50222</a>: Modify memory leak prevention code so it pins the
+        system class loader in memory rather than than the common class loader,
+        which is better for embedded systems. Patch provided by Christopher
+        Schultz. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Improve debug logging for MapperListener registration. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Expose names of LifecycleListeners and ContainerListeners for
+        StandardContext via JMX. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a new option, <code>resourceOnlyServlets</code>, to Context elements
+        that provides a mechanism for working around the issues caused by new
+        requirements for welcome file mapping introduced in Servlet 3.0. By
+        default, the existing Tomcat 6.0.x welcome file handling is used.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make Tomcat more tolerant of <code>null</code> when generating JMX names
+        for Valves. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make AccessLogValve attribute <code>enabled</code> changeable via JMX.
+        (pero)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct infinite loop if <code>ServletRequest.startAsync(ServletRequest,
+        ServletResponse)</code> was called. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50232">50232</a>: Remove dependency between StoreBase and
+        PersistentManager and associated code clean-up. Patch provided by
+        Tiago Batista. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50252">50252</a>: Prevent ClassCastException when using a
+        &lt;ResourceLink&gt;. Patch provided by Eiji Takahashi. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Reduce synchronization in session managers to improve performance of
+        session creation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        If starting children automatically when adding them to a container (e.g.
+        when adding a Context to a Host) don't lock the parent's set
+        of children whilst the new child is being started since this can block
+        other threads and cause issues such as lost cluster messages. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Implement support for parallel deployment. This allows multiple versions
+        of the same web application to be deployed to the same context path at
+        the same time. Users without a current session will be mapped to the
+        latest version of the web application. Users with a current session will
+        continue to use the version of the web application with which the
+        session is associated until the session expires. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50308">50308</a>: Allow asynchronous request processing to call
+        <code>AsyncContext.dispatch()</code> once the asynchronous request has
+        timed out. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make memory leak prevention code that clears ThreadLocal instances more
+        robust against objects with toString() methods that throw exceptions.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.5 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.5_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49860">49860</a>: Complete support for handling trailing headers in
+        chunked HTTP requests. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Impose a limit on the length of the trailing headers. The limit
+        is configurable with a system property and is <code>8192</code>
+        by default. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50207">50207</a>: Ensure Comet timeout events are triggered. This bug
+        was a regression triggered by the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49884">49884</a>. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.5 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.5_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49297">49297</a>: Enforce the rules in the JSP specification for parsing
+        the attributes of custom and standard actions that require that
+        the attribute names are unique within an element and that there is
+        whitespace before the attribute name. The whitespace test can be
+        disabled by setting the system property
+        <code>org.apache.jasper.compiler.Parser.STRICT_WHITESPACE</code> to
+        <code>false</code>. Attributes of the page directive have slightly
+        different rules. The implementation of that part of the fix is based on
+        a patch by genspring. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50105">50105</a>: When processing composite EL expressions use
+        <code>Enum.name()</code> rather than <code>Enum.toString()</code> as
+        required by the EL specification. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix minor thread-safety and performance issues in the implementation
+        of <code>maxLoadedJsps</code>. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for unloading JSPs that have not been requested for a
+        long time using the new parameter <code>jspIdleTimeout</code>. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add logging and JMX support to JSP unloading. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50192">50192</a>: Improve performance for EL when running under a
+        security manager. Based on a patch by Robert Goff. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50228">50228</a>: Improve recycling of <code>BodyContentImpl</code>.
+        This avoids keeping a cached reference to a webapp-provided Writer
+        used in JspFragment.invoke() calls. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50273">50273</a>: Provide a workaround for an HP-UX issue that can
+        result in large numbers of SEVERE log messages appearing in the logs as
+        a result of normal operation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50293">50293</a>: Increase the size of internal ELResolver array from 2 
+        to 8 since in typical usage there are at least 5 resolvers. Based on a
+        patch by Robert Goff. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.5 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.5_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add support for maxActiveSessions attribute to BackupManager. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve sending an access message in DeltaManager.
+        maxInactiveInterval of not Manager but the session is used. 
+        If maxInactiveInterval is negative, an access message is not sending. 
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50183">50183</a>: BIO sender was not scheduling tasks to the executor
+        during normal operation. Patch provided by Ariel. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50184">50184</a>: Add an option to the RpcChannel to enable the Channel
+        send options to be set for the reply message. Based on a patch by Ariel.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that a new Context waiting for session data from other nodes in
+        the cluster does not block the processing of clustering messages for
+        other Contexts. (markt) 
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.5 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.5_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49426">49426</a>: Localize messages in the Manager application based on
+        the Locale of the user rather than the default Locale of the server.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Localize messages in the Host Manager application based on the Locale of
+        the user rather than the default Locale of the server. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50242">50242</a>: Provide a sample log4j  configuration that more
+        closely matches the default JULI configuration. Patch provided by
+        Christopher Schultz. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Restore the ability to edit the contents of /WEB-INF and /META-INF via
+        WebDAV via the provision of a new configuration option,
+        allowSpecialPaths. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct broken links for on-line JavaDocs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50230">50230</a>: Add new DistributedManager interface that is
+        implemented by the Backup Manager to remove circular dependency between
+        tomcat-catalina-ha and tomcat-catalina modules. Also allows third-party
+        distributed Manager implementations to report full session information
+        through the HTML Manager. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Improve Tomcat Logging documentation. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50303">50303</a>: Update JNDI how-to to reflect the new JavaMail
+        download location and that JAF is now included in Java SE 6. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix ordering functionality on sessions page for the HTML Manager 
+        application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix primary sessions not always being treated as such in the HTML
+        Manager application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix message not being displayed after session attribute removal in the
+        HTML Manager application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50310">50310</a>: Fix display of Servlet information in the Manager
+        application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        CVE-2010-4172: Multiple XSS in the Manager application. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50316">50316</a>: Fix display of negative values in the Manager 
+        application. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50318">50318</a>: Avoid NPE when trying to view session detail for an
+        expired session in the Manager application. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.5 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.5_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct a handful of Javadoc warnings. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=22965">22965</a>: Fix some typos and formatting issues in the global
+        web.xml file. Based on a patch by Yann C&eacute;bron. (markt) 
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Extend Checkstyle validation checks to check for unused imports. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        General code clean-up to reduce (not eliminate) the number of warnings
+        reported by IDEs. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50140">50140</a>: Don't ignore a user specified installation
+        directory when performing a silent install with the Windows installer on
+        64-bit platforms. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Reimplemented Windows installer dialogs, using modern libraries
+        (nsDialogs, MUI2). (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        When installing with the Windows installer on 64-bit platforms, allow
+        the user to select either a 32-bit JDK or a 64-bit JDK. If a 32-bit JDK
+        is selected, the 32-bit service wrapper and the 32-bit native DLL will
+        be installed. If a 64-bit JDK is selected, the 64-bit service wrapper
+        and the 64-bit native DLL will be installed. (markt/kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Create Windows shortcuts for the Manager and Host Manager webapps.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Support /? command line option in the Windows Installer. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Display and allow to change roles for the Tomcat admin user in the
+        Windows installer. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        In the Windows installer: do not leave stale <code>server.xml</code>
+        and <code>tomcat-users.xml</code> fragments in the $TEMP folder.
+        (kkolinko)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49819">49819</a>: Redesign of home page by Pid (pidster at apache).
+        (timw)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.4 (markt)"><!--()--></a><a name="Tomcat_7.0.4_(markt)"><strong>Tomcat 7.0.4 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>beta, 2010-10-21</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.4 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.4_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49428">49428</a>: Re-implement the fix for bug <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49428">49428</a> &ndash;
+        namespace issues for some Microsoft WebDAV clients. (kkolinko)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49669">49669</a>: Fix memory leak triggered by using the deprecated
+        javax.security.auth.Policy class. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49922">49922</a>: Don't add filter twice to filter chain if the
+        filter matches more than one URL pattern and/or Servlet name. Patch
+        provided by heyoulin. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49937">49937</a>: Use an InstanceManager when creating an AsyncListener
+        through the AsyncContext to ensure annotations are processed. Based on a
+        patch by David Jencks. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        To avoid NoSuchMethodException, xmlValidation and xmlNamespaceAware are 
+        removed from the createStandardHost definition 
+        of mbeans-descriptors.xml. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49945">49945</a>: Continue improvements to JMX. Fix a handful of
+        attributes that were showing as Unavailable in JConsole. Patch provided
+        by Chamith Buddhika. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49952">49952</a>: Allow ServletContainerInitializers to add listeners to
+        a web application. Patch provided by David Jencks. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49956">49956</a>: Handle case when @Resource annotation uses the full
+        JNDI name for a resource. Based on a patch by Gurkan Erdogdu. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49557">49557</a>: Correct regression due to Lifecycle refactoring that
+        cleared all work directories (with compiled JSPs and persisted sessions)
+        when Tomcat was stopped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49978">49978</a>: Correctly handle the case when a directory expected
+        to be created during web application start is already present. Rather
+        than throwing an exception and failing to start, allow the web
+        application to start normally. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49987">49987</a>: Fix thread safety issue with population of servlet
+        context initialization parameters. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49994">49994</a>: As per the Java EE 6 specification, return a new
+        object instance for each JNDI look up of a resource reference. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50015">50015</a>: Re-factor dynamic servlet security implementation to
+        make extensions, such as JACC implementations, simpler. Patch provided
+        by David Jencks. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50016">50016</a>: Re-factor <code>isUserInRole()</code> and
+        <code>login()/logout()</code> methods to support JACC implementations
+        and to improve encapsulation. Patch provided by David Jencks. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50017">50017</a>: Code clean-up. No functional change. Patch provided by
+        sebb. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50027">50027</a>: Avoid NPE on start when a Context is defined in
+        server.xml with one or more JNDI resources. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50059">50059</a>: JARs should always be searched for static resources
+        even if the web application is marked as meta-data complete. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50063">50063</a>: Correct regression in fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50059">50059</a> that
+        causes applications marked as meta-data complete to return 404s for all
+        requests. Patch provided by heyoulin. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50087">50087</a>: Catch ClassFormatErrors when scanning for annotations.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.4 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.4_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49923">49923</a>: Avoid using negative timeouts during acceptor unlock
+        to ensure APR connector shuts down properly. (mturk) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49972">49972</a>: Fix potential thread safe issue when formatting dates
+        for use in HTTP headers. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50003">50003</a>: Set not maxThreads but minSpareThreads to
+        corePoolSize, if AbstractEndpoint.setMinSpareThreads is called.
+        (kfujino) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50044">50044</a>: Fix issue when using comet where socket remained in
+        long poll after the comet request has ended. (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50054">50054</a>: Correctly handle the setting of minSpareThreads in 
+        AJP connector. (kfujino) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50072">50072</a>: Fix issues when using a non-blocking read for the
+        request line with the NIO connector that could result in the request
+        line being mis-read. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.4 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.4_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49986">49986</a>: Fix thread safety issue for JSP reload. (timw)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49998">49998</a>: Make jsp:root detection work with single quoted
+        attributes as well. (timw)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correctly handle the setting of primitive bean values via expression
+        language. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Don't swallow exceptions when processing TLD files and handle the
+        case when there is no web.xml file. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50066">50066</a>: Fix building of recursive tag files when the file
+        depends on a JAR file. Patch provided by Sylvain Laurent. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50078">50078</a>: Fix threading problem in EL caches. Patch provided by
+        Takayoshi Kimura. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Make EL cache sizes configurable. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.4 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.4_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Apply filters to default home page so copyright year is correctly
+        displayed. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.4 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.4_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48716">48716</a>: Do not call reset if the default LogManager is in use.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50013">50013</a>: Correctly package classes from
+        <code>org.apache.tomcat.util.file</code> and add the tomcat-util.jar to
+        the class path for the Ant tasks. Based on a patch provided by
+        Sylvain Laurent. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.3 (markt)"><!--()--></a><a name="Tomcat_7.0.3_(markt)"><strong>Tomcat 7.0.3 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.3 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.3_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48644">48644</a>: Review all instances of catching Throwable and
+        re-throw where appropriate. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Allow glob patterns in the <code>jarsToSkip</code> configuration and add
+        some debug logging to the jar scanner. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48738">48738</a>: Workaround a couple of long standing JDK bugs to
+        enable GZIP compressed output streams to be flushed. Based on a patch
+        provided by Jiong Wang. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48967">48967</a>: Replace strings "catalina.base" and "catalina.home"
+        by globally defined constants. Patch provided by Marc Guillemot. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49195">49195</a>: Don't report an error when shutting down a Windows
+        service for a Tomcat instance that has a disabled shutdown port. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49209">49209</a>: Prevent possible AccessControlException during
+        undeployment when running with a security manager. Patch provided by
+        Sylvain Laurent. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49657">49657</a>: Handle CGI executables with spaces in the path.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49667">49667</a>: Ensure that using the JDBC driver memory leak
+        prevention code does not cause a one of the memory leaks it is meant to
+        avoid. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49670">49670</a>: Restore SSO functionality that was broken by Lifecycle
+        refactoring. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49698">49698</a>: Allow a listener to complete an asynchronous request
+        if it times out. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49714">49714</a>: The annotation process of Jar doesn't influence
+        distributable element of web.xml. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49721">49721</a>: Alls JAR in a web application should be searched for
+        resources, not just those with a web-fragment.xml that is going to be
+        processed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49728">49728</a>: Improve PID file handling when another process is
+        managing the PID file and Tomcat does not have write access. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49730">49730</a>: Fix a race condition in StandardThreadExector that can
+        cause requests to experience large delays. Patch provided by Sylvain
+        Laurent. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49749">49749</a>: Single sign on cookies should have httpOnly flag set
+        using same rules as session cookies. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49750">49750</a>: Align <code>WebappClassLoader.validate()</code>
+        implementation with Javadoc and ensure that <code>javax.servlet.*</code>
+        classes can not be loaded by a <code>WebappClassLoader</code> instance.
+        Patch provided by pid. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49757">49757</a>: Correct some generics warnings. Based on a patch
+        provided by G&aacute;bor. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49779">49779</a>: Improve handling of POST requests and FORM
+        authentication, particularly when the user agent responds to the 302
+        response by repeating the POST request including a request body. Any
+        request body provided at this point is now swallowed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        CSRF prevention filter did not correctly handle URLs that used anchors.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix memory leak on web application stopped caused by failed to
+        de-register the web application's Servlets with the MBean server.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        More tweaks to the Lifecycle refactoring to ensure that when a component
+        is being destroyed, the destroy method is only called once on each
+        child component. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Keep the MBean names for web applications consistent between Tomcat 6
+        and Tomcat 7. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49856">49856</a>: Add an executorName attribute to Connectors so it is
+        possible to trace ThreadPool to Connector to Executor via the JMX
+        interface. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49865">49865</a>: Tomcat failed to start if catalina.properties was not
+        present. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49876">49876</a>: Fix the generics warnings in the copied Apache Jakarta
+        BCEL code. Based on a patch by G&aacute;bor. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49883">49883</a>: Ensure that the CombinedRealm and LockOutRealm return
+        a name for use in log messages rather than throwing an
+        <code>UnsupportedOperationException</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49884">49884</a>: Fix occasional NullPointerException on async
+        complete(). This resulted in a major refactoring of the async
+        implementation to address a number of threading issues. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Update the version numbers in ServerInfo defaults to Tomcat 7.0.x.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49892">49892</a>: Correct JNDI name for method resource injections.
+        Based on a patch by Gurkan Erdogdu. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Ensure that Context elements defined in server.xml use any configClass
+        setting specified in the parent Host element. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        GSOC 2010. Enable the creation of Services, Engines, Connectors, Hosts
+        and Contexts via JMX from a minimal server.xml that contains only a
+        Server element. Based on a patch by Chamith Buddhika. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49909">49909</a>: Fix a regression introduced with the fix for
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=47950">47950</a> that prevented JSTL classes being loaded. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49915">49915</a>: Make error more obvious, particularly when accessed
+        via JConsole, if StandardServer.storeConfig() is called when there is
+        no StoreConfig implementation present. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50018">50018</a>: Fix some minor Javadoc errors in Jasper source.
+        Based on a patch by sebb. (timw)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50021">50021</a>: Correct a regression in the fix for <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=46844">46844</a>
+        that may have caused additional problems during a failure at start up.
+        (markt) 
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50026">50026</a>: Prevent serving of resources from WEB-INF and
+        META-INF directories when DefaultServlet or WebdavServlet is mapped
+        to a sub-path of the context. This changes DefaultServlet to always
+        serve resources with paths relative to the root of the context
+        regardless of where it is mapped, which is a breaking change for
+        current servlet-mappings that map the default servlet to a subpath.
+        (timw)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=50689">50689</a>: Provide 100 Continue responses at appropriate points
+        during FORM authentication if client indicates that they are expected.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.3 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.3_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Wait for the connectors to exit before closing them down. (mturk)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Follow up to <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48545">48545</a>. Make JSSE connectors more tolerant of a
+        incorrect trust store password. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix some edge cases in the NIO connector when handling requests that are
+        not received all at the same time and the socket needs to be returned to
+        the poller. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Further work to reduce the code duplication in the HTTP connectors.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make sure acceptor threads are stopped when the connector is stopped.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Make sure async timeout thread is stopped when the connector is stopped.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49625">49625</a>: Ensure Vary header is set if response may be
+        compressed rather than only setting it if it is compressed. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49802">49802</a>: Re-factor connector pause, stop and destroy methods so
+        that calling any of those methods has the expected results. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Various refactorings to reduce code duplication and unnecessary code in
+        the connectors. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49860">49860</a>: Add partial support for trailing headers in chunked
+        HTTP requests. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.3 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.3_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49665">49665</a>: Provide better information including JSP file name and
+        location when a missing file is detected during TLD handling. Patch
+        provided by Ted Leung. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49726">49726</a>: Specifying a default content type via a JSP property
+        group should not prevent a page from setting some other content type.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49799">49799</a>: The new <code>omit</code> attribute for
+        <code>jsp:attribute</code> elements now supports the use of expressions
+        and expression language. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49916">49916</a>: Switch to using an initialisation parameter to pass
+        JSP file information from Catalina to Jasper. This simplifies the
+        Catalina code as well as making it easier for Geronimo and others to
+        integrate Jasper. Patch provided by David Jencks. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49985">49985</a>: Fix thread safety issue in EL parser. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.3 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.3_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Remove domainReplication attribute from ClusterManager.
+        If you send session to only same domain, use DomainFilterInterceptor.
+        (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add Null check when CHANGE_SESSION_ID message received. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Add support for LAST_ACCESS_AT_START system property to DeltaSession.
+        (kfujino)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
         Avoid a NPE in the DeltaManager when a parallel request invalidates the
@@ -1961,4294 +12739,629 @@
         message. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48925">48925</a>: <code>request.getLocalAddr()</code> returns
-        <code>null</code> when using the default Jk AJP/1.3 connector. (rjung)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49905">49905</a>: Prevent memory leak when using asynchronous session
+        replication. (markt) 
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49497">49497</a>: Stop accepting new requests (inc keep-alive) once the
-        BIO connector is paused and the current request has finished processing.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49521">49521</a>: Disable scanning for a free port in Jk AJP/1.3
-        connector by default. Do not change <code>maxPort</code> field value of ChannelSocket
-        in its <code>setPort()</code> and <code>init()</code> methods. Add
-        support for <code>maxPort</code> attribute on a <code>Connector</code>
-        element as a synonym for <code>channelSocket.maxPort</code>. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49625">49625</a>: Ensure Vary header is set if response may be
-        compressed rather than only setting it if it is compressed. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49730">49730</a>: Fix race condition in StandardThreadExecutor that can
-        lead to long delays in processing requests. Patch provided by Sylvain
-        Laurent. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49860">49860</a>: Add support for trailing headers in chunked HTTP
-        requests. The header length is limited to 8192 by default and the limit
-        can be changed via a system property. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49972">49972</a>: Fix potential thread safe issue when formatting dates
-        for use in HTTP headers. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50072">50072</a>: NIO connector can mis-read request line if not sent in
-        a single packet. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve recycling of processors in Http11NioProtocol. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50273">50273</a>: Provide a workaround for an HP-UX issue that can
-        result in large numbers of SEVERE log messages appearing in the logs as
-        a result of normal operation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make SSL certificate encoding algorithm consistent between connectors by
-        using the JVM default for all connectors. This also fixes an issue with
-        the NIO connector on IBM JVMs. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50467">50467</a>: Protected against NPE triggered by a race condition
-        that causes the NIO poller to fail, preventing the processing of further
-        requests. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.30 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.30_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49217">49217</a>: Ensure that identifiers used in EL meet the
-        requirements of the Java Language Specification. This check is off by
-        default and can be enabled by setting a system property. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49555">49555</a>: Correctly handled Tag Libraries where functions are
-        defined in static inner classes. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49665">49665</a>: Provide better information including JSP file name and
-        location when a missing file is detected during TLD handling. Patch
-        provided by Ted Leung. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49985">49985</a>: Fix thread safety issue in EL parser. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49986">49986</a>: Fix thread safety issue in JSP reloading. (timw))
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49998">49998</a>: Make jsp:root detection work with single quoted
-        attributes as well. (timw)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50066">50066</a>: Compile a recursive tag file if it depends on a JAR.
-        Patch provided by Sylvain Laurent. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50078">50078</a>: Fix threading issues in EL caches and make cache sizes
-        configurable. Threading patch provided by Takayoshi Kimura. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50105">50105</a>: When processing composite EL expressions use
-        <code>Enum.name()</code> rather than <code>Enum.toString()</code> as
-        required by the EL specification. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50228">50228</a>: Improve recycling of <code>BodyContentImpl</code>.
-        This avoids keeping a cached reference to a webapp-provided Writer
-        used in JspFragment.invoke() calls. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50460">50460</a>: Fix memory leak in JspDocumentParser triggered by
-        first access to a jspx page. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50500">50500</a>: Use correct coercions (as per the EL spec) for
-        arithmetic operations involving string values containing '.',
-        'e' or 'E'. Based on a patch by Brian Weisleder.
-        (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.30 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.30_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49343">49343</a>: When ChannelException is thrown, remove listener from
-        channel. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add Null check when CHANGE_SESSION_ID message received. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        When a cluster node disappears when using the backup manager, handle the
-        failed ping message rather than propagating the exception (which just
-        logs the stack trace but doesn't do anything to deal with the failure).
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49905">49905</a>: Fix potential memory leak when using asynchronous
-        session replication. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49924">49924</a>: When non-primary node changes into a primary node,
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49924">49924</a>: When non-primary node changes into a primary node,
         make sure isPrimarySession is changed to true. (kfujino)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add support for <code>maxActiveSessions</code> attribute to
-        BackupManager. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve sending an access message in DeltaManager.
-        Use <code>maxInactiveInterval</code> not of the Manager, but of the session. 
-        If <code>maxInactiveInterval</code> is negative, the access message is not
-        being sent. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50547">50547</a>: Add time stamp for CHANGE_SESSION_ID message and 
-        SESSION_EXPIRED message. (kfujino)
-      </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.30 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.30_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.3 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.3_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49585">49585</a>: Update JSVC documentation to reflect new packaging
+        Correct the class name of the default JAR scanner in the documentation
+        web application. (rjung)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49585">49585</a>: Update JSVC documentation to reflect new packaging
         of Commons Daemon. (markt)
       </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Configure the Manager web application to use the new CSRF protection. To
-        take advantage of this protection, the <code>manager</code> role must be
-        removed from all users and the new <code>manager-gui</code> and
-        <code>manager-script</code> roles used instead. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Configure the Host Manager web application to use the new CSRF
-        protection. To take advantage of this protection, the <code>admin</code> role
-        must be removed from all users and the new <code>admin-gui</code> and
-        <code>admin-script</code> roles used instead. (markt)
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update the Servlet, JSP and EL Javadoc links to link to the
+        specifications and the relevant part of the Java EE 6 Javadoc. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50303">50303</a>: Update JNDI how-to to reflect new JavaMail and JAF
-        download locations and that JAF is now included in Java SE 6. (markt) 
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        CVE-2010-4172: Multiple XSS in Manager application. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Improve Tomcat Logging documentation. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50242">50242</a>: Provide a sample log4j  configuration that more
-        closely matches the default JULI configuration. Patch provided by
-        Christopher Schultz. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50294">50294</a>: Add more information to documentation regarding format
-        of configuration files. Patch provided by Luke Meyer. (markt) 
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Configure the Manager and Host-Manager web applications to use HttpOnly
-        flag for their session cookies. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50316">50316</a>: Fix display of negative values in the Manager web
-        application. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Improve documentation of database connection factory. (rjung)
+        Update a few places in the docs where the Manager documentation referred
+        to the old role name of manager rather than than the new manager-script.
+        (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.30 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.30_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.3 (markt)/Extras"><!--()--></a><a name="Tomcat_7.0.3_(markt)/Extras"><strong>Extras</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49861">49861</a>: Don't log RMI ports formatted with commas for the
+        JMX remote listener. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.3 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.3_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the user names created by the Windows installer for the Manager
+        and Host Manager applications. (mturk)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct the Eclipse compiler dependency in the Jasper POM. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Extend Checkstyle validation checks to check import order. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49758">49758</a>: Fix generics warnings exposed by a fix in Eclipse 3.6.
+        Patch provided by sebb. (markt)
+      </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48716">48716</a>: Do not call reset if the default LogManager is in use.
+        Update Apache Commons Pool to 1.5.5. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49955">49955</a>: Improvement and correction of Building Tomcat guide.
+        Based on a patch from Wesley Acheson. (timw)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49993">49993</a>: Improve check for <code>JAVA_HOME</code> and add
+        support for <code>JRE_HOME</code> in <code>service.bat</code>. (mturk)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.2 (markt)"><!--()--></a><a name="Tomcat_7.0.2_(markt)"><strong>Tomcat 7.0.2 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>beta, 2010-08-11</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.2 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.2_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Fix regression that prevented running with a security manager enabled.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.2 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.2_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct Javadoc errors. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Provide Javadoc for Servlet 3.0 API, JSP 2.2 API and EL 2.2 API.
         (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use native line endings for example Eclipse configuration files in
-        source distribution. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49428">49428</a>: Add a work-around for the known namespace issues for
-        some Microsoft WebDAV clients. Based on the patch provided by
-        Panagiotis Astithas. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49861">49861</a>: Fix formatting of log messages in JXM remote listener.
-        Do not use commas when printing RMI port numbers. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50140">50140</a>: Don't ignore a user specified install directory
-        on 64-bit platforms when using the Windows installer. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=50552">50552</a>: Avoid NPE that hides error message when using Ant
-        tasks. (schultz)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Numerous improvements to the Windows installer: update install/uninstall
-        icons, create an installation log, allow 32-bit JVMs to be selected when
-        installing on a 64-bit platform, replace the .ini files with the script
-        equivalents, use the new manager and host-manager roles, provide the
-        ability to edit the roles for the added user, add support for the
-        <code>/?</code> command line switch, clean up fully after installation,
-        add DetailPrint statements for operations that may take time and
-        improve the descriptions of the components. (kkolinko, mturk, markt)
+        Remove second copy of RUNNING.txt from the full-docs distribution. Some
+        unpacking utilities can't handle multiple copies of a file with the same
+        name in a directory. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.29 (jfclere)"><!--()--></a><a name="Tomcat_6.0.29_(jfclere)"><strong>Tomcat 6.0.29 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2010-07-22</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.29 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.29_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.2 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.2_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48960">48960</a>: Add a new option to the SSI Servlet and SSI Filter to
+        Extend Checkstyle validation checks to check for tabs in nearly all text
+        files. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Apache Commons Daemon from 1.0.2 to 1.0.3. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update Eclipse JDT Core Batch Compiler (ecj.jar) from 3.5.1 to 3.6.
+        (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.1 (markt)"><!--()--></a><a name="Tomcat_7.0.1_(markt)"><strong>Tomcat 7.0.1 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.1 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.1_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        GSOC 2010. Continue work to align MBean descriptors with reality. Patch
+        provided by Chamith Buddhika. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When running under a security manager, enforce package access and
+        package definition restrictions defined in the catalina.properties file.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        When using a Loader configured with
+        <code>searchExternalFirst="true"</code> failure to find the
+        class in an external repository should not prevent searching of the
+        local repositories. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add entryPoint support to the CSRF prevention filter. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48297">48297</a>: Correctly initialise handler chain for web services
+        resources. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48960">48960</a>: Add a new option to the SSI Servlet and SSI Filter to
         allow the disabling of the <code>exec</code> command. This is now
         disabled by default. Based on a patch by Yair Lenga. (markt)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49551">49551</a>: Allow default context.xml location to be specified
-        using an absolute path. (markt)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48998">48998</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49617">49617</a>: Add the ExpiresFilter, a port of the
+        httpd mod_expires module. Patch provided by Cyrille Le Clerc. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49598">49598</a>: When session is changed and the session cookie is
-        replaced, ensure that the new Set-Cookie header overwrites the old
-        Set-Cookie header. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49030">49030</a>: When initializing/starting/stopping connectors and
+        one of them fails, do not ignore the others. (markt/kkolinko)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix order when listing Webapp loader search URLs. (rjung)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49128">49128</a>: Don't swallow exceptions unnecessarily in
+        <code>WebappClassLoader.start()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49182">49182</a>: Align comments in setclasspath.[sh|bat] with
+        behaviour. Based on a patch provided by sebb. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49230">49230</a>: Enhance JRE leak prevention listener with protection
+        for the keep-alive thread started by
+        <code>sun.net.www.http.HttpClient</code>. Based on a patch provided by
+        Rob Kooper. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49414">49414</a>: When reporting threads that may have triggered a
+        memory leak on web application stop, attempt to differentiate between
+        request processing threads and threads started by the application.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49428">49428</a>: Add a work-around for the known namespace issues for
+        some Microsoft WebDAV clients. Patch provided by Panagiotis Astithas.
+        (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
         Add support for <code>*.jar</code> pattern in VirtualWebappLoader.
         (kkolinko)
       </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.28 (jfclere)"><!--()--></a><a name="Tomcat_6.0.28_(jfclere)"><strong>Tomcat 6.0.28 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2010-07-09</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.28 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.28_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>Arrange filter logic. (jfclere)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Use a LockOutRealm in the default configuration to prevent attempts to
+        guess user passwords by brute-force. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49478">49478</a>: Add support for user specified character sets to the
+        <code>AddDefaultCharsetFilter</code>. Based on a patch by Felix
+        Schumacher. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49230">49230</a>: Enhance JRE leak prevention listener with protection
-        for the keep-alive thread started by
-        <code>sun.net.www.http.HttpClient</code>. Patch provided by Rob Kooper.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49503">49503</a>: Make sure connectors bind to their associated ports
+        sufficiently early to allow jsvc and the
+        org.apache.catalina.startup.EXIT_ON_INIT_FAILURE system property to
+        operate correctly. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49525">49525</a>: Ensure cookies for the ROOT context have a path of /
+        rather than an empty string. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49528">49528</a>, <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49567">49567</a>: Ensure that
+        <code>AsyncContext.isAsyncStarted()</code> returns the correct value
+        after <code>AsyncContext.start()</code> and that if
+        <code>AsyncContext.complete()</code> is called on a separate thread that
+        it is handled correctly. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49530">49530</a>: Contexts and Servlets not stopped when Tomcat is shut
+        down. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49536">49536</a>: If no ROOT context is deployed, ensure a 404 rather
+        than a 200 is returned for requests that don't map to any other context.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Additional debug logging in StandardContext to provide information on
+        Manager selection. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49550">49550</a>: Suppress deprecation warning where deprecated code is
+        required to be used. No functional change. Patch provided by Sebb.
         (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49351">49351</a>: Fix possible NPE when embedding and no name is
-        specified for the Service. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49424">49424</a>: Avoid NPE if client provides no data with a chunked
-        POST request. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49414">49414</a>: Improve diagnostic of memory leaks.
-        Differentiate between request threads and application
-        created threads when warning about still running threads when an
-        application stops. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49443">49443</a>: Fix RemoteIpValve documentation. Use remoteIpHeader
-        rather than remoteIPHeader consistently. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49551">49551</a>: Allow default context.xml location to be specified
+        using an absolute path. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add property <code>searchExternalFirst</code> to WebappLoader.
-        If set, the external repositories will be searched before
-        the WEB-INF ones. (rjung)
+        Improve logging of unhandled exceptions in servlets by including the
+        path of the context where the error occurred. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Include session ID in error message logged when trying to set an
+        attribute on an invalid session. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Improve the CSRF protection filter by using SecureRandom rather than
+        Random to generate nonces. Also make the implementation class used user
+        configurable. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Avoid NullPointerException, when copyXML=true and META-INF/context.xml
+        does not exist. (kfujino)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49598">49598</a>: When session is changed and the session cookie is
+        replaced, ensure that the new Set-Cookie header overwrites the old
+        Set-Cookie header. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Create a thread to trigger asynchronous timeouts when using the BIO
+        connector, change the default timeout to 10s (was infinite) and make the
+        default timeout configurable using the <code>asyncTimeout</code>
+        attribute on the connector. (pero/markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49600">49600</a>: Make exceptions returned by the
+        <code>ProxyDirContext</code> consistent for resources that weren't found
+        by checking the <code>DirContext</code> or the cache. Test case based on
+        a patch provided by Marc Guillemot. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49613">49613</a>: Improve performance when using SSL for applications
+        that make multiple class to <code>Request.getAttributeNames()</code>.
+        Patch provided by Sampo Savolainen. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Handle the edge cases where resources packaged in JARs have names that
+        start with a single quote character or a double quote character. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct copy and paste typo in web.xml parsing rules that mixed up
+        <code>local-ejb-ref</code> and <code>resource-env-ref</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Refactor session managers to remove unused code and to reduce code
+        duplication. Also, all session managers used for session replication now
+        extend <code>org.apache.catalina.ha.session.ClusterManagerBase</code>.
+        (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.28 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.28_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.1 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.1_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
+    <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Remove references to Jikes since it does not support Java 6. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct over zealous type checking for EL in attributes that broke the
+        use of JSF converters. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Correct algorithm used to identify correct method to use when a
+        MethodExpressions is used in EL. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49217">49217</a>: Ensure that identifiers used in EL meet the
+        requirements of the Java Language Specification. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Improve logging of JSP exceptions by including JSP snippet (if enabled)
+        rather than just the root cause in the host log. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49555">49555</a>: Correctly handled Tag Libraries where functions are
+        defined in static inner classes. (markt)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.1 (markt)/Cluster"><!--()--></a><a name="Tomcat_7.0.1_(markt)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49445">49445</a>: When session ID is changed after authentication,
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49127">49127</a>: Don't swallow exceptions unnecessarily in
+        <code>SimpleTcpReplicationManager.startInternal()</code>. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49407">49407</a>: Change the BackupManager so it is consistent with
+        DeltaManager and reports both primary and backup sessions when active
+        sessions are requested. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49445">49445</a>: When session ID is changed after authentication,
         ensure the DeltaManager replicates the change in ID to the other nodes
         in the cluster. (kfujino)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.28 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.28_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.1 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.1_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49213">49213</a>: Grant permissions required by manager application when
-        running under a security manager. (markt/kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49112">49112</a>: Update the ROOT web application's index page. Patch
+        provided by pid. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49436">49436</a>: Correct documented default for <code>readonly</code>
-        attribute of the UserDatabase component. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.27 (jfclere)"><!--()--></a><a name="Tomcat_6.0.27_(jfclere)"><strong>Tomcat 6.0.27 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.27 (jfclere)/General"><!--()--></a><a name="Tomcat_6.0.27_(jfclere)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update DBCP to 1.3. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.27 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.27_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix CVE-2010-1157. Prevent possible disclosure of host name or IP
-        address via the HTTP WWW-Authenticate header when using BASIC or DIGEST
-        authentication. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Include context name when reporting memory leaks to aid root cause
-        identification. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve exception handling on session de-serialization to assist in
-        identifying the root cause of <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48007">48007</a>. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48379">48379</a>: Make session cookie name, domain and path configurable
-        per context. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48589">48589</a>: Make JNDIRealm easier to extend. Based on a patch by
-        Candid Dauth. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48629">48629</a>: Allow user names as well as DNs to be used with the
-        nested role search. Add roleNested to the documentation. Patch provided
-        by Felix Schumacher. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48661">48661</a>: Make error page behavior consistent, regardless of how
-        the error page is defined. If a response has been committed, always
-        include the error page. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48729">48729</a>: Return roles defined by both userRoleName and roleName
-        mechanisms. Patch provided by 'eric'. Also make user's role list
-        immutable.(markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48760">48760</a>: Fix potential multi-threading issue in static resource
-        serving where multiple threads could try to use the the same
-        InputStream. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48790">48790</a>: Fix thread safety issue in the count of the maximum
-        number of active session. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48793">48793</a>: Make catalina.sh more robust to different return
-        values on different platforms. Patch provided by Thomas GL. (markt)
-      </td></tr>
-       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48840">48840</a>: Swallow output (if any) from use of cd when determining
-        $CATALINA_HOME in catalina.sh and tool-wrapper.sh scripts. Based on patch
-        provided by mdietze. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48895">48895</a>: Make clearing of ThreadLocals that are causing memory
-        leaks on web application stop, reload or undeploy configurable since the
-        process of clearing them is not thread-safe. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48903">48903</a>: Fix deadlock in webapp class loader. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48971">48971</a>: Make stopping of leaking Timer threads optional and
-        disabled by default. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48976">48976</a>: Document JAVA_ENDORSED_DIRS in start-up scripts. Patch
-        provided by Laurent Vaills. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48983">48983</a>: Improve debug logging for situations when
-        <code>RemoteIpValve</code> is bypassed. Patch provided by Cyrille Le
-        Clerc. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49018">49018</a>: Fix processing of time argument in the Expire sessions
-        action in the Manager web application. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49116">49116</a>: If session is already invalid, expire session to
-        prevent memory leak. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49158">49158</a>: Ensure only one session cookie is returned for a
-        single request. (markt/fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49245">49245</a>: Fix session expiration check in cross-context
-        requests. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49398">49398</a>: ByteChunk.indexOf(String, int, int, int) could not
-        find a string of length 1. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix possible overflows when calculating session statistics. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Log unexpected exceptions when providing access to web application
-        resources in ApplicationContext. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve exception handling in CatalinaShutdownHook. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Expose properties of VirtualWebappLoader and WebappClassLoader via JMX.
-        (rjung)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.27 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.27_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48839">48839</a>: Correctly handle HTTP header folding in the NIO
-        connector. Patch suggested by Richa Baronia. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48843">48843</a>: Prevent possible deadlock for worker allocation in
-        connectors. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48843">48843</a>: Fix handling of add queues in AprEndpoint.Poller and
-        AprEndpoint.Sendfile. Do not miss wakeups. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48862">48862</a>: Add support for the backlog parameter to the AJP
-        connector. (pero/markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48917">48917</a>: Correct name of mod_jk module in ApacheConfig. Patch
-        provided by Todd Hicks. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49095">49095</a>: AprEndpoint did not wakeup acceptors during shutdown
-        when deferAccept option was enabled. Based on a patch provided by
-        Ruediger Pluem. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Use chunked encoding for http 1.1 requests with no content-length
-        (regardless of keep-alive) so client can differentiate between complete
-        and partial responses. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct the SSL session timeout attribute name so the code agrees with
-        the documentation. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        CoyotePrincipal now implements Serializable. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Enable the BIO AJP connector to run under a security manager. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.27 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.27_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45015">45015</a>: Correct a regression in quote handling caused by the
-        re-factoring of attribute parsing. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48701">48701</a>: Add a system property to allow disabling enforcement
-        of JSP.5.3. The specification recommends, but does not require, this
-        enforcement. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48737">48737</a>: Don't assume paths that start with /META-INF/... are
-        always in JARs. This is not true for some IDEs. Patch provided by
-        Fabrizio Giustina. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49081">49081</a>: Correctly handle EL expressions of the form #${...}.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49213">49213</a>: Add the permissions necessary to enable the Manager
+        application to operate currently when running with a security manager.
         (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49196">49196</a>: Avoid NullPointerException in PageContext.getErrorData()
-        if an error-handling JSP page is called directly. (markt)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49436">49436</a>: Correct documented default for readonly attribute of
+        the UserDatabase component. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49475">49475</a>: Use new role name for manager application access on
+        the ROOT web application's index page. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49476">49476</a>: CSRF protection was preventing access to the session
+        expiration features. Also switch the manager application to the generic
+        CSRF protection filter. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Better handle failure to create directories required for new hosts in
+        the Host Manager application. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        Switch the Host Manager application to the generic CSRF protection for
+        the HTML interface and prevent started hosts from being started and
+        stopped hosts from being stopped. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49518">49518</a>: Fix typo in extras documentation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49522">49522</a>: Fix regression due to change of name for MBeans for
+        naming resources that broke the complete server status page in the
+        manager application. Note these MBeans now have a new name. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49570">49570</a>: When using the example compression filter, set the
+        Vary header on compressed responses. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add redirects for the root of the manager and host-manager web
+        applications that redirect users to the html interface rather than
+        returning a 404. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Provide the HTML Manager application with the ability to differentiate
+        between primary, backup and proxy sessions. Note that proxy sessions are
+        only shown if enabled in web.xml. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.27 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.27_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.1 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.1_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48717">48717</a>: When a node joins a cluster and it receives all the
-        current sessions, ensure the sessionCreated event is fired if the
-        Manager is configured to replicate session events. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48934">48934</a>: Previous fix to handle dropped connections incorrectly
-        permanently disabled session replication. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49051">49051</a>: memberAlive is not called if member has not already
-        existed in membership. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49151">49151</a>: Avoid ClassCastException in BackupManager#stop.
-        (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49170">49170</a>: Do not send duplicated session. (kfujino)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add missing messages and ensure cluster listeners log messages to
-        correct logger. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.27 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.27_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Use underscores instead of spaces in anchor names in Tomcat
-        documentation. (kkolinko)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49130">49130</a>: Better describe the core package in the Windows
+        installer, making it clear that the service will be installed. Patch
+        provided by sebb. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add support for displaying the Spring Security user name (if present) in
-        the Manager application. (markt)
+        Re-factor unit tests to enable them to be run once with each of the HTTP
+        connector implementations (BIO, NIO and APR/native). (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=49268">49268</a>: Add the necessary plumbing to include CheckStyle in
+        the build process. Start with no checks. Additional checks will be
+        added as they are agreed. (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Improve the ChatServlet <a href="aio.html">Comet</a> example
-        (/examples/jsp/chat/). (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.27 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.27_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>Update to Commons Daemon 1.0.2. Use service launcher (procrun)
-      from the Commons Daemon release. Do not keep a copy of it in our source
-      tree. (mturk/kkolinko)</td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update to NSIS 2.46. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48990">48990</a>: Fix the <code>skip.installer</code> build property
-        so if set, only the Windows installer is skipped. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49178">49178</a>: Provide in catalina.policy an example of additional
-        permissions that might be needed for code located in
-        <code>$CATALINA_BASE/lib</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=49236">49236</a>: Do not use indexing when packing Tomcat JARs.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove unused code from org.apache.tomcat.util.buf classes. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Rearrange tomcat-juli.jar permissions and wrap long lines in the
-        <code>conf/catalina.policy</code> file, to make the text more readable
-        when cited in documentation. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Do not evaluate the <code>execute.installer</code> property when building
-        a release. The <code>skip.installer</code> property is used instead.
-        (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.26 (jfclere)"><!--()--></a><a name="Tomcat_6.0.26_(jfclere)"><strong>Tomcat 6.0.26 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2010-03-11</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.26 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.26_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Close security hole in unreleased 6.0.25 by ensuring new find leaks
-        functionality is protected by a security constraint. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48831">48831</a>: Improve logging shutdown behaviour. Use Catalina's
-        shutdown hook to shutdown JULI. This enables them to be shutdown in the
-        correct order. Do not shutdown global handlers several times.
-        (markt/kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.26 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.26_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48584">48584</a>: Prevent the APR connector logging an error if the
-        acceptor fails during shutdown since this is expected. (mturk)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48660">48660</a>: Using compression should not overwrite any Vary header
-        set by a web application. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.26 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.26_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48371">48371</a>: Ensure generated servlet mappings are inserted at the
-        correct location when using JspC and allow the option that controls this
-        to be configured on the command line. Also allow the encoding of web.xml
-        to be configured when using JspC and deprecate some unused JspC methods.
-        (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48498">48498</a>: Avoid ArrayIndexOutOfBoundsException triggered by a
-        Java 6/7 XML parser bug. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48668">48668</a>: Additional fixes to ensure deferred syntax is handled
-        correctly. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48827">48827</a>: Correct a regression in the fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47977">47977</a>
-        that caused an incorrect non-empty body error to be reported for valid
-        JSP documents. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.26 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.26_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Make changelog.xml be directly rendered as HTML by certain browsers.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add support for automated generation of TOC tables and for links to svn
-        revisions to tomcat-docs.xsl in documentation. (kkolinko/fhanik)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Move Manager application JSPs that are not intended to be accessed
-        directly under the WEB-INF directory. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve the messages displayed by the find leaks diagnostic in the
-        Manager application. (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.26 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.26_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Encode all property files using ascii escaped UTF-8. Also fixes
-        deployment problem when using French locale. (jfclere/rjung)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.25 (jfclere)"><!--()--></a><a name="Tomcat_6.0.25_(jfclere)"><strong>Tomcat 6.0.25 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.25 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.25_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48039">48039</a>: Return immediately if start() is called on an already
-        started StandardService. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48109">48109</a>: Ensure InputStream is closed on error condition in web
-        application class loader. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48179">48179</a>: Clean up dead code that was used to read tldCache
-        file. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48318">48318</a>: Handle case where WebDAV resource is in directory
-        listing but is not accessible. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48384">48384</a>: Add a per context xslt option for directory listings.
-        Make the fallback options work as described in the documentation.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48577">48577</a>: Filter URL when displaying missing included page.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48612">48612</a>: Prevent exception on shutdown if the address attribute
-        is specified for a connector. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48613">48613</a>: Further fixes to ensure APRLifecycleListener is only
-        used if defined in server.xml. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48614">48614</a>: Correct JULI log file buffering so default behaviour
-        is no buffering. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48625">48625</a>: Provide an option to exit if an error occurs during
-        the initialization phase. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48645">48645</a>: Use specified encoding rather than null in calls to
-        <code>RequestUtil.URLDecode(byte[] bytes, String enc)</code> (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48653">48653</a>: Force request.secure and request.scheme to
-        <code>false</code> and <code>http</code> if the X-Forwarded-Proto header
-        has the value http. Patch provided by Cyrille Le Clerc. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48678">48678</a>: Remove duplicate server field from
-        <code>org.apache.catalina.startup.Catalina</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48694">48694</a>: Remove potential deadlock in web application class
-        loader. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48716">48716</a>: Provide additional configuration options for JULI.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48726">48726</a>: Prevent OOME when uploading large WAR files with the
-        deployer. Patch provided by adam. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Improve memory leak protection by safely stopping threads started via
-        <code>java.util.Timer</code> that an application starts but fails to
-        stop and by clearing references retained due to the use of
-        <code>java.util.ResourceBundle</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Modify ThreadLocal memory leak detection to not report false positives
-        and to simplify implementation. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Basic memory leak detection was added to the standard Host
-        implementation and exposed via JMX to detect memory leaks on web
-        application reload. (markt/kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.25 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.25_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update the native/APR library version bundled with Tomcat to 1.1.20.
-        (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.25 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.25_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add some debug logging to the compiler where exceptions were previously
-        swallowed. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48170">48170</a>: Remove unnecessary synchronization that is causing
-        issues under load. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48580">48580</a>: Prevent AccessControlException if first access is to a
-        JSP that uses a FunctionMapper. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48582">48582</a>: Avoid NPE on background compilation failure. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48616">48616</a>: Don't declare or synchronize scripting variables for
-        JSP fragments since they are scriptless. This is an alternative fix for
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42390">42390</a> that avoids both the original problem and the
-        regression in the first fix. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48627">48627</a>: Fix regression in re-factored EL parsing. Keep
-        literals as literals and handle deferredSyntaxAllowedAsLiteral.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48668">48668</a>: When parsing JSPs only parse EL as EL if EL is enabled
-        else strings such as ${ will be silently dropped. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Various EL TCK failures. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.25 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.25_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Force a disconnect if an error occurs during replication such as
-        a firewall dropping the connection. (fhanik)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.25 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.25_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add new "Find leaks" command to the Manager application. It allows to
-        detect web applications that have caused memory leaks on stop,
-        reload or undeploy. (markt/kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.25 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.25_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Ensure files in conf directory have CRLF line endings when using the
-        Windows installer. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Allow special characters recognized by the Windows command-line shell to
-        be present in the names of CATALINA_HOME/_BASE and the current directory
-        used to call the Tomcat scripts. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Don't use @Deprecated annotations in
-        <code>javax.servlet.jsp.JspContext</code> since the specification does
-        not include them in the API definition. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Improve the information in the JAR manifest files. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.24 (jfclere)"><!--()--></a><a name="Tomcat_6.0.24_(jfclere)"><strong>Tomcat 6.0.24 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2010-01-21</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.24 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.24_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct TCK failures with security manager caused by the original fix
-        for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47774">47774</a>. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.24 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.24_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove broken link in README.html. (jfclere)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add <code>.notice</code> files to the set of files that have their line
-        endings changed. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <code>.zip</code> distributions should have windows line endings.
-        (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.23 (jfclere)"><!--()--></a><a name="Tomcat_6.0.23_(jfclere)"><strong>Tomcat 6.0.23 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.23 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.23_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47774">47774</a>: Ensure web application class loader is used when
-        calling session listeners. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48006">48006</a>: Add additional information to the optional
-        X-Powered-By header to align with the content suggested in the Servlet
-        specification. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48345">48345</a>: Sessions timed out too early when using
-        PersistentManager. Patch provided by Keiichi Fujino. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48398">48398</a>: Make objects used as locks final to ensure correct
-        operation. Patch provided by sebb. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48417">48417</a>: Update French translations. Patch provided by Andr&eacute;
-        Warnier. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48421">48421</a>: Fix file descriptor and potential memory leak when a
-        web application uses a local logging.properties file. Allow a web
-        application's log files to be deleted once the web application has been
-        stopped. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48454">48454</a>: Ensure stderr is completely read before terminating
-        the CGI process. Patch provided by Markus Grieder. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48516">48516</a>: Prevent NPE in JNDIRealm if requested user does not
-        exist. Patch provided by Kevin Conaway. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix implementation of log buffer size and provide a cleaner interface.
-        (fhanik/kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.23 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.23_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update version of native bundled in Windows installer to 1.1.19. (mturk)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update recommended version for native to 1.1.19. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48004">48004</a>: All web applications to set the http
-        <code>Server</code> header. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48470">48470</a>: Ensure Tomcat does not lock up if shut down under
-        load. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.23 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.23_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-  <table border="0" cellpadding="2" cellspacing="2">
-    <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47977">47977</a>: Using a body with a tag that has an empty body should
-      cause an error. (markt)
-    </td></tr>
-    <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-      <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48112">48112</a>: Correct handling of } character in literals when parsing
-      expressions. This also improves the fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47413">47413</a>. (markt)
-    </td></tr>
-  </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.23 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.23_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48530">48530</a>: Add information on the Manager Server Status page to
-        the Manager How-To in the documentation webapp. Based on a patch by
-        Arnaud Espy. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48532">48532</a>: Add information to the BIO/NIO SSL configuration page
-        in the documentation web application to specify how the defaults for the
-        various trust store attributes are determined. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.23 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.23_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove hard coded version numbers and instead apply version filter
-        already defined in ant scripts. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47609">47609</a>: Correct regression in previous fix. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48464">48464</a>: Provide an option to specify the command window title
-        in catalina.bat on Windows. Patch provided by LiuYan. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add some missing deprecation markers for
-        <code>javax.servlet.jsp.JspContext</code>. (markt/kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.22 (jfclere)"><!--()--></a><a name="Tomcat_6.0.22_(jfclere)"><strong>Tomcat 6.0.22 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.22 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.22_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Log errors if a web application starts a thread but fails to stop the
-        thread when the web application stops or is reloaded. Failure to stop a
-        thread is very likely to result in a memory leak. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Provide an option to stop any threads a web application starts but fails
-        to stop when the web application stops or is reloaded. Using this option
-        is very likely to result in instability and should be viewed as a last
-        resort in development and is not recommended at all in production.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Log errors if a web application creates a ThreadLocal but fails to clear
-        it when the web application stops or is reloaded. Failure to clear a
-        ThreadLocal is very likely to result in a memory leak. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Clear any unintentional references remaining in
-        <code>sun.rmi.transport.Target</code> when the web application stops or
-        is reloaded. Failure to clear these is very likely to result in a memory
-        leak. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.22 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.22_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove unneeded line from the method that normalizes decodedURI.
-        (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.22 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.22_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct MD5 generation in the build process. (jfclere/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47609">47609</a>: Provide fail-safe EOL conversion for build process.
-        Based on patches by sebb/kkolinko. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.21 (jfclere)"><!--()--></a><a name="Tomcat_6.0.21_(jfclere)"><strong>Tomcat 6.0.21 (jfclere)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.21 (jfclere)/Catalina"><!--()--></a><a name="Tomcat_6.0.21_(jfclere)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix issues with expression language when running under a
-        SecurityManager. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove duplicate mime-mapping entries in web.xml. Re-order entries
-        alphabetically to make it easier to identify duplicates. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Use a more sensible default (webapps) for a Host's appBase.
-        (markt/idarwin)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37794">37794</a>: Support the parsing of parameters from chunked POSTs.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37984">37984</a>: Strip {MD5} as well as {SHA} if present in digest
-        passwords in LDAP directories. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38352">38352</a>: Allow JSPs to write to the directory defined by
-        <code>javax.servlet.context.tempdir</code> when running under a security
-        manager. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39231">39231</a>: Call LoginContext.logout() when using JAAS realm and
-        session expires. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40380">40380</a>: Fix potential synchronization issue in
-        StandardSession.expire(). (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41059">41059</a>: Reduce chances of errors when ENABLE_CLEAR_REFERENCES
-        is used. Patch provided by Curt Arnold. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43343">43343</a>: Fix additional concurrency issues identified with the
-        persistent session manager. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44041">44041</a>: Fix threading issue in WebappClassLoader that can lead
-        to duplicate class definition under high load. (markt/fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44943">44943</a>: Use the same engine name in server.xml comments to
-        reduce copy and pastes issues. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45255">45255</a>: Provide protection against session fixation by
-        changing session ID automatically on authentication. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45403">45403</a>: Add additional checks on web application deployment
-        and do not swallow IO errors. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45785">45785</a>: Additional fix required for the extension validator.
-        Based on a patch by Rolf Wojtech. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46908">46908</a>: Try and support java encoding names when using an xml
-        parser provided via the endorsed mechanism. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46967">46967</a>: Better handling of errors when trying to use
-        Manager.randomFile. Based on a patch by Kirk Wolf. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47046">47046</a>: Unregister all MBeans, including when non-default
-        engine names are used. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use native2ascii to ensure non-ASCII characters in property files are
-        handled correctly in all circumstances. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47050">47050</a>: Remove unnecessary filtering of error messages.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47080">47080</a>: Fix NPE in RealmBase when uri is null. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47158">47158</a>: Fix some thread safety issues in the AccessLogValve.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47228">47228</a>: Correct French translations. Patch provided by sebb.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47299">47299</a>: Simplify code and make embedding easier. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47316">47316</a>: Allow different values for Service name and Engine
-        name. This corrects a regression introduced by the fix for
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42707">42707</a>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47343">47343</a>: Editing context.xml for a directory should not delete
-        the directory. This was a regression caused by the fix for
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42747">42747</a>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47364">47364</a>: Improve Javadoc for
-        org.apache.catalina.connector.Request.getAttributeNames() to include
-        information on the handling of Tomcat's internal request attributes.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47451">47451</a>: Don't throw an NPE if the various response.setHeader()
-        methods are called with null header name, zero length header name or
-        null value. Silently ignore the calls in the same way they are ignored
-        if the response has already been committed. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47462">47462</a>: Allow individual web applications to override metadata
-        complete if set in the global web.xml. Patch provided by Keiichi Fujino.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47495">47495</a>: Provide a more meaningful error message is server.xml
-        is not readable and exit immediately if a server cannot be created.
-        (funkman/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47518">47518</a>: Correct reference in Valve Javadoc that referred to an
-        old method. Patch provided by Christopher Schultz. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47537">47537</a>: Return an error page rather than a zero length 200
-        response if the forward to the login or error page fails during FORM
-        authentication. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47718">47718</a>: Fix file descriptor leak on context stop/reload. Patch
-        provided by George Sexton. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47796">47796</a>: Fix OpenEJB integration. Reset annotation processor on
-        context stop. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47826">47826</a>: Correct error in debug message in
-        org.apache.catalina.Bootstrap (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47836">47836</a>: Clear cached TLD information on context reload.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47841">47841</a>: When using the CombinedRealm, if one of the nested
-        Realms fails to start, skip that Realm rather than preventing the
-        CombinedRealm from starting. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47881">47881</a>: Fix processing of startd and stopd arguments. Patch
-        provided by Qingyang Xu. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47918">47918</a>: Correct mbean descriptors for the host deployer. Patch
-        provided by Uwe G&uuml;nther. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47930">47930</a>: Fix thread safety issues on session swap-in in the
-        persistent session manager. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47976">47976</a>: Correct usage message and Javadoc for
-        <code>org.apache.catalina.startup.Catalina</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47997">47997</a>: Ensure the NamingContextListener applies to all naming
-        contexts, not just the global one. Patch provided by Michael Allman.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48049">48049</a>: Fix copy and paste error so
-        <code>NamingContext.destroySubContext()</code> works correctly.
-        Patch provided by gingyang.xu (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48097">48097</a>: Make WebappClassLoader to do not swallow
-        AccessControlException. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48097">48097</a>: Avoid throwing an AccessControlException which can
-        lead to a NoClassDefFoundError on first access of first jsp.
-        (kkolinko/markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48257">48257</a>: Correct error in Spanish translations. Patch provided
-        by Guillermo Guti&eacute;rrez. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48306">48306</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48307">48307</a>: Correct French translations. Patches
-        provided by Marc Paquette. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48322">48322</a>: Single quote characters are not HTTP separators and
-        should not be treated as such in the cookie handling. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48413">48413</a>: Correct some French translations. Patch provided by
-        Andr&eacute; Warnier. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Deprecate the <code>caseSensitive</code> option on the
-        <code>StandardContext</code> which will be removed in Tomcat 7 onwards.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Log deployments consistently for WAR, directory and descriptor
-        deployments. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Better logging for parameter decoding issues to help identify broken
-        requests. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update Apache Commons Pool from 1.4 to 1.5.4. This update includes
-        various fixes to prevent deadlocks, reduces synchronization and makes
-        object allocation occur fairly - i.e. objects are allocated to threads
-        in the order that the threads request them. This update fixes a number
-        of issues in Tomcat's built-in copy of DBCP. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Allow log file encoding to be configured for JULI FileHandler. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Provide debug logging for JNDI lookups. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct JDBC driver de-registration on web application stop and fix NPE
-        that is exposed by the fix. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Ensure JDBC driver de-registration works with a security manager.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48214">48214</a>: Ensure JDBC driver de-registration is not too zealous.
+        Updated to Ant 1.8.1. The build now requires a minimum of Ant 1.8.x.
         (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Various JNDI realm improvements for Active Directory. These include the
-        ability to specify a default role, optional handling for nested roles
-        and an option to ignore PartialResultExceptions (markt).
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Expose Servlet Filters via JMX. Based on a patch by Xie Xiaodong as part
-        of GSOC2009. (markt)
+        Update the re-packaged version of commons-fileupload from 1.2.1 to
+        1.2.2. The layout of re-packaged version was also restored to the
+        original commons-fileupload layout to make merging of future updates
+        easier. (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Tomcat now uses the Platform MBean server by default so all MBeans
-        registered by Tomcat will be exposed via JMX (eg via JConsole) without
-        requiring any additional configuration. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        The JMX Remote Lifecycle Listener allows the ports used by JMX to be
-        fixed, making it easier to configure firewalls to all JMX traffic to
-        pass through. Part of the extras package. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make context deployment error message for fixDocBase() more meaningful.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add an additional permission required by JULI when running under newer
-        JDKs and a security manager. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove unnecessary reference to tomcat-coyote.jar from the bootstrap JAR
-        manifest. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use correct method to create URLs in VirtualWebappLoader. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Provide a new listener to protect against a memory leak caused by a
-        change in the Sun JRE from version 1.6.0_15 onwards. Also include
-        protection against locked JAR files, memory leaks triggered by
-        XML parsing and the GC Daemon. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Don't swallow exceptions in ApplicationContextFacade.doPrivileged()
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Close resource stream in WebappClassLoader after read error. (pero)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Include attribute name into the text of Non-serializable exception
-        that might be thrown by Session.setAttribute() in distributable
-        applications. (mturk)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add RemoteIpValve, a port of mod_remoteip. Patch provided by Cyrille Le
-        Clerc. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Allow per instance configuration of JULI or log4j for core Tomcat
-        logging when using CATALINA_BASE. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Prevent NPE in JULI during shutdown when resources try to log messages
-        after JULI has been shutdown. (fhanik/kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Make the JULI FileHandler easier to extend. (fhanik)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Make buffer size for FileHandler configurable. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make JULI FileHandler thread safe. (fhanik)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Provide an option to disable buffering in the JULI FileHandler.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Ensure log messages are not lost on shutdown. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44679">44679</a>: Provide an option to allow the equals character in
-        unquoted cookie values. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add support for a connectionTimeout parameter to the JNDIRealm. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Various (un)deployment related improvements including better handling of
-        failed (un)deployment, additional checking for valid zip entries that
-        don't make sense in a WAR and improved validation of WAR file names.
-        (markt)
+        Update the re-packaged version of Jakarta BCEL from trunk revision
+        880760 to trunk revision 978831. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.21 (jfclere)/Coyote"><!--()--></a><a name="Tomcat_6.0.21_(jfclere)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
+</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.0 (markt)"><!--()--></a><a name="Tomcat_7.0.0_(markt)"><strong>Tomcat 7.0.0 (markt)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>beta, 2010-06-29</strong></font></td></tr><tr><td colspan="2"><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.0 (markt)/Catalina"><!--()--></a><a name="Tomcat_7.0.0_(markt)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>Implement <code>socket.unlockTimeout</code> attribute for NIO connector.</td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update version of native bundled in Windows installer
-        to 1.1.18. (kkolinko)
+        Update Servlet support to the Servlet 3.0 specification. (all)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update minimum required version for native to 1.1.17. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46950">46950</a>: Fix doing SSL renegotiation when a resource with CLIENT-CERT
-        auth is requested. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Align tcnative native and Java method names. (rjung)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>Dont report thread count from connector if an external executor is used.</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39637">39637</a>: Enable the AJP connectors to correctly handle client
-        certificate chains. Patch by Patrik Schnellmann. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46985">46985</a>: Clean up code and remove impossible condition.
-        (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47225">47225</a>: Fix error in calculation of a buffer length in the
-        mapper. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47320">47320</a>: Don't rely on the platform default encoding being
-        suitable to parse the session ID. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47499">47499</a>: Don't swallow bind exceptions. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47744">47744</a>: Prevent a medium term memory leak if using SSL with
-        the JSSE provider and also using a security manager. Based on a patch by
-        Greg Vanore. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47963">47963</a>: Ensure that any HTTP status messages are compliant
-        with RFC2616. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47987">47987</a>: Limit size of not found resources cache. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48009">48009</a>: Protect against the situation where editing a
-        context.xml file may result in the file disappearing for a very short
-        time. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use correct connector attribute (SSLEnabled) rather than secure to
-        determine if SSL should be used. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Provide a workaround for CVE-2009-3555, the TLS renegotiation issue, for
-        the default Blocking IO Java connector.
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48252">48252</a>: Fix stack overflow exception when setting jkHome on
-        NIO connector. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48311">48311</a>: Only the APR lifecycle listener should try and
-        initialise APR. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.21 (jfclere)/Jasper"><!--()--></a><a name="Tomcat_6.0.21_(jfclere)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38797">38797</a>: Fix a regression in the previous patch for
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37933">37933</a>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38897">38897</a>: Add uri of broken TLD to error message to aid
-        debugging. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41661">41661</a>: Fix thread safety issue with JspConfig.init() (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41824">41824</a>: Need to use canonical rather than binary form when
-        writing code. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42390">42390</a>: Fix compilation issue with some nested tag files and
-        simple tags. (kkolinko/markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43656">43656</a>: Correctly coerce <code>null</code> to zero when the
-        target type is <code>Number</code>. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46907">46907</a>: Don't swallow input stream when debug logging is
-        enabled. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47318">47318</a>: Process directives found in include preludes and
-        codas. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47331">47331</a>: Treat uninterpreted tags as template text for JSP.2.2.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47413">47413</a>: Ensure expressions of the form "${a}${b}"
-        are correctly coerced to String. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47453">47453</a>: Handle void return types for deferred methods.
-        (funkman)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Remove the code that auto-detects the value for compilerSourceVM,
-        compilerTargetVM options of Jasper, because we know that this version
-        of Tomcat cannot run on JDK 1.4 and thus the value is always "1.5".
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Change default values for JDK version compliance options of JspC
-        (-source and -target when running from command line)
-        to be "1.5", to be the same as the ones used by Jasper servlet.
-        (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make constants in the TagHandlerPool really constant. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        When development mode is enabled and a JSP is deleted, ensure next
-        request for that JSP is consistent with the JSP having been removed.
-        (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48019">48019</a>: Be more careful about skipping content that does not
-        need to be parsed. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Better handling of exception in JSP if parsed JSP source is not
-        available. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.21 (jfclere)/Cluster"><!--()--></a><a name="Tomcat_6.0.21_(jfclere)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        DeltaSession needs endAccess so that CrossContext replication works. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        DeltaManager needs to replicate changed attributes even if session
-        gets invalidated. Otherwise session listeners will not see the right
-        data on the secondary nodes. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Spurious startup errors during session transfer.
-        Sessions get transferred, but node still waits until timeout. (rjung)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Perform deserializtion events with context class loader. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47515">47515</a>: Correctly replicate timestamp during startup. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47478">47478</a>: Call replication listeners when using BackupManager. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47369">47369</a>: Reset data diff after replication. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40551">40551</a>: Enable the JvmRouteBinderValve to work with
-        PersistentManagers as well as clustering. Based on a patch by Chris
-        Chandler. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47342">47342</a>: Fix potential NPE on replicated context start. Patch
-        provided by Keiichi Fujino. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47389">47389</a>: DeltaManager doesn't do session replication if
-        notifySessionListenersOnReplication=false.
-        Patch by Keiichi Fujino. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47502">47502</a>: Don't replicate session attributes known not to be
-        serializable. (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47554">47554</a>: Include httpOnly attribute when re-writing session
-        cookie after fail over. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47799">47799</a>: Enable the domain to be configured for Membership and
-        DomainFilterInterceptor. Patch provided by Keiichi Fujino. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48113">48113</a>: Display IP addresses using 0 to 255 rather than -128
-        to +127. Based on a patch by Quintin Beukes. (fhanik/kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.21 (jfclere)/Web applications"><!--()--></a><a name="Tomcat_6.0.21_(jfclere)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41564">41564</a>: Add some documentation on installing Tomcat as a
-        service on operating systems with User Account Control, e.g. Vista.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47161">47161</a>: Report thread count correctly in Manager when exectors
-        are used and return -1 when it can not easily be determined. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47235">47235</a>: Remove use of autoReconnect from MySQL examples.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47324">47324</a>: Fix submit URL for session list page so it works
-        behind a reverse proxy. Patch provided by Maik Jablonski. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47425">47425</a>: Add crlFile attribute to the SSL configuration
-        documentation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47444">47444</a>: Remove Jakarta references from the documentation.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47656">47656</a>: Add information to documentation on system property
-        replacement in configuration files. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47705">47705</a>: Fix division by zero error in the manager when trying
-        to expire sessions when the session timeout is set to infinite.
-        (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix display of session information pages of Manager application
-        in Internet Explorer. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Do not reuse windows (tabs) for session detail pages in Manager
-        application. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47769">47769</a>: Clarify the JNDI docs with repect to use of
-        &lt;resource-ref&gt; and related elements, specifically when they are
-        required and when they may be omitted. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=48381">48381</a>: Add information on how Tomcat treats host names to the
-        host configuration documentation. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.21 (jfclere)/Other"><!--()--></a><a name="Tomcat_6.0.21_(jfclere)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37847">37847</a>: Make location and filename of catalina.out configurable
-        in catalina.sh. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37848">37848</a>: Re-fix not outputting info messages when there is no
-        terminal. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39194">39194</a>: Make classpath configuration consistent in the startup
-        scripts. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update Tomcat Windows service application (procrun) to version 2.0.5.
-        It contains a fix for issue <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41538">41538</a> (mturk)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40786">40786</a>: Include 64-bit Windows service wrapper in
-        distributions. Update the Windows installer to automatically use the
-        correct binary on 64-bit machines. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update Windows Installer to use NSIS 2.45. They say that this version
-        provides support for the upcoming Microsoft Windows 7. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Don't add blank lines to end of files when fixing line-endings for
-        tar.gz distribution. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use explicit encoding during filtering operations when building Tomcat
-        for distribution. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Remove references to unused commons-collections from the build scripts.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix download task check for commons-pool and commons-dbcp in the
-        build scripts. (kkolinko)
+        Improve and document VirtualWebappLoader. (rjung)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Include deployer-howto.html into the deployer distributive. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47149">47149</a>: Build scripts: Explicitly specify encoding when
-        compiling. (kkolinko)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47267">47267</a>: Ensure release notes displayed by Windows installer
-        have CRLF line-endings regardless of which OS the install package is
-        built on. (markt/kkolinko)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Include NOTICE, LICENSE and manifest files in all Tomcat JARs and add a
-        mechanism to the build process to enable these files to be customised
-        per JAR as required. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47699">47699</a>: Provide better handling of PID files. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47824">47824</a>: Make Servlet API an optional dependency for JULI when
-        using Maven. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add support for per instance (using $CATALINA_BASE) log4j.properties
-        files, JDBC drivers etc by adding ${catalina.base}/lib and
-        ${catalina.base}/lib/*.jar to the start of the common loader class
-        path. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct CVE-2009-3548. When installed via the Windows installer and
-        using defaults, don't create an administrative user with a blank
-        password. Additionally, the administrative user is only created if the
-        manager or host-manager web applications are selected for installation.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Further improvements to the administrative user name and password
-        handling in the Windows installer. (kkolinko)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.20 (remm)"><!--()--></a><a name="Tomcat_6.0.20_(remm)"><strong>Tomcat 6.0.20 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2009-06-03</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.20 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.20_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42579">42579</a>: Handle both relative and absolute search results in
-        the JNDIRealm. Patch provided by Brandon DuRette. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46562">46562</a>: Close shtml files after processing to allow other
-        processes to modify the files. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46815">46815</a>: Make the MemoryUserDatabase read-only by default.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46816">46816</a>: Align session manager mbean descriptor with
-        implementation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix a typo in the OPTIONS response from the default servlet. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46822">46822</a>: Remove unnecessary object creation from
-        StandardContext. Patch provided by Anthony Whitford. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46866">46866</a>: Better initialisation of Random objects. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46875">46875</a>: Catch and handle possible IllegalStateExceptions
-        in CometConnectionManagerValve related to session expiration. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct some errors reported when testing the WebDAV servlet with the
-        Litmus test suite. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46933">46933</a>: Update StringManager to use Java 5 features. Patch
-        provided by Jens Kapitza. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46990">46990</a>: Fix synchronization issues reported by FindBugs. Patch
-        provided by Sebb. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.20 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.20_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Allow huge request body packets for AJP13. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45026">45026</a>: Never return an empty HTTP status reason phrase.
-        mod_jk and httpd 2.x do not like that. (rjung)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Set remote port for AJP connectors from the optional request
-        attribute AJP_REMOTE_PORT. (rjung)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update tc-native to 1.1.16 (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46982">46982</a>: Correct reporting of DST offset in access logs.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46984">46984</a>: Invalid characters in HTTP request method now result
-        in a 400 response. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46991">46991</a>: Fix AJP connector always reporting bytes received as
-        zero. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.20 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.20_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37929">37929</a>: Fix invalidated session causing pageContext methods to
-        fail. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41606">41606</a>: Prevent double initialisation of JSPs. Patch provided
-        by Chris Halstead. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46354">46354</a>: ArrayIndexOutOfBoundsException when using
-        org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true
-        Patch provided by Konstantin Kolinko. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46909">46909</a>: Only include semi-colon in type attribute for
-        &lt;jsp:plugin&gt; when it is required. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=47013">47013</a>: Use system property rather than hard-coded string for
-        pre-compilation flag. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.20 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.20_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        A node should ignore its own heartbeat messages. (rjung)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.20 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.20_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46509">46509</a>: Use correct link on error page in JSP security
-        example. Patch provided by Michael Moody. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46599">46599</a>: Document known DAEMON issue. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46807">46807</a>: Correct docs for configuration of tag pooling. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46924">46924</a>: Clarify behaviour when auto deployment is enabled and
-        a WAR, directory or context file is deleted or updated. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46958">46958</a>: All xml manager status output to work regardless of
-        context path. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.20 (remm)/Other"><!--()--></a><a name="Tomcat_6.0.20_(remm)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46351">46351</a>: Refactor the build script. Patch provided by Marc
-        Guillemot. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46910">46910</a>: Properties files corrupted by build process. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46915">46915</a>: When resolving ResourceBundle properties, don't claim
-        to have resolved the property unless we really have resolved it. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix .pdf and .exe corruption in -src.tar.gz distribution. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Enable running Tomcat directly from the build directory on linux
-        systems. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.19 (remm)"><!--()--></a><a name="Tomcat_6.0.19_(remm)"><strong>Tomcat 6.0.19 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.19 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.19_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Manager application prints FAIL if application was deployed but failed to start (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        When shutdown port is disabled, print user friendly message and not a stack trace. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37458">37458</a>: Correct sync issue that leads to NPE in rare
-        circumstances. Patch provided by Konstantin Kolinko. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38553">38553</a>: Return 401 rather than 400 if client does not present
-        a certificate CLIENT-CERT authentication. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38570">38570</a>: When checking docBase against appBase, make sure we
-        check for an exact match against the appBase. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39013">39013</a>: When testing for invalid docBase, test for an exact
-        match with the appBase dir. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39396">39396</a>: Don't include TRACE in OPTIONS response unless we
-        know it hasn't been disabled in the connector. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42747">42747</a>: Ensure context.xml takes effect on first deployment
-        for WAR and DIR deployments. context.xml is now copied to
-        CATALINA_BASE/&lt;engine name&gt;/&lt;host name&gt; for DIR as well as
-        WAR deployments. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43071">43071</a>: Start poller before acceptor (r719267)</td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Fix read/write timeout of async comet operations
-        (r719264)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Implement async close behaviour for Comet/NIO.
-        No-op for APR (same behavior as before)
-        (r719262)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Default thread count for HTTP connectors is 200. (r713186)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Comet should always invoke END and properly invoke READ (r713174)
-     </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix class cast exception when shutting down a replicated context but no cluster has been configured in server.xml (r713177)
-     </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Dererence socket when its no longer used. Frees up socket buffers and memory. No functional change. (r713175)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct wrong "No role found" debug message,
-        logged in RealmBase even if a role was found. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44809">44809</a>: Improve AprLifecycleListener Error Messages. (jfclere)</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Log AccessControlException for context specific logging.properties
-        during startup with security manager. (rjung)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41407">41407</a>: Add CLIENT-CERT support to the JAAS Realm. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42409">42409</a>: Make custom and standard error page handling
-        consistent by using resetBuffer() which will not alter previously set
-        headers. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42673">42673</a>: Fix SSI virtual includes for multi-level contexts.
-        Patch provided by Peter Jodeleit. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42707">42707</a>: Make adding a host alias via JMX take effect
-        immediately. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43656">43656</a>: Correct regression in previous fix for this bug. Patch
-        provided by Nils Eckert. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45419">45419</a>: Set Accept-Ranges for static resources served by
-        DefaultServlet. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45441">45441</a>: Correctly map filters for FORWARD and INCLUDE. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45447">45447</a>: Convert Spanish resource files to use UTF-8 and provide
-        translations where previously missing. Patch provided by Jesus Marin.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45453">45453</a>: Remove potential race condition in JDBC Realm.
-        Based on a patch by Santtu Hyrkk. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45576">45576</a>: Add DIGEST support to the JAAS Realm. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45585">45585</a>: Allow Tomcat to start if using
-        <code>$CATALINA_BASE</code> but not JULI. Patch based on a suggestion by
-        Ian Ward Comfort. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        The JAAS Realm did not assign roles to authenticated users. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Provide full stacktrace and message when the ErrorReportValveClass can't
-        be instantiated. (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45608">45608</a>: Make allocated servlet count synchronized to ensure
-        the correct allocated servlet count is available during shutdown.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45628">45628</a>: When checking MANIFEST dependancies, JARs without
-        dependencies should allows be considered to be full-filled. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45735">45735</a>: Improve ETag handling. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45785">45785</a>: Ignore directories named xxx.jar in WEB-INF/lib.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45823">45823</a>: Log missing request headers as '-' not 'null'. Based
-        on a patch by Per Landberg. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45825">45825</a>: Correctly handle annotations in parent classes. Based
-        on a patch by Florent Benoit. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45906">45906</a>: Further ETag handling improvements. Patch provided by
-        Chris Hubick. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add the CombinedRealm that enables authentication to be attempted
-        against multiple realms. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add the LockOutRealm that enables a standard Realm to be wrapped with
-        the functionality to lock out a user after too many failed logins.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Make the upper size limit of the static resource cache configurable
-        since the default of <code>cacheMaxSize/20</code> gave too high a value
-        for large caches. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix HTML decoding error in SSI processing. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix cast error in JULI log factory. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix some thread safety issues in date formatting. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix a String comparison bug in the digester property replacement that
-        resulted in non-optimal operation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct handle multi-level contexts defined using context.xml files.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45933">45933</a>: Don't use xml parser from web-app to process tld
-        files. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45951">45951</a>: Support changing of JSESSIONID cookie name and
-        jsessionid path parameter name. Based on a patch by Jean-frederic Clere.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46011">46011</a>: Make Principal accessible (if set) via
-        <code>Subject.getSubject(AccessController.getContext())</code> when
-        processing filters. Based on a patch by tsveg1. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46075">46075</a>: When uploading files, don't create buffers at the
-        maximum configured size. Use the default size and let the buffers grow
-        to the maximum size if necessary. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46085">46085</a>: Fix a rare thread safety issue with session
-        expiration. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46096">46096</a>:  Support annotation processing whilst running under a
-        security manager. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        The invoker servlet has been deprecated and will be removed in Tomcat 7
-        onwards. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46105">46105</a>:  Correctly set URI encoding when replaying a request
-        after FORM authentication. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove unnecessary reference to commons-logging from the bootstrap JAR
-        manifest. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46232">46232</a>: Enabled the XMl parser to be over-ridden using the
-        standard endorsed mechanism. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46261">46261</a>: Treat %2F in a context name literally rather than
-        converting it (inconsistently) to '/' - that is what '#' is for. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46298">46298</a>: Throw an SQLException with a useful message rather
-        than a NPE if the URL for the JDBCRealm is invalid. Based on a patch by
-        Owen Jacobson. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46304">46304</a>: Further fixes to make Principal accessible (if set)
-        via <code>Subject.getSubject(AccessController.getContext())</code> when
-        processing filters. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46403">46403</a>: Provide a workaround for an IE and Safari bug that
-        means the Max-Age attribute of a cookie is ignored. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46408">46408</a>: Fix invalid cast in security utility package. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove duplicate normalisation implementations and make normalise
-        behaviour consistent throughout code base. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46683">46683</a>: Fix typo in French localisation file name for the
-        org.apache.catalina.loader package. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46606">46606</a>: Make the max DEPTH for a WebDAV request configurable.
-        The default is still 3. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44382">44382</a>: Add support for using httpOnly for session cookies.
-        This is disabled by default. (markt/fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix possible NCDFE when using FORM authentication. (jfclere)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix possible synchronisation bottleneck in cookie creation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix various spelling errors reported on the mailing lists. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Make the logging manager and properties file configurable via
-        environment variables. (fhanik)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.19 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.19_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45154">45154</a>:
-        Implement SEND_FILE behavior for SSL connections using NIO (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Fix file descriptor leak during NIO send file behavior. (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Implement usage of keyAlias attribute for NIO, previously attribute was ignored. (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Prevent server from calling close on an already closed NIO socket. One that had timed out. (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Fix bug with SEND_FILE behavior in NIO. Send file would delay until selector timed out, even though socket was ready to be written. (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Fix possible NPE in NioEndpoint.java (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update tc-native to 1.1.15 in build.properties.default (jfclere)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43327">43327</a>: Socket bind fails when using APR on a system with IPv6
-        enabled but no explicit IPv6 address configured. (markt/jfclere)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44285">44285</a>: Make the SSL session cache size and timeout
-        configurable. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45074">45074</a>: Add configuration parameters to enable the tuning
-        of sendfile and poller thread count in the APR HTTP connector. Patch
-        provided by Alex Barclay. (jfclere/markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45528">45528</a>: Add detection for invalid SSL configuration to prevent
-        infinite logging loop on start-up. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45591">45591</a>: NPE on start-up failure in some cases. Based on a
-        patch by Matt Passell. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46077">46077</a>: Expose deferAccept for configuration. Patch provided
-        by Michael Leinartas. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-         Don't swallow input if we know the connection is going to be closed. (billbarker)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46125">46125</a>: Return a status code of 400 if the request headers are
-        too large. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-       Make certain that classes are first loaded by trusted code when working in a sandbox. (billbarker)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Log a message if we reach maxThreads in a connector thread pool. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Enable the thread pool limits to be modified via JMX. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-       Fix HTTP/1.0 redirects handling with APR AJP connector. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46666">46666</a>: keepAliveTimeout should be used regardless of setting
-        of disableUploadTimeout. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.19 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.19_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36923">36923</a>: Treat EL expressions as template text if EL
-        expressions are disabled. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37515">37515</a>: Support 1.6 and 1.7 as source and target for
-        compilation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        ClassCastException in EL ExpressionBuilder. (rjung)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Use more generics in EL to improve type safety. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use a lookahead to remove potential ambiguity in EL parsing. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct typo in JSP EL examples. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38197">38197</a>: Take account of jsp:attribute elements when pooling
-        tags. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42077">42077</a>: Ensure the iterator returned by
-        javax.el.CompositeELResolver#getFeatureDescriptor() skips any null
-        FeatureDescriptors. Patch provided by Mathias Broekelmann. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42693">42693</a>: Fix JSP generation error with recursive tag file
-        structure. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45427">45427</a>: Correctly handle unmatched quotes in EL expressions.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45511">45511</a>: The failure of the <code>empty</code> keyword was a
-        regression caused by the previous fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42565">42565</a>. The original
-        fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42565">42565</a> has been reverted and a new fix applied.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45648">45648</a>: Don't trim the last character when parsing the EL
-        namespace. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45666">45666</a>: Prevent infinite loop on include. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45691">45691</a>: Prevent generation of duplicate variable names when
-        generating code for JSPs. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct signed/unsigned conversion error in ASCII parsing. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix various edge-cases when parsing EL, particularly inside attribute
-        values. Note the the Expert Group has confirmed that JSP.1.6 takes
-        precedence over JSP.1.3.10. Therefore EL in attributes must be escaped
-        twice. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46047">46047</a>: Include the path to the JAR when recording
-        dependencies that are located inside a JAR file. Patch provided by
-        C&eacute;dric Mailleux. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46381">46381</a>: Composite expressions used for attribute values must
-        be coerced to Strings. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46397">46397</a>: Don't pool tag instances that implement JspIdConsumer.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46462">46462</a>: Limit package test to just the o.a.jsp package to
-        allow use of packages such as o.a.jspwiki. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46471">46471</a>: Fix naming clash when tags in different libraries have
-        the same name. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46564">46564</a>: Make page encoding check for tagx compilation
-        case-insensitive. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.19 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.19_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Prevent NPE for ReplicationValve (pero)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Provide TCP only start-up option when using static membership. (fhanik)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Document the multicast recovery options. (fhanik)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45261">45261</a>: Add a new SimpleCoordinator for tribes provided by
-        Robert Newson. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45618">45618</a>: Make sure NIO selector is closed when no longer used.
-        Unlikely to be an issue in normal usage. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45851">45851</a>: Fix out of order message processing issues with the
-        FarmWarDeployer. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix small memory leak in FarmWarDeployer. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46357">46357</a>: Corrected test for host's parent must be an engine.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix so that JvmrouteBinderValve can rewrite session suffix with parallel
-        requests from same client. (pero)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.19 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.19_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45940">45940</a>: Correct name of username attribute for JDBC resources
-        in JNDI how to. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46035">46035</a>: Fix multiple typos in monitoring how to. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46067">46067</a>: Fix typos in Advanced IO how to. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46115">46115</a>: Correct Manager UI to show that path is required when
-        using the deploy command. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46121">46121</a>: Add note to manager documentation regarding possible
-        naming clash with new Ant 1.7 resources datatype and how to avoid it.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove unsed parameters from Native/APR example connector configuration
-        in docs. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use CSS based solution for printer-friendly docs. Patch provided by
-        vitezslav.smid as part of GSoc with additional work by Tim Funk. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Update the FAQ linsk in the docs to refer to the wiki. Use xlst task
-        rather than style task to generate docs. (funkman/markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Document the LifecycleListeners. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix broken URL mapping in the examples. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46563">46563</a>: Update doc for correct default for pollerThreadCount.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46600">46600</a>: Document maxKeepAliveRequests for the NIO connector.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix CVE-2009-0781. XSS in calendar example. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.19 (remm)/Other"><!--()--></a><a name="Tomcat_6.0.19_(remm)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41861">41861</a>: Update service name to Apache Tomcat 6 to prevent
-        conflicts with previous major Tomcat versions. (markt/rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45852">45852</a>: Add special handling for cp932 (aka ms932) when
-        creating tomcat-users.xml with Windows installer. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45878">45878</a>: Restore manifest, licence and notice files to the jsp
-        and servlet jars. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45879">45879</a>: Move NOTICE file from documentation webapp to the
-        installation directory. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add a workaround for DBCP-191. Tomcat will now build without error on a
-        1.6 JDK but because it does this by skipping DBCP, release builds must
-        be generated with a 1.5 JDK. (costin/markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=46366">46366</a>: Correct information in RUNNING.txt regarding use of
-        CATALINA_HOME and CATALINA_BASE. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use more useful JPDA defaults in catalina.bat. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct error in 2.5 web-app XSD.
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.18 (remm)"><!--()--></a><a name="Tomcat_6.0.18_(remm)"><strong>Tomcat 6.0.18 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2008-07-31</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.18 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.18_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42727">42727</a>: Correctly handle request lines that are exact
-        multiples of 4096 in length. Patch provided by Will Pugh. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42678">42678</a>: Only ignore docBase if it really is a subdir of
-        appBase. Patch provided by juergen. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42722">42722</a>: Possible NPE in CGI Servlet. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45285">45285</a>: Look for annotations in class hierarchy. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add additional checks for URI normalization. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.18 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.18_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42565">42565</a>: Make EL ternary expression without space before colon
-        work. Patch provided by Lucas Galfaso. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.18 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.18_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45323">45323</a>: Add note that context.xml files can only contain a
-        single Context element. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.18 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.18_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45317">45317</a>: Properly document and log the value of the state transfer timeout flag (fhanik)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.18 (remm)/Other"><!--()--></a><a name="Tomcat_6.0.18_(remm)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45332">45332</a>: Specify the correct encoding (the current Windows code
-        page) rather than assuming UTF-8 when creating tomcat-users.xml with the
-        Windows installer. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.17 (remm)"><!--()--></a><a name="Tomcat_6.0.17_(remm)"><strong>Tomcat 6.0.17 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.17 (remm)/General"><!--()--></a><a name="Tomcat_6.0.17_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45315">45315</a>: Add Unix support for NSIS. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.17 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.17_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45272">45272</a>: Put in work around for Internet Explorer not accepting a quoted Path: value using the Set-Cookie header (fhanik)</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        APR connector now adds connection to poller after using send file.
-        (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Add ManagerBase session getLastAccessedTimestamp and
-        getCreationTimestamp for better remote JMX access. (pero)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Expose alwaysSend flag for message dispatch interceptor. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=29936">29936</a>: Create digesters and parsers earlier so we aren't
-        using the webapp class loader when we create them. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42662">42662</a>: Properly resolve reflection proxies during session
-        replication. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42750">42750</a>: Request line should be tolerant of multiple
-        whitespaces. (markt/fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42934">42934</a>: Change the order of events on context start so
-        <code>contextInitialized()</code> event is fired before
-        <code>sessionDidActivate()</code>. The spec isn't 100% clear on the
-        required order but this seems more logical than the current behaviour.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43079">43079</a>: Fix identification of suspicious URL patterns. Patch
-        provided by John Kew. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43080">43080</a>: Log suspicious URL patterns to the correct web app.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43117">43117</a>: Setting an empty workDir could result in all of
-        CATALINA_HOME being deleted. Patch provided by Takayuki Kaneko. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43142">43142</a>: Don't assume a directory named xxx.war is a war file.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43150">43150</a>: Allow Tomcat to start correctly when installed on a
-        path that contains a # character. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        The fix for <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43285">43285</a> had the side-effect of coercing
-        <code>null</code> values to zero. This side-effect has been made
-        configurable with a system property,
-        <code>org.apache.el.parser.COERCE_TO_ZERO</code> which defaults to
-        <code>true</code>. Patch provided by Nils Eckert. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43343">43343</a>: Correctly handle requesting a session we are in the
-        middle of persisting. Based on a suggestion by Wade Chandler. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43425">43425</a>: Make annotations spec compliant. Patch provided by
-        Dain Sundstrom. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43470">43470</a>: Fix various class cast exceptions. Based on a patch
-        by Lucas Galfaso. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43578">43578</a>: Fix startup when installation path contains a space.
-        Patch provided by Ray Sauers. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43683">43683</a>: Fix 404 that could occur if a Servlet is accessed
-        while the context is reloading. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>ExtendedAccessLogValve cs-uri not print empty querystring. (pero)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        ServletContext.getResource("noslash/resource") only requires forward
-        slash if STRICT_SERVLET_COMPLIANCE flag is set to true. This mimics the
-        behavior of 6.0.15 and earlier. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44021">44021</a>: Add support for using the # character to define
-        multi-level contexts in WARs and directories in the appBase. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44282">44282</a>: Fix TRACE level class loader logging message when a
-        security manager is used. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44337">44337</a>: Dir listing crashes if no readme-file present.
-        (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        If listener declared in web.xml, only add it once. (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix NPE when iterating through sessions for expiration. (fhanik/jim)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44380">44380</a>: Don't scan non-file URLs for TLDs. Patch provided by
-        Florent Benoit. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44389">44389</a>: Fix memory leak that occurred if using a
-        RequestDispatcher. Patch provided by Arto Huusko. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44529">44529</a>: Correct handling of resource constraints so no roles
-        (deny all) overrides no aoth-constraint (allow all). (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44562">44562</a>: HEAD requests cannot use includes. Patch provided by
-        David Jencks. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44595">44595</a>: Add possibility to request the QueueSize of an
-        executor via JMX. (jfclere)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix CGI Servlet so it correctly reads the environment variables on
-        Vista. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44611">44611</a>: DirContextURLConnection didn't implement
-        getHeaderFields(), getHeaderField(String name) was case sensitive and
-        returned "" rather than null for header values that did not exist. Patch
-        provided by Chris Hubick. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44633">44633</a>: Provide a more helpful error message if a class can't
-        be loaded due to a version error. (rjung/markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44646">44646</a>: Correct various issues, including an ISE, in
-        CometConnectionManagerValve. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44673">44673</a>: ServletInputStream is no longer readable once closed.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Better handling of lack of permission for context specific logging.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add permission required to read JDK logging config. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Update web.xml to reflect packaging of SSI and CGI. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add missing access check for ThreadWithAttributes. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44833">44833</a>: Correctly override StandardSession methods from
-        DeltaSession. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44943">44943</a>: Use the same engine name in server.xml comments to
-        reduce copy and pastes issues. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44988">44988</a>: Use Java5 syntax for debug options. Patch provided
-        by C&eacute;drik Lime. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45101">45101</a>: Format header dates obtained from
-        <code>DirContextURLConnection</code> as per the HTTP spec. Patch
-        provided by Chris Hubick. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        A new valve, <code>org.apache.catalina.valves.WebdavFixValve</code>,
-        that forces MS clients connecting to the WebDAV Servlet on port 80 to
-        use a client that works rather than the default broken one. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45195">45195</a>: Passing in null into setAttribute or removeAttribute
-        cause NPE. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.17 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.17_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        NIO: Fix bug in NIO sendfile, symptoms during heavy traffic is that
-        connection don't get closed. For previous versions, one can disable
-        sendfile to work around the problem. (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        APR: Allow to specify the "random device" to use to collect the entropy.
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=43642">43642</a>: Add prestartminSpareThreads attribute for Executor.
         (jfclere)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Fix NIO/SSL live lock during client disconnect. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix possible ArrayIndexOutOfBoundsException. Patch provided by Charles R
-        Caldarale. (markt/jim)
+        Switch from AnnotationProcessor to InstanceManager. Patch provided by
+        David Jecks with modifications by Remy. (remm/fhanik)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Add support for keystore types that do not need a file. Based on a patch
-        by Bruno Harbulot. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43094">43094</a>: Allow specification of keystore providers. Based on a
-        patch by Bruno Harbulot. (markt)
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=620845">r620845</a> and <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=669119">r669119</a>. Make shutdown address
+        configurable. (jfclere)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43191">43191</a>: Make it possible to override the defaults with the
-        compressableMimeType attribute. Based on a patch by Len Popp. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44391">44391</a>: Correct handling of escaped values in SSI processing.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44392">44392</a>: HTML entities now handled correctly in SSI processing.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44558">44558</a>: Improve error message so address is included if
-        binding fails. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44494">44494</a>: Character input limited to 8KB. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44620">44620</a>: Infinite loop in NIO connector. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44785">44785</a>: Correctly document default maxThreads for AJP
-        connector. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Log errors for AJP signoffs at DEBUG level,
-        since it is harmless if mod_jk has hung up the phone. (billbarker)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44968">44968</a>: Provide more information when the load of a keystore
-        fails. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.17 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.17_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=31257">31257</a>: Quote endorsed dirs if they contain a space. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42943">42943</a>: Make sure nested element is inside &lt;jsp:text&gt;
-        element before throwing exception. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43617">43617</a>: Correctly escape attribute values in tag files.
-        Based on a patch by Lucas Galfaso. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43656">43656</a>: Fix various numeric coercion bugs. Includes a patch by
-        Nils Eckert and fixes related issues identified in a test case provided
-        by Konstantin Kolinko. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43741">43741</a>: Correctly handle dependencies for tag files in JARs.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44408">44408</a>: Reduce synchronisation when evaluating EL expressions.
-        Patch provided by Robert Andersson. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44428">44428</a>: Fix possible NPE during serialization. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44766">44766</a>: EL doesn't coerce custom Number subclasses. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44877">44877</a>: Prevent collisions on tag pool names. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44986">44986</a>: Make page encoding consistency checks
-        case-insensitive. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44994">44994</a>: Enable nested conditional expressions in JSP EL. Patch
-        provided by James Manger. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45015">45015</a>: You can't use an unescaped quote if you quote the
-        value with that character. (markt/fhanik)
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=651977">r651977</a> Add some missing control checks to
+        <code>ThreadWithAttributes</code>. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add HTML filtering of error messages for included resources in case the
-        app has tried to include an unsafe URL that does not exist. This is
-        really an app responsibility but the filtering has been added for XSS
-        safety. (markt)
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=677640">r677640</a> Add a startup class that does not require any
+        configuration files. (costin)
       </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.17 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.17_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update documentation to use correct version number, correct file paths
-        and to use $CATALINA_BASE rather than $CATALINA_HOME where applicable.
-        (markt/jim)
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=700532">r700532</a> Log if temporary file operations within the CGI
+        servlet fail. Make sure header Reader is closed on failure. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=708541">r708541</a> Delete references to DefaultContext which was removed
+        in 6.0.x. (markt)
       </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add a section on available system property configuration options.
-        (markt)
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=709018">r709018</a> Initial implementation of an asynchronous file handler
+        for JULI. (fhanik)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Amend the JNDI datasource doc to reflect new value for no limit used by
-        updated commons-pool and commons-DBCP. (markt)
+        Give session thisAccessedTime and lastAccessedTime clear semantics.
+        (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Expose thisAccessedTime via Session interface. (rjung)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Provide a log format for JULI that provides the same information as the
+        default but on a single line. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=723889">r723889</a> Provide the ability to configure the Executor job
+        queue size and a timeout for adding jobs to the queue. (fhanik)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for aliases to StandardContext. This allows content from
+        other directories and/or WAR files to be mapped to paths within the
+        context. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Provide clearer definition of Lifecycle interface, particularly start
+        and stop, and align components that implement Lifecycle with this
+        definition. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48662">48662</a>: Provide a new option to control the copying of context
+        XML descriptors from web applications to the host's xmlBase. Copying of
+        XML descriptors is now disabled by default. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43333">43333</a>: Fix errors in sendfile documentation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43366">43366</a>: Provide backwards compatibility for manager sessions
-        command. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44541">44541</a>: Document packetSize attribute for AJP connector.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44715">44715</a>: Document secret attribute for AJP connector. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix some links in the ROOT application that are broken if ROOT is
-        renamed. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Align the Realm documentation so that both the configuration and the
-        how-to are consistent. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45277">45277</a>: Fix typo in logging docs. (markt)
+        Move comet classes from the org.apache.catalina package to the
+        org.apache.catalina.comet package to allow comet to work under a
+        security manager. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.17 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.17_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.0 (markt)/Coyote"><!--()--></a><a name="Tomcat_7.0.0_(markt)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45212">45212</a>: AbstractReplicatedMap.entrySet() now returns entries
-        rather than vaules. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=45279">45279</a>: Properly close multicast socket.</td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Fix session replication dead lock during non sticky load balancing.
+        Port SSLInsecureRenegotiation from mod_ssl. This requires
+        to use tomcat-native 1.2.21 that have option to detect this
+        support from OpenSSL library. (mturk)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Allow bigger AJP packets also for request bodies and responses
+        using the packetSize attribute of the Connector. (rjung)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td><a href="http://svn.apache.org/viewvc?view=rev&amp;rev=703017">r703017</a> Make Java socket options consistent between NIO
+        and JIO connector. Expose all the socket options available on
+        <code>java.net.Socket</code> (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=46051">46051</a>: The writer returned by <code>getWriter()</code> now
+        conforms to the <code>PrintWriter</code> specification and uses platform
+        dependent line endings rather than always using <code>\r\n</code>.
+        (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Use tc-native 1.2.x which is based on APR 1.3.3+ (mturk)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=724239">r724239</a> NIO connector now always uses an Executor. (fhanik)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=724393">r724393</a> Implement keepAliveCount for NIO connector in a thread
+        safe manner. (fhanik)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=724849">r724849</a> Implement keep alive timeout for NIO connector.
         (fhanik)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.17 (remm)/Other"><!--()--></a><a name="Tomcat_6.0.17_(remm)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.0 (markt)/Jasper"><!--()--></a><a name="Tomcat_7.0.0_(markt)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update JSP support to the JSP 2.2 specification. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        Update EL support to the EL 2.2 specification. (markt)
+      </td></tr>
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=787978">r787978</a> Use "1.6" as the default value for compilerSourceVM
+        and compilerTargetVM options of Jasper. (kkolinko)
+      </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Improve the Tests for unit tests for the cookie issues. (jfclere)
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48358">48358</a>: Add support for limiting the number of JSPs that are
+        loaded at any one time. Based on a patch by Isabel Drost. (markt)
       </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix build for JavaDoc. Patch provided by Stephen Bannasch. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44955">44955</a>: Use correct location for endorsed directory in Windows
-        installer. (markt)
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        <a href="http://bz.apache.org/bugzilla/show_bug.cgi?id=48689">48689</a>: Access TLD files through a new JarResource interface
+        to make extending Jasper simpler, particularly in OSGi environments.
+        Patch provided by Jarek Gawor. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.16 (remm)"><!--()--></a><a name="Tomcat_6.0.16_(remm)"><strong>Tomcat 6.0.16 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2008-02-08</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.16 (remm)/General"><!--()--></a><a name="Tomcat_6.0.16_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="High Availability"><!--()--></a><a name="High_Availability"><strong>High Availability</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add support for UDP and secure communication to tribes. (fhanik)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add versioning to the tribes communication protocol to support future
+        developments. (fhanik)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Add a demo on how to use the payload. (fhanik)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        Started to add JMX support to the cluster implementation. (markt)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=609778">r609778</a> Minor fixes to the throughput interceptor and the
+        NIO receiver. (fhanik)
+      </td></tr>
+      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=630234">r630234</a> Additional checks for the NIO receiver. (fhanik)
+      </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update commons-logging to version 1.1.1 and the NSIS installer to 2.34.
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=671650">r671650</a> Improve error message when multicast is not enabled.
+        (fhanik)
+      </td></tr>
+    </table>
+  </blockquote></td></tr></table>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.0 (markt)/Web applications"><!--()--></a><a name="Tomcat_7.0.0_(markt)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
+     <table border="0" cellpadding="2" cellspacing="2">
+      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
+        <a href="http://svn.apache.org/viewvc?view=rev&amp;rev=631321">r631321</a> Update changelog to support the &lt;rev&gt; element
+        in the documentation. (fhanik)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        A number of additional roles were added to the Manager and Host Manager
+        applications to separate out permissions for the HTML interface, the
+        text interface and the JMX proxy. (markt)
+      </td></tr>
+      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
+        CSRF protection was added to the Manager and Host Manager applications.
         (markt)
       </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update to commons-pool version 1.4, native version 1.1.12 and update
-        the download location for the commons libraries. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Change chunked input parsing, always parse CRLF directly after a chunk has been
-        received, except if data is not available. If data is not available for CRLF
-        parsing, we run into BZ 11117, and must defer the parsing of CRLF to the next read event.
-        This fixes the incorrect blocking when using CometProcessor and the draining data during the READ event
-        where it before would block incorrectly waiting for the next chunk (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        The CometProcessor interface now extends the javax.servlet.Servlet interface(fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix CVE-2007-5342 by limiting permissions granted to JULI. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Fix handling of CometEvent.close when called during BEGIN event (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43594">43594</a>: Use setenv from CATALINA_BASE (if set) in preference
-        to the one in CATALINA_HOME. Patch provided by Shaddy Baddah.
-        (markt/jim)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43692">43692</a>: Clean up unused entries from build scripts. Patch
-        provided by Paul Shemansky. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43775">43775</a>: Don't try to change line endings of binary files in
-        the source distribution. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43846">43846</a>:
-        Fix block simulated read and writes causing timeouts.
-        Add non blocking parsing of HTTP request headers.
-        Perf improvements(fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43957">43957</a>: Service.bat doesn't configure logging correctly. Patch
-        provided by  Richard Fearn. (markt/jim)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Cookie handling/parsing changes!
-        The following behavior has been changed with regards to Tomcat's cookie handling
-        a) Cookies containing control characters, except 0x09(HT), are rejected using an InvalidArgumentException <br>
-        b) If cookies are not quoted, they will be quoted if they contain tspecials(ver0), tspecials2(ver1) characters<br>
-        c) Escape character '\\' is allowed and respected as a escape character, will be unescaped during parsing
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Cookie parsing of $Version regression from 6.0.15 has been fixed
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        The script that builds the windows installer was including additional
-        files due to the way it processes recurrsive file selectors. The
-        selectors have been modified to only include the intended files. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.16 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.16_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix ManagerServlet.expireSessions throws Exceptions as iterate longer
-        session lists at production servers. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38131">38131</a>: WatchedResource doesn't work if app is outside host appbase webapps.
-        Patch provided by Peter Lynch (pero)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>Add -Dorg.apache.catalina.tribes.dns_lookups=false as default. The ability to turn off reverse DNS lookups for membership.(fhanik)</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Set correct StandardManager.sessionCounter after reload/restart. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42503">42503</a>: ServletContext.getResourceAsStream() could return
-        stale data. Patch provided by Arvind Srinivasan. (funkman/jim)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43236">43236</a>: When resetting the response, also reset the flags
-        associated with using a writer or an output stream to allow the user to
-        change character set after the reset. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43241">43241</a>: Make ServletContext.getResourceAsStream() conform to
-        the specification. Patch provided by John Kew. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43530">43530</a>: doc link fixes provided by  Paul Shemansky (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43675">43675</a>: Fix a possible logging related classloader leak.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43687">43687</a>: Remove conditional headers on Form Auth replay,
-           since the UA (esp. FireFox) isn't expecting it.
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43706">43706</a>: WebDAV copy/move now returns 201 on success. Based on
-        a patch by Panagiotis Astithas. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43840">43840</a>: Include user principal if possible when serializing /
-        de-serializing sessions. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43868">43868</a>: MBean methods getInvoke and getSetter were broken.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43887">43887</a>: Make error messages much more helpful when illegal
-        Servlet names are used. Based on a patch provided by Mike Baranczak.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix a bug that causes CGI Servlet to fail when it is included. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Improve the webDAV Servlet Javadocs to make clear that the WebDAV
-        Servlet can not be used as the default servlet. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43993">43993</a>: mime mapping for WS-Policy. Patch by Fabian Ritzmann  (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44041">44041</a>: Fix duplicate class definition under load. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44084">44084</a>: JASSRealm was broken for application provided
-        Principals. Patch provided by Noah Levitt. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44223">44223</a>: Use the javax.net.ssl.trustStoreType setting if no
-        explicit connector configuration is provided and the property is set.
-        (markt/jim)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44268">44268</a>: Log a warning if a duplicate listener configuration is
-        ignored. (markt/jim)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.16 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.16_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43622">43622</a>: Don't overwrite the min compression size set by the
-        compression attribute with the default. (markt/jim)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43839">43839</a>: URL based session tracking failed when a session
-        cookie from a parent context was present. Based on a patch by Yuan
-        Qingyun. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43914">43914</a>: URLs in location headers should be encoded. Patch
-        provided by Ivan Todoroski. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.16 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.16_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43285">43285</a>: Missing EL Coercion causes argument type mismatch.
-        Patch provided by Bernhard Huemer. (funkman/jim)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43675">43675</a>: Fix a possible logging related classloader leak.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43702">43702</a>: Inner class files have unnecessarily long names.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43743">43743</a>: Fix NPE when compiling nest tag files packaged in a
-        JAR. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43757">43757</a>: Rather than use string matching to work out the line
-        in the JSP with the error, use the SMAP info and the knowledge that for
-        a scriptlet there is a one to one line mapping. (markt/jim)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43758">43758</a>: Fix NPE when scripting elements are empty. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43909">43909</a>: Make sure locale maps to wrapped ELContext. Patch
-        provided by Tuomas Kiviaho. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43944">43944</a>: Fix a missing resource exception. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve docs for Jasper configuration. Put options in alphabetcial
-        order, add some missing options, deprecate an unused one and address
-        feedback about the page provided on the users list.
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.16 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.16_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43173">43173</a>: Fix typo in logging documentation regarding location
-        of logging.properties. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43344">43344</a>: Fix typo in if.jsp example. Patch provided by Tim
-        Nowaczyk. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43468">43468</a>: Fix possible NPE when listing contexts in the Manager
-        application. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43515">43515</a>: Fix bug in Manager application that may have caused
-        problems when listing contexts. Patch provided by Lucas Galfaso. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43611">43611</a>: Provide an error message if user tries to upload a war
-        for a context defined in server.xml rather than failing silently.
-        (markt/jim)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43800">43800</a>: Make relationship between APR and the native connector
-        clearer. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44088">44088</a>: Fix expire session button in manager. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=44094">44094</a>: Add a note about the side effects of configuring a
-        context as privileged. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update JNDI documentation to refer to configuring contexts via
-        context.xml rather than server.xml. (markt/jim)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-   <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.16 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.16_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix FarmWarDeployer can be only configured as host subelement (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix wrong &amp;&amp; at ReplicationValve (pero)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Add get/set methods for properties in the Tcp Failure detector.
-        (fhanik/jim)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.15 (remm)"><!--()--></a><a name="Tomcat_6.0.15_(remm)"><strong>Tomcat 6.0.15 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.15 (remm)/General"><!--()--></a><a name="Tomcat_6.0.15_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>Fix the MD5 file contents in distribution</td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Add ANT script to be able to publish signed Tomcat JAR's to ASF Maven repo (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Use Eclipse JDT 3.3.1. (pero)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.15 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.15_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>Guess java location from the PATH environment and improve fix for 37284</td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>Add NIO connector to server.xml parsing warning, remove Connector as exception case</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43653">43653</a>: Fix SSL buffer mixup when response is unable to write more than socket buffer can handle</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43643">43643</a>: If connector doesn't support external executor, display warning</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43641">43641</a>: Property bind multicast address for cluster membership</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42693">42693</a>: Fix JSP compiler bug</td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>Add mbean descriptor for virtual webapp loader</td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td><a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43487">43487</a>:
-        Fix request processing stats
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43435">43435</a>: Don't iterate and relocate sessions if they are not part of the map.
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43356">43356</a>: Keystore parameter is relative to CATALINA_BASE,
-        Truststore is either defined as parameter, javax.net.ssl.trustStore or if empty
-        defaults to the keystore.
-        SSL Client cert authentication changed from boolean to "true|false|want" (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=30949">30949</a>: Improve previous fix. Ensure requests are re-cycled
-        on cross-context includes and forwards when an exception occurs in the
-        target page. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42944">42944</a>: Correctly handle servlet mappings that use a '+'
-        character as part of the url pattern. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42951">42951</a>: Don't use CATALINA_OPTS when stopping Tomcat. This
-         allows options for starting and stopping to be set on JAVA_OPTS and
-         options for starting only to be set on CATALINA_OPTS. Without this
-         fix, some startup options (eg the port for remote JMX) would cause
-         stop to fail. Based on a fix suggested by Michael Vorburger.
-         Port of r454193 (<a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=36976">36976</a>) from Tomcat 5.5.x. (markt,rjung)
-      </td></tr>
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-         Validation of attributes and elements used in server.xml. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43175">43175</a>: Fix typos in servlet XSD files. Patch provided by
-        Takayuki Kaneko. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43216">43216</a>: Set correct StandardSession#accessCount as StandardSession.ACTIVITY_CHECK is true.
-        Patch provided by Takayuki Kaneko (pero)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Made session createTime accessible for all SessionManager via JMX (pero)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43129">43129</a>: Support logging of all response header values at AccessLogValve (ex. add %{Set-Cookie}o to your pattern). (pero)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Support logging of all response header values at ExtendedAccessLogValve (ex. add x-O(Set-Cookie) to your pattern). (pero)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Support logging of current thread name at AccessLogValve (ex. add %I to your pattern).
-        Usefull to compare access logging entry later with a stacktraces. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Improve large-file support (more then 4 Gb) at all AccessLogValves, backport from 5.5.25. (pero)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Optimized JDBCAccessLogValve combined pattern request attribute access. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        o.a.juli.ClassLoaderLogManager handle more then one system property replacement at file logging.properties. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43338">43338</a>: Support '*' servlet-name mapping at filter-mapping.
-        Patch provided by Keiichi Fujino. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41797">41797</a>: CNFE/NPE thrown from function mapper when externalizing
-        Patch by Tuomas Kiviaho- tuomas.kiviahos at ikis fi (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43453">43453</a>: ClassCastException at
-        org.apache.catalina.core.StandardContext.findStatusPage(int)
-         (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix important vulnerability when webdav is enabled for write. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Call stopAwait in StandardServer.stop if port == -1. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43668">43668</a>: Fix NPE when the outer most wrapper is a ServletRequest/ResponseWrapper, but not a HttpServletRequest/ResponseWrapper on a Forward. (billbarker)
+        List array elements in the JMX proxy output of the Manager application.
+        (rjung)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.15 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.15_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Harmonize with HTTP java.io code. Otherwise the socket is not closed.
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        In the APR connector, start accepting connections after fully starting
-        the connector, to prevent possible exceptions due to non initialized fields. (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Cookie parser refactoring, submitted by John Kew. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make cookie escaping / unescaping consistent. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43479">43479</a>: Memory leak cleaning up sendfile connections, submitted by Chris Elving. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42925">42925</a>: Add maintain for sendfile. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix explicit flush before response commit in the org.apache.jk AJP connector. (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=43621">43621</a>: Fix possible Dos condition when using the experimental NIO/AJP Connector (billbarker)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.15 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.15_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37326">37326</a>: No error reported when an included page does not
-        exist. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.15 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.15_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix WebDAV Servlet so it works correctly with MS clients. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix CVE-2007-5461, an important information disclosure vulnerability in
-        the WebDAV Servlet. Based on a patch by Marc Schoenefeld. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42979">42979</a>: Update sample.war to include recent security fixes
-        in the source code. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Minor connector doc fix. (jfclere)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-   <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.15 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.15_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Set correct BioReceiver transfer buffer size. (pero)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.15 (remm)/Other"><!--()--></a><a name="Tomcat_6.0.15_(remm)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.0 (markt)/Extras"><!--()--></a><a name="Tomcat_7.0.0_(markt)/Extras"><strong>Extras</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-         Tests for unit tests for the cookie issues. (jfclere)
+        A new JmxRemoteLifecycleListener that can be used to fix the ports used
+        for remote JMX connections, eg when using JConsole. (markt)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.14 (remm)"><!--()--></a><a name="Tomcat_6.0.14_(remm)"><strong>Tomcat 6.0.14 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2007-08-13</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.14 (remm)/General"><!--()--></a><a name="Tomcat_6.0.14_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="docs" class="icon" src="./images/docs.gif"></td><td>
-        Correct j.u.l log levels in JULI docs. (rjung)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.14 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.14_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
+  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 7.0.0 (markt)/Other"><!--()--></a><a name="Tomcat_7.0.0_(markt)/Other"><strong>Other</strong></a></font></td></tr><tr><td><blockquote>
     <table border="0" cellpadding="2" cellspacing="2">
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Handle special case of ROOT when re-loading webapp after ROOT.xml has
-        been modified. In some circumstances the reloaded ROOT webapp had no
-        associated resources. (markt)
+        Numerous code clean-up changes including the use of generics and
+        removing unused imports, fields, parameters and methods. (markt)
       </td></tr>
       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove invalid attribute "encoding" of MBean MemoryUserDatabase,
-        which lead to errors in the manager webapp JMXProxy output. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=33774">33774</a>: Retry JNDI authentiction on ServiceUnavailableException
-        as at least one provider throws this after an idle connection has been
-        closed. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39875">39875</a>: Fix BPE in RealmBase.init(). Port of yoavs's fix from
-         Tomcat 5. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41722">41722</a>: Make the role-link element optional (as required by
-        the spec) when using a security-role-ref element. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42361">42361</a>: Handle multi-part forms when saving requests during
-         FORM authentication process. Patch provided by Peter Runge. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42401">42401</a>: Update RUNNING.txt with better JRE/JDK information.
-         (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42444">42444</a>: prevent NPE for AccessLogValve
-         Patch provided by Nils Hammar (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42449">42449</a>:
-         JNDIRealm does not catch NullPointerException for Sun's
-         LDAP provider (See bug for details) (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42497">42497</a>: Ensure ETag header is present in a 304 response.
-         Patch provided by Len Popp. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix XSS security vulnerability (CVE-2007-2450) in the Manager and Host
-        Manager. Reported by Daiki Fukumori. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42547">42547</a>: Fix NPE when a ResourceLink in context.xml tries to
-        override an env-entry in web.xml. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Avoid some casting in ErrorReportValve (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix persistence API annotation, submitted by Bill Burke (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        In Comet mode, if bytes are not read, send an error event (otherwise,
-        fields referring to the connection could remain) (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix Comet when running Tomcat with the security manager (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.14 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.14_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39425">39425</a>: Add additional system property permission to
-        catalina.policy for pre-compiled JSPs. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42438">42438</a>: Duplicate temporary variables were created when
-        jsp:attribute was used in conjunction with custom tags. Patch provided
-        by Brian Lenz. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42643">42643</a>: Prevent creation of duplicate JSP function mapper
-        variables. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.14 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.14_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Separate sequence increment from getter in ThreadPool to avoid
-        misleading increments during monitoring via JMX. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add back missing socketBuffer attribute in the java.io HTTP connector (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.14 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.14_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Don't write error on System.out, use log() instead. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39813">39813</a>: Correct handling of new line characters in JMX
-        attributes. Patch provided by R Bramley. Ported from tc5.5.x r415029. (markt,rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42459">42459</a>: Fix Tomcat Web Application Manager table error. (rjung)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix XSS security vulnerabilities (CVE-2007-2449) in the examples.
-        Reported by Toshiharu Sugiyama. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.13 (remm)"><!--()--></a><a name="Tomcat_6.0.13_(remm)"><strong>Tomcat 6.0.13 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2007-05-15</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.13 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.13_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         More accurate available() method. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Add recycle check in the event object, since it is a facade like the others. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         When processing a read event, enforce that the servlet consumes all available bytes. (remm)
+        All deprecated internal code has been removed. <b>Warning:</b> If you
+        have custom components for a previous Tomcat version that extend
+        internal Tomcat classes and override deprecated methods it is highly
+        likely that they will no longer work. (markt)
       </td></tr>
       <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-         Add a flag in ContainerBase which could be used in embedded scenarios to avoid a double start
-         of contexts (this problem generally occurs when adding contexts to a started host). (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42309">42309</a>: Ability to create a connector using a custom protocol specification for embedded.
-         (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Add SSL engine flag to AprLifecycleListener. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Improve event processing, so that an END event is generated when encountering EOF, and an
-         ERROR is always generated on client disconnects. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Add declarations for the new XSD files. (remm)
+        Parameterize version number throughout build scripts and source. (rjung)
       </td></tr>
     </table>
   </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.13 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.13_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Add heartbeatBackgroundEnabled flag to SimpleTcpCluster.
-         Enable this flag don't forget to disable the channel heartbeat thread (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Possible memory leak when using comet, caused by adding the socket to the poller before
-         cleaning up the connection tracking structure. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42308">42308</a>: nextRequest recycles the request, which caused issues with statistics. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Fix non recycled comet flag in the APR connector. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.13 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.13_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Add heartbeatBackgroundEnabled flag to SimpleTcpCluster.
-         Enable this flag don't forget to disable the channel heartbeat thread (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Method name cleanup. (fhanik)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.13 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.13_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Some examples webapp fixes. Submitted by Frank McCown. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.12 (remm)"><!--()--></a><a name="Tomcat_6.0.12_(remm)"><strong>Tomcat 6.0.12 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.12 (remm)/General"><!--()--></a><a name="Tomcat_6.0.12_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        License source headers. Submitted by Niall Pemberton. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.12 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.12_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42039">42039</a>: Log a stack trace if a servlet throws an
-         UnavailableException. Patch provided by Kawasima Kazuh. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41990">41990</a>: Add some additional mime-type mappings. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41655">41655</a>: Fix message translations. Japanese translations
-        provided by Suzuki Yuichiro. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add enabled attribute to AccessLogValve (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42085">42085</a>: Avoid adding handlers for the root logger twice when they are explicitly
-        specified. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Reduce thread local manipulation in the request dispatcher. Submitted by
-        Arvind Srinivasan. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Avoid keeping references to loggers tied to the webapp classloaders after a reload in
-        a couple more places. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42202">42202</a>: Fix container parsing of TLDs in webapps when Tomcat is installed in
-        a URL encodable path. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.12 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.12_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42119">42119</a>: Fix return value for request.getCharacterEncoding() when
-        Content-Type headers contain parameters other than charset. Patch by
-        Leigh L Klotz Jr. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Move away from using a thread local processor for the APR and java.io
-        connectors, as this does not work well when using an executor. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove Comet timeout hack in the APR connector. Comet connections will now
-        use the regular timeout or the keepalive timeout if specified. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.12 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.12_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42025">42025</a>: Update valve documentation to refer to correct regular
-        expression implementation. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix various paths in the manager webapps (remm)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Session viewer and editor for the HTML manager. Submitted by C&eacute;drik Lime. (remm)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Session handling tools for the manager. Submitted by Rainer Jung. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.12 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.12_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41869">41869</a>: TagData.getAttribute() should return
-        TagData.REQUEST_TIME_VALUE when the attribute value is an EL expression.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42071">42071</a>: Fix IllegalStateException on multiple requests to
-        an unavailable JSP. Patch provided by Kawasima Kazuh. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        After a JSP throws an UnavailableException allow it to be accessed once
-        the unavailable period has expired. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.12 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.12_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-         Add toString method to better logging session replication message at tribes MESSAGES (pero)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.11 (remm)"><!--()--></a><a name="Tomcat_6.0.11_(remm)"><strong>Tomcat 6.0.11 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.11 (remm)/General"><!--()--></a><a name="Tomcat_6.0.11_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update DBCP to 1.2.2, pool to 1.3, JDT to 3.2.2 and remove collections
-        build dependency (pero, remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.11 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.11_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Don't log pattern subtoken at ExtendedAccesLogValve (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add some missing JMX attributes for new AccessLogValve (pero)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41786">41786</a>: Incorrect reference to catalina_home in catalina.sh/bat Patch provided by Mike Hanafey (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41703">41703</a>: SingleSignOnMessage invalid setter, patch provided by Nils Hammar (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41682">41682</a>: ClassCastException when logging is turned on (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41530">41530</a>: Don't log error messages when connector is stopped (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41166">41166</a>: Invalid handling when using replicated context (fhanik)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Added SENDFILE support for the NIO connector. (fhanik) <br>
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Added support for shared thread pools by adding in the &lt;Executor&gt;
-        element as a nested element to the &lt;Service&gt; element. (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41666">41666</a>: Correct handling of boundary conditions for
-        If-Unmodified-Since and If-Modified-Since headers. Patch provided by
-        Suzuki Yuichiro. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41739">41739</a>: Correct handling of servlets with a load-on-startup
-        value of zero. These are now the first servlets to be started. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41747">41747</a>: Correct example ant script for deploy task. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41752">41752</a>: Correct error message on exception in MemoryRealm.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39883">39883</a>: Add documentation warning about using antiResourceLocking
-        on a webapp outside the Host's appBase. (yoavs)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40150">40150</a>: Ensure user and roll classnames are validated on startup.  Patch by
-          Tom. (yoavs)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Refactor extend access log valve using the optimized access log valve. Submitted by
-        Takayuki Kaneko. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Possible deadlock in classloading when defining packages. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove excessive syncing from listener support. (remm)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Web services support. The actual factory implementations are implemented in the
-        extras. Submitted by Fabien Carrion. (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Add logging to display APR capabilities on the platform. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Expose executors in JMX. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        CRLF inside a URL pattern is always invalid. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Tweak startup time display. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Adjustments to handling exceptions with Comet. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        If the event is closed asynchronously, generate an end event for cleanup on the
-        next event. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Cleanup hello webapp from the docs and fix a XSS issue in the JSP.  (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Examples webapp cleanup. Submitted by Takayuki Kaneko and Markus Sch&ouml;nhaber. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41289">41289</a>: Create configBase, since it is no longer created elsewhere.
-        Submitted by Shiva Kumar H R. (remm)
-      </td></tr>
-     </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.11 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.11_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Fixed NIO memory leak caused by the NioChannel cache not working properly.
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Added flag to enable/disable the usage of the pollers selector instead of a Selector pool
-        when the serviet is reading/writing from the input/output streams
-        The flag is <code>-Dorg.apache.tomcat.util.net.NioSelectorShared=true</code>
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Requests with multiple content-length headers are now rejected. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41675">41675</a>: Add a couple of DEBUG-level logging statements to Http11Processors
-          when sending error responses.  Patch by Ralf Hauser. (yoavs)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Reuse digester used by the modeler. (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        When the platform does not support deferred accept, put accepted sockets in the
-        poller. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix problem with blocking reads for keepalive when using an executor (the number
-        of busy threads is always 0). (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        The poller now has good performance, so remove firstReadTimeout. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=42119">42119</a>: Fix return value for request.getCharacterEncoding() when
-        Content-Type headers contain parameters other than charset. Patch by
-        Leigh L Klotz Jr. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.11 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.11_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix previous update to servlet 2.5 xsd to use correct declaration.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update host configuration document for new behaviour for directories
-        in appBase. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39540">39540</a>: Add link to httpd 2.2 mod_proxy_ajp docs in AJP connector doc. (yoavs)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.11 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.11_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41227">41227</a>: Add a bit of DEBUG-level logging to JspC so users know
-          which file is being compiled. (yoavs)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Remove some dead utility code, and refactor stream capture as part of the Ant compiler. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Support the trim directive of JSP 2.1 as an equivalent of Jasper's own parameter. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41790">41790</a>: Close file stream used to read the Java source. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix reporting of errors which do not correspond to a portion of the JSP source. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove try/catch usage for annotation processing in classic tags. The usage
-        of the log method might have been questionable as well. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Cleanup of the message that is displayed for compilation errors. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Skip BOM when reading a JSP file. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
- </blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.10 (remm)"><!--()--></a><a name="Tomcat_6.0.10_(remm)"><strong>Tomcat 6.0.10 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>released 2007-02-28</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.10 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.10_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Unify usage of security manager flag, submitted by Arvind Srinivasan. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix formatting of CGI variable SCRIPT_NAME. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41521">41521</a>: Support * for servlet-name, submitted by Paul McMahan. (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Cache getServletContext value, submitted by Arvind Srinivasan. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add options for handling special URL characters in paths, and disallow '\' and encoded '/'
-        due to possible differences in behavior between Tomcat and a front end webserver. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix bad comparison for FORM processing, submitted by Anil Saldhana. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41608">41608</a>: Make log levels consistent when Servlet.service()
-        throws an exception. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.10 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.10_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Reduce usage of MessageBytes.getLength(), submitted by Arvind Srinivasan. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.10 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.10_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41558">41558</a>: Don't call synced method on every request, submitted by Arvind Srinivasan. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Switch to a thread local page context pool. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.9 (remm)"><!--()--></a><a name="Tomcat_6.0.9_(remm)"><strong>Tomcat 6.0.9 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>beta, 2007-02-08</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.9 (remm)/General"><!--()--></a><a name="Tomcat_6.0.9_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use 2.5 xsd in Tomcat webapps. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Compression filter improvements, submitted by Eric Hedstr&ouml;m. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.9 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.9_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Properly return connector names. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Remove logging of the XML validation flag. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Correct error messages for context.xml. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41217">41217</a>: Set secure flag correctly on SSO cookie, submitted by
-        Chris Halstead. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40524">40524</a>: request.getAuthType() now returns CLIENT_CERT rather
-        than CLIENT-CERT. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40526">40526</a>: Return support for JPDA_OPTS to catalina.bat and add
-        a new option JPDA_SUSPEND, submitted by by Kurt Roy. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41265">41265</a>: In embedded, remove the code that resets checkInterval
-        values of zero to 300. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.9 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.9_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37869">37869</a>: Fix getting client certificate, submitted by Christophe Pierret. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40960">40960</a>: Throw a timeout exception when getting a timeout rather than a
-        generic IOE, submitted by Christophe Pierret. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.9 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.9_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        EL validation fixes for attributes. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41327">41327</a>: Show full URI for a 404. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        JspException now uses getCause() as the result for getRootCause(). (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.9 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.9_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41466">41466</a>: When using the NioChannel and SecureNioChannel its
-        important to use the channels buffers. (fhanik)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.8 (remm)"><!--()--></a><a name="Tomcat_6.0.8_(remm)"><strong>Tomcat 6.0.8 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>alpha</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.8 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.8_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Make provided instances of RequestDispatcher thread safe. (markt)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Optional development oriented loader implementation. (funkman)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Optimized access log valve, submitted by Takayuki Kaneko. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix error messages when parsing context.xml that incorrectly referred to
-        web.xml. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41217">41217</a>: Set secure attribute on SSO cookie when cookie is
-        created during a secure request. Patch provided by Chris Halstead.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40524">40524</a>: HttpServletRequest.getAuthType() now returns
-        CLIENT_CERT rather than CLIENT-CERT for certificate authentication
-        as per the spec. Note that web.xml continues to use CLIENT-CERT to
-        specify the certificate authentication should be used. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41401">41401</a>: Add support for JPDA_OPTS to catalina.bat and add a
-        JPDA_SUSPEND environment variable to both startup scripts. Patch
-        provided by Kurt Roy. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.8 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.8_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Use the tomcat-native-1.1.10 as recommended version.
-        OpenSSL detection on some platforms was broken 1.1.8 will continue to work,
-        although on some platforms there can be JVM crash if IPV6 is enabled and
-        platform doesn't support IPV4 mapped addresses on IPV6 sockets.
-      </td></tr>
-  </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.8 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.8_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        When displaying JSP source after an exception, handle included files.
-        (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Display the JSP source when a compilation error occurs and display
-        the correct line number rather than start of a scriptlet block. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix NPE when processing dynamic attributes. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        More accurate EL usage validation. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix regression for implicit taglib and page data version numbers. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41265">41265</a>: Allow JspServlet checkInterval init parameter to be
-        explicitly set to the stated default value of zero by removing the
-        code that resets it to 300 if explicitly specified as zero. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41327">41327</a>: Show full URI for a 404. Patch provided by Vijay.
-        (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.8 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.8_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="docs" class="icon" src="./images/docs.gif"></td><td>
-        Add a virtual hosting how-to contributed by Hassan Schroeder. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update all webapps to use the servlet 2.5 xsd. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39572">39572</a>: Improvements to CompressionFilter example provided by
-        Eric Hedstr&ouml;m. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.7 (remm)"><!--()--></a><a name="Tomcat_6.0.7_(remm)"><strong>Tomcat 6.0.7 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>beta, 2007-01-10</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.7 (remm)/General"><!--()--></a><a name="Tomcat_6.0.7_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix installer's bitmap (mturk)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.7 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.7_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Refactor logging of errors which may occur when reading a post body (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.7 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.7_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37869">37869</a>: Also use the SSL_INFO_CLIENT_CERT field if the chain is empty,
-        submitted by Grzegorz Grzybek (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.6 (remm)"><!--()--></a><a name="Tomcat_6.0.6_(remm)"><strong>Tomcat 6.0.6 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>alpha</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.6 (remm)/General"><!--()--></a><a name="Tomcat_6.0.6_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix tagging which did not include 6.0.5's changelog (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.5 (remm)"><!--()--></a><a name="Tomcat_6.0.5_(remm)"><strong>Tomcat 6.0.5 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.5 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.5_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40585">40585</a>: Fix parameterised constructor for o.a.juli.FileHandler
-        so parameters have an effect. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Escape invalid characters from request.getLocale. (markt, remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update required version for native to 1.1.8. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Do not log broken pipe errors which can occur when flushing the content of an error page. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.5 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.5_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix firstReadTimeout behavior for the AJP connector. (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.5 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.5_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41057">41057</a>: Make jsp:plugin output XHTML compliant. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.5 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.5_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Cluster interface cleanup. (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Refactoring to allow usage of executors. (fhanik)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.4 (remm)"><!--()--></a><a name="Tomcat_6.0.4_(remm)"><strong>Tomcat 6.0.4 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>alpha</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.4 (remm)/General"><!--()--></a><a name="Tomcat_6.0.4_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update to NSIS 2.22 (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix regression in 6.0.3 with Windows wrapper (mturk)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.3 (remm)"><!--()--></a><a name="Tomcat_6.0.3_(remm)"><strong>Tomcat 6.0.3 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>not released</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.3 (remm)/General"><!--()--></a><a name="Tomcat_6.0.3_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.3 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.3_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37509">37509</a>: Do not remove whitespace from the end of values
-        defined in logging.properties files. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=38198">38198</a>: Add reference to Context documentation from Host
-        documentation that explains how Context name is obtained from the
-        Context filename. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40844">40844</a>: Missing syncs in JDBCRealm. (markt)
-      </td></tr>
-       <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40901">40901</a>: Encode directory listing output. Based on a patch
-        provided by Chris Halstead. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40929">40929</a>: Correct JavaDoc for StandardClassLoader. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41008">41008</a>: Allow POST to be used for indexed queries with CGI
-        Servlet. Patch provided by Chris Halstead. (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix usage of print on the servlet output stream if the processor never used
-        a writer (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix logic of sameSameObjects used to determine correct wrapping of request and
-        response objects (fhanik)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Update TLD scan lists, and disable caching for now (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Add system property to WebappClassLoader to allow disabling setting references
-        to null when stopping it (remm)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add clustered SSO code, submitted by Fabien Carrion (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.3 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.3_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40860">40860</a>: Log exceptions and other problems during parameter
-        processing. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Enable JMX for trust store attributes for SSL connector. (markt)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Port memory usage reduction changes to the java.io HTTP connector. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        MessageBytes.setString(null) will remove the String value. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41057">41057</a>: Caching large strings is not useful and takes too much
-        memory, so don't cache these (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Add keepAliveTimeout attribute to most connectors (mturk, remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.3 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.3_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Relax EL type validation for litterals. (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Update some version numbers to 2.1. (funkman, remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Add xsds for JSP 2.1 (remm)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=41106">41106</a>: Update validation checks for EL to also include
-        legacy 1.2 tags (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.3 (remm)/Web applications"><!--()--></a><a name="Tomcat_6.0.3_(remm)/Web_applications"><strong>Web applications</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40677">40677</a>: Update SSL documentation to indicate that PKCS11
-        keystores may be used. (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.2 (remm)"><!--()--></a><a name="Tomcat_6.0.2_(remm)"><strong>Tomcat 6.0.2 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>beta, 2006-11-23</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.2 (remm)/General"><!--()--></a><a name="Tomcat_6.0.2_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Various tweaks to distribution (remm, funkman)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update Tomcat native to 1.1.7 (mturk)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Update to JDT 3.2.1 (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.2 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.2_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix EJB annotation interface (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.2 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.2_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        Fix passing of the keystore password for the NIO connector (fhanik)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.1 (remm)"><!--()--></a><a name="Tomcat_6.0.1_(remm)"><strong>Tomcat 6.0.1 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>alpha</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.1 (remm)/General"><!--()--></a><a name="Tomcat_6.0.1_(remm)/General"><strong>General</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37439">37439</a>, <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40823">40823</a>: Documentation cleanup (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.1 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.1_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Refactor exception processing using Throwable.getCause to improve exception chaining (remm)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Remove dead code involving the Logger (funkman)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37458">37458</a>: Fix some exceptions which could happen during classloading (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=40817">40817</a>: Fix CGI path (markt)
-      </td></tr>
-      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
-        <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=34956">34956</a>: Add the possibility to enforce usage of request and response
-        wrapper objects (markt)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.1 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.1_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Many fixes for JSP 2.1 compliance, invloving tag files handling, deferred expressions
-        validation, bom encoding support (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.1 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.1_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Many HTTP NIO connector fixes and refactorings (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        HTTP NIO connector performance improvements (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Add packetSize option for the classic AJP connector (jfclere)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Implement explicit flushing in AJP (mturk)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.0 (remm)"><!--()--></a><a name="Tomcat_6.0.0_(remm)"><strong>Tomcat 6.0.0 (remm)</strong></a></font></td><td align="right" bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><strong>alpha</strong></font></td></tr><tr><td colspan="2"><blockquote>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.0 (remm)/Catalina"><!--()--></a><a name="Tomcat_6.0.0_(remm)/Catalina"><strong>Catalina</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        SSLEngine attribute added to the AprLifecycleListener(fhanik)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Add API for Comet IO handling (remm, fhanik)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Servlet 2.5 support (remm)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.0 (remm)/Jasper"><!--()--></a><a name="Tomcat_6.0.0_(remm)/Jasper"><strong>Jasper</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        JSP 2.1 support (jhook, remm)
-      </td></tr>
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        Unifed EL 2.1 support (jhook)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.0 (remm)/Coyote"><!--()--></a><a name="Tomcat_6.0.0_(remm)/Coyote"><strong>Coyote</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        SSLEnabled attribute required for SSL to be turned on, on all HTTP connectors (fhanik)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Memory usage reduction for the HTTP connectors, except java.io (remm)
-      </td></tr>
-      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
-        Modeler update to use dynamic mbeans rather than model mbeans, which consume more
-        resources (costin)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Tomcat 6.0.0 (remm)/Cluster"><!--()--></a><a name="Tomcat_6.0.0_(remm)/Cluster"><strong>Cluster</strong></a></font></td></tr><tr><td><blockquote>
-    <table border="0" cellpadding="2" cellspacing="2">
-      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
-        New cluster configuration and new documentation (fhanik)
-      </td></tr>
-    </table>
-  </blockquote></td></tr></table>
-</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
-        Copyright &copy; 1999-2014, Apache Software Foundation
+</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
+        Copyright &copy; 1999-2017, Apache Software Foundation
         </em></font></div></td></tr></table></body></html>
\ No newline at end of file
