diff --git a/tomcat-uidm/webapps/docs/changelog.html b/tomcat-uidm/webapps/docs/changelog.html
index ddebb1f..38bb7ec 100644
--- a/tomcat-uidm/webapps/docs/changelog.html
+++ b/tomcat-uidm/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
