<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 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://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>
  <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>
        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://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>
        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>
        <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>
        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>
        <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://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>
        <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>
        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>
        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="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.
        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
        code to have the <code>defineClassInPackage</code> permission when
        running under a security manager. (markt)
      </td></tr>
      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
        Add the <code>org.apache.naming.resources</code> package to the packages
        requiring code to have the <code>accessClassInPackage</code> permission
        when running under a security manager. (markt)
      </td></tr>
      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
        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 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="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>
        <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 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>
        <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>
        <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>
        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>
      <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 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>
        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="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 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="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="code" class="icon" src="./images/code.gif"></td><td>
        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 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>
        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 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 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 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>
        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>
        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://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://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>
        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://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>
        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>
        <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>
        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>
        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:
        Add an option to the Context to control the blocking of XML external
        entities when parsing XML configuration files and enable this blocking
        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>
        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 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>
        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://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://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>
        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>
      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
        Fix CVE-2013-4322: Add support for limiting the size of chunk extensions
        when using chunked encoding. (markt)
      </td></tr>
      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
        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>
        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>
</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://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>
        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>
        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://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 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 <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>
        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>
        Improve error message by including specified timeout if failed to
        retrieve a data sender. (kfujino)
      </td></tr>
      <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 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="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://bz.apache.org/bugzilla/show_bug.cgi?id=54932">54932</a>: Correct the link to Tribes documentation. (violetagg)
      </td></tr>
      <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 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>
        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://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://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://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>
        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://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://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>
        <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>
        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>
        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 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>
        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://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://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 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://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 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>
        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>
</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="fix" class="icon" src="./images/fix.gif"></td><td>
        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
        there is no session. Improve session management in the filter.
        (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.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>
        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>
        <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://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://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>
        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://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. (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>
        <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>
        Implement <code>maxHeaderCount</code> attribute on Connector.
        It is equivalent of LimitRequestFields directive of
        <a href="http://httpd.apache.org/">Apache HTTPD</a>.
        Default value is 100. (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)/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://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://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 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>
        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://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="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 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>
        Remove obsolete bug warning from Windows service
        documentation page. (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=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://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="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://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>
        Fix several HTML markup errors in servlets of examples web 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=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://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 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://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>
        <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)
      </td></tr>
      <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>
    </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>
    </table>
  </blockquote></td></tr></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
        only after the files are copied, so that <code>INSTALLLICENSE</code>
        file had correct line ends. (kkolinko)
      </td></tr>
      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
        Remove <code>res/License.rtf</code>. The file that is actually shown
        by the Windows installer is <code>res/INSTALLLICENSE</code>.
        (kkolinko)
      </td></tr>
      <tr><td><img alt="add" class="icon" src="./images/add.gif"></td><td>
        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>
        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 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="add" class="icon" src="./images/add.gif"></td><td>
        <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://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>
        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="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://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="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>
        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="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>
        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="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 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.
        Also add an option to limit the maximum number of parameters processed
        per request. This defaults to 10000. Excessive parameters are ignored.
        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>
      <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>
        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>
        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://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>
        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://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>
        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>
        <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 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>
        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://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 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="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 
        BackupManager. In BackupManager, change of session ID is replicated by 
        the call of a setId() method. (kfujino)
      </td></tr>
      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
        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 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 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>
        <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>
        <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://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://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 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="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>
        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>
        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>
        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://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>
        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>
        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://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>
        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
        in JULI FileHandler) automatically when it is specified as a part of
        the file name, e.g. in the <code>prefix</code> attribute. Earlier this
        happened only if it was specified with the <code>directory</code>
        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. (kkolinko)
      </td></tr>
      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
        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>
        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 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="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="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 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>
        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>
        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
        (HTTP APR) if sendfile is configured to send more data than is available
        in the file. (markt)
      </td></tr>
      <tr><td><img alt="fix" class="icon" src="./images/fix.gif"></td><td>
        Prevent NPEs when a socket is closed in non-error conditions after
        sendfile processing when using the HTTP NIO 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.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 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>
        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/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://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 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://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)
      </td></tr>
    </table>
  </blockquote></td></tr></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)/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>
        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>
        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://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>
        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>
        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://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>
    </table>
  </blockquote></td></tr></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)/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="update" class="icon" src="./images/update.gif"></td><td>
        Update Apache Commons Pool to 1.5.6. (markt)
      </td></tr>
      <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="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 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="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>
        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://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
        <code>Accept-Language</code> header. This protects from known exploit
        of the Oracle JVM bug that triggers a DoS, CVE-2010-4476. (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.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>
        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>
        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://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>
        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 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>
  <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://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>
        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>
        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://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>
        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>
        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://bz.apache.org/bugzilla/show_bug.cgi?id=49657">49657</a>. (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.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="update" class="icon" src="./images/update.gif"></td><td>
        Update to Apache Commons Daemon 1.0.5. (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.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>
        <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>
        <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="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="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://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. 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://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://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://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://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://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://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>
        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://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://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 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://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>
        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>
        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://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
        session before the current request has a chance to send the replication
        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=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://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>
    </table>
  </blockquote></td></tr></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)/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>
        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="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>
        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 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>
        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>
        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>
  <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>
        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="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://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>
        <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>
      <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://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://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>
        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 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://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 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://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://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://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 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://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>
        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>
        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>
        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>
        Update the re-packaged version of Jakarta BCEL from trunk revision
        880760 to trunk revision 978831. (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.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>
        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>
        Improve and document VirtualWebappLoader. (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=43642">43642</a>: Add prestartminSpareThreads attribute for Executor.
        (jfclere)
      </td></tr>
      <tr><td><img alt="update" class="icon" src="./images/update.gif"></td><td>
        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>
        <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://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>
        <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>
      <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>
        <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>
        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>
        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 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="update" class="icon" src="./images/update.gif"></td><td>
        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 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>
        <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="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>
  <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>
        <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="add" class="icon" src="./images/add.gif"></td><td>
        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 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>
        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>
  <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>
        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>
        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>
        Parameterize version number throughout build scripts and source. (rjung)
      </td></tr>
    </table>
  </blockquote></td></tr></table>
</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>