<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE document [
  <!ENTITY project SYSTEM "project.xml">
]>
<document url="changelog.html">

  &project;

  <properties>
    <author email="remm@apache.org">Remy Maucherat</author>
    <author email="yoavs@apache.org">Yoav Shapira</author>
    <author email="fhanik@apache.org">Filip Hanik</author>
    <title>Changelog</title>
  </properties>

<body>
<section name="Tomcat 5.5.19 (fhanik)">
  <subsection name="General">
    <changelog>
      <update>
         Add multi attribute setting to jmx:set JMX remote ant task.
         Patch contributed by Didier Donsez (pero)
      </update>      
    </changelog>
  </subsection>
  <subsection name="Catalina">
    <changelog>
      <fix>
        <bug>30762</bug>: Re-fix this bug that was re-introduced by the fix
        to <bug>37264</bug>. (markt)
      </fix>
      <fix>
        <bug>37588</bug>: Fix JNDI realm creation through JMX. Patch contributed by TerryZhou  (fhanik)
      </fix>
      <fix>
        <bug>39704</bug>: The use of custom classloaders failed when the context
        was specified in server.xml. Correction of the fault will require setting
        the new loader attribute useSystemClassLoaderAsParent to false. (markt)
      </fix>
    </changelog>
  </subsection> 
  <subsection name="Coyote">
    <changelog>
      <fix>
        <bug>40418</bug>APR Endpoint socket evaluation (remm)
      </fix>
  </changelog>
  </subsection> 
  <subsection name="Webapps">
    <changelog>
      <fix>
        <bug>31339</bug>: Admin app threw exceptions if a name other than Catalina
        was configured for the Engine. Patch based on a suggestion from Amila
        Suriarachchi. (markt)
      </fix>
    </changelog>
  </subsection> 
  <subsection name="Cluster">
    <changelog>
    </changelog>
  </subsection>   
</section>


<section name="Tomcat 5.5.18 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        Change MD5 release signature files to have md5 (lowercase) extension instead of MD5 (uppercase),
        as suggested by Henk Penning and specified in the
        <a href="http://www.apache.org/dev/release-publishing.html">ASF release publishing guidelines</a>. (yoavs)
      </update>
    </changelog>
  </subsection>
  <subsection name="Catalina">
    <changelog>
      <fix>
        Fix that ManagerBase increment expireSessions counter at background task two times. (pero)
      </fix>
      <fix>
        <bug>39406</bug>: Fix that StandardSession#getLastAccessedTime() uses correct exception message,
        suggested by Takayoshi Kimura. (pero)
      </fix>
      <add>
        <bug>39661</bug>: Add documentation on JULI FileHandler properties. (yoavs)
      </add>
      <add>
        <bug>39657</bug>: Warn (and don't load jar) if JSP API is in webapp classloader repository, as suggested by
          David Sanchez Crespillo. (yoavs)
      </add>
      <add>
        <bug>39674</bug>: Support JRockit JVM in service.bat script, as suggested by lizongbo. (yoavs)
      </add>
      <fix>
        <bug>39711</bug>: Update Loader configuration documentation, as suggested by Stephane Bailliez. (yoavs)
      </fix>
      <fix>
        <bug>39865</bug>: Add Open Office mime types to conf/web.xml. (markt)
      </fix>
      <fix>
        <bug>38814</bug>: Align CGI handling of indexed queries, parameters and
        POST content with other CGI providers. The changes: only provide
        parameters on the command line for indexed queries; always provide the
        query string via the QUERY_STRING environment variable; provide POST
        content unmodified to stdin; and never call getParameters(). (markt) 
      </fix>
      <fix>
        <bug>34801</bug>: Partial fix that adds handling of IOExceptions during
        long running CGI requests. Based on a patch by Chris Davey. (markt)
      </fix>
      <fix>
        <bug>39689</bug>: Allow single quotes (') and backticks (`) as well as
        double quotes (") to be used to delimit SSI attribute values. (markt)
      </fix>
      <fix>
        <bug>40053</bug>: Correct application deployment documentation so it
        agrees with the classloader documentation regarding shared lib and
        CATALINA_BASE. (markt)
      </fix>
      <fix>
        <bug>39592</bug>: Stop HEAD requests for resources handled by SSI
        servlet or filter generating stack traces in the logs. (markt)
      </fix>
      <fix>
        Improve handling of the ';' character in the URL so that it is now
        allowed if properly %xx encoded. (remm)
      </fix>
  </changelog>
  </subsection> 
  <subsection name="Coyote">
    <changelog>
      <fix>
        Fix APR endpoint so that the acceptor thread now only processes socket
        accepts. (remm)
      </fix>
  </changelog>
  </subsection> 
  <subsection name="Webapps">
    <changelog>
      <fix>
        <bug>39813</bug>: Correct handling of new line characters in JMX
        attributes. Patch provided by R Bramley. (markt)
      </fix>
      <fix>
        <bug>37781</bug>: Make sure that StoreConfig save external referenced war files at context.xml correct. (pero)
      </fix>
      <fix>
        <bug>39791</bug>: Use correct default for useNaming within a Context. (markt)
      </fix>
      <fix>
        Correctly generate re-direct for admin app index.jsp to prevent login page
        being displayed twice when cookies are disabled. (markt)
      </fix>
    </changelog>
  </subsection> 
  <subsection name="Cluster">
    <changelog>
      <fix>
        <bug>39473</bug>: Session timeout much shorter than setting
         at web.xml at cluster environment, suggested by Jin Jiang. (pero)
      </fix>
    </changelog>
  </subsection>   
</section>

<section name="Tomcat 5.5.17 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        Update to Xerces 2.8.0 (remm)
      </update>
      <update>
        Update to tcnative 1.1.3 (remm)
      </update>
    </changelog>
  </subsection>
  <subsection name="Catalina">
    <changelog>
      <fix>
        Fix SingleSignOn Valve and add Session.getLastAccessTimeInternal() without session invalidation test. (pero)
      </fix>
      <fix>
        <bug>38814</bug>: CGIServlet correctly handles Shift_JIS output. (markt) 
      </fix>
      <fix>
        Add missing REQUEST_URI environment variable to CGI environment. (markt)
      </fix>
      <fix>
        <bug>27617</bug>: Sync existing mime types with httpd. (keith)
      </fix>
      <fix>
        <bug>38761</bug>: Handle relative symlinks to shell scripts as suggested by Adam Murray (keith)
      </fix>
      <fix>
        <bug>38795</bug>: Associate more closely bind with a finally unbind in StandardContext start and
        stop, based on a patch by Darryl Miles (remm)
      </fix>
      <fix>
        Improve undeployment robustness (remm)
      </fix>
      <update>
        Expand the semaphore valve (remm)
      </update>
      <fix>
        <bug>39021</bug>: Add back support for authentication only, submitted by Scott Stark (remm)
      </fix>
      <fix>
        Revert fix for <bug>38113</bug>, which does not seem a legitimate problem, and causes
        regressions (remm)
      </fix>
      <fix>
        Correctly reset listeners when reloading a webapp (remm)
      </fix>
      <fix>
        <bug>38194</bug>: Don't fail silently if -force is used without CATALINA_PID, submitted by Matthew Buckett. (yoavs)
      </fix>
      <fix>
        <bug>38154</bug>: Avoid NPE in FileDirContext after webapp undeploy, reported by Jamie Maher. (yoavs)
      </fix>
      <fix>
        <bug>38217</bug>: Added cautionary note about keystore password to SSL HowTo, as suggested by Ralf Hauser. (yoavs)
      </fix>
      <fix>
        <bug>38262</bug>: Cleared ambiguity in host documentation, as suggested by Jeffrey Bennett. (yoavs)
      </fix>
      <fix>
        <bug>38476</bug>: Modified check for null TLD stream, as suggested by Fabrizio Giustina. (yoavs)
      </fix>
      <fix>
        <bug>38052</bug>: Use <i>userName</i> as userField default. User is at many databases a 
        reserved keyword, as suggested by rik. (pero)
      </fix>
      <fix>
        Fix handling of non matching if-range header (remm)
      </fix>
      <fix>
        <bug>37848</bug>: Only output catalina.sh diagnostic messages if we have a TTY, submitted by
          David Shaw. (yoavs)
      </fix>
      <fix>
        <bug>38596</bug>: Minor performance optimization in DataSourceRealm, suggested by Sandy
          McArthur. (yoavs)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Coyote">
    <changelog>
      <fix>
        Make the default cipher suites available for SSL the same as the set of cipher
        suites enabled by default rather than the set of all cipher suites. This prevents
        ciphers suites that do not provide confidentiality protection and/or server
        authentication being used by default. (markt)
      </fix>
      <fix>
        Move AprEndpoint.getWorkerThread inside the try/catch for the main accept loop, to guard
        about an OOM (which would most likely doom the server anyway) (remm)
      </fix>
      <fix>
        As exhibited in the ASF's JIRA installation, it seems EINTR is a status code that should
        be ignored as a result to a poll call (remm)
      </fix>
      <update>
        New APR connectors defaults (remm)
      </update>
      <update>
        Add multiple threads for APR pollers, to work around Windows limitations (performance degrades
        very rapidly if poller sizes over 1024 are allowed when compiling APR) (remm)
      </update>
      <update>
        New modes for firstReadTimeout (-1 being the new default) (remm)
      </update>
      <update>
        Replace java.util.Stack usage with a simple array in the APR endpoint (remm)
      </update>
      <fix>
        tcnative jnilib.c now report correct compile flags for runtime 
        Library.java checks like sendfile support default true/false (pero)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>38015</bug>: Remove misleading warnings logged in TagLibraryInfoImpl, as suggested by Andrew Houghton. (yoavs)
      </fix>
      <fix>
        <bug>38376</bug>: Make sure body content stack is always properly aligned, as submitted by Tony Deigh. (yoavs)
      </fix>
      <fix>
        Compatibility with JDT 3.2 (remm)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Webapps">
    <changelog>
      <fix>
        <bug>39292</bug>: Update catalina.policy at demo balancer app. Fix provided by Kerry Sainsbury (pero)
      </fix>
      <fix>
        <bug>36847</bug>: Fixed the manager app copy function to not overwrite fileA with fileB when fileA==fileB.
        Fix provided by Haroon Rafique (fhanik)
      </fix>
      <fix>
        <bug>38508</bug>: Several enhancements to Host Manager application, including configurable
          manager app support and dialog box enhancements.  Thanks to George Sexton for the patch. (yoavs)
      </fix>
      <fix>
        <bug>37781</bug>: Make sure context config file is writeable, suggested by George Sexton. (yoavs,pero)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Cluster">
    <changelog>
       <update>
        Add at PooledSocketSender the jmx attributes inPoolSize and inUsePoolSize. (pero)
       </update>
       <fix>
         DeltaManager set session creationTime at backup node. (pero)
       </fix>
       <update>
        Add JvmRouteBinderValve documentation at cluster-howto.xml. (pero)
       </update>
       <add>
        JvmRouteBinderValve now supports now sessionid's from request and cookies.
        Thanks to Brian Stansberry for reporting it. (pero)
       </add>
       <fix>
      	<bug>38779</bug> Fix wrong jmx message arg at SimpleTcpCluster
          at o.a.c.cluster.tcp.mbeans-descriptors.xml, submitted by Pawel Tucholski (pero)
      </fix>
      <fix>
        Fix that not after every "Keep Alive Socket close" a log warning is generated at TcpReplicationThread (pero)
      </fix>
      <fix>
        <bug>39178</bug>: Now ROOT.war deployment with FarmWarDeployer is possible (pero)
      </fix>
      <fix>
        ReplicationValve not set primarySession flag when all backup nodes gone (pero)
      </fix>
      <update>
        Add DeltaSession.getLastAccessTimeInternal() without session invalidation test. (pero)
      </update>
    </changelog>
  </subsection>
 </section>

<section name="Tomcat 5.5.16 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        Updated / enhanced docs to remove old FIXME references. (yoavs)
      </update>
      <update>
        Required tcnative library version upgraded to 1.1.2 (remm)
      </update>
      <update>
        Update to Eclipse JDT 3.1.2 (remm)
      </update>
    </changelog>
  </subsection>
  <subsection name="Catalina">
    <changelog>
      <fix>
        <bug>23950</bug>: Context.listBindings() should return objects not
        references. (markt)
      </fix>
      <fix>
        <bug>38124</bug>: Add support for Windows 20xx when reading environment
        variables in CGIServlet. (markt)
      </fix>
      <fix>
        <bug>29214</bug>: response.containsHeader() now returns the correct
        value for Content-Type and Content-Length headers. (markt)
      </fix>
      <fix>
        Allow using a custom ContextConfig when using JMX embedding of Tomcat, as
        is done by the regular deployer. (remm)
      </fix>
      <add>
        Add JMX serverInfo attribute to Server MBean, that we can identify
        the tomcat release remotely. (pero)
      </add>
      <fix>
        Fix the JMX MBeanFactory.createStandardHost signature at mbean-descriptors.xml (pero)
      </fix>
      <fix>
        Fix some cases (for example with realm usage) where the container logger for a context
        would be retrieved using the wrong classloader (remm)
      </fix>
      <fix>
        HttpSession.getId will no longer throw an ISE when the session is invalid (remm)
      </fix>
      <fix>
         ore detailed errors for naming issues (remm)
      </fix>
      <docs>
        Add documentation for the Transaction element (remm)
      </docs>
      <update>
        Add getContextPath to the internal servlet context implementation (remm)
      </update>
      <fix>
        Only null instances loaded by the webapp CL, submitted by Matt Jensen (remm)
      </fix>
      <update>
        Deploy folders which don't have a WEB-INF, and return an error when a context
        file does not contain a Context element (remm)
      </update>
      <fix>
        <bug>38653</bug>: Fix property name (remm)
      </fix>
      <fix>
        Slightly modify the timing of the manager start, so that it is not started by a
        listener (remm)
      </fix>
      <fix>
        Refresh loggers used by the digester (remm)
      </fix>
      <fix>
        Use sendError instead of setStatus to send the 401 code. (billbarker)
      </fix>
      <fix>
        Don't append the port for an SSL redirect if it is the default port. (billbarker)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Coyote">
    <changelog>
      <fix>
        Log errors when setting socket options with debug priority rather than error. (remm)
      </fix>
      <fix>
        <bug>38100</bug>: Make certain that a valid Host name is set, or none at all. (billbarker)
      </fix>
      <fix>
        <bug>38485</bug>: Fix minor regression setting connection timeout (as well as linger and
        no delay) where the default value was always used when using the regular 
        HTTP connector (remm)
      </fix>
      <update>
        Pass along more of the SSL related fields to OpenSSL (remm)
      </update>
      <update>
        CharChunk now implements CharSequence (remm)
      </update>
      <fix>
        Fix coding error which could cause a rare crash when a poller error occurred and sockets
        where pending being added to the keepalive poller (remm)
      </fix>
      <fix>
        Fix potential sync issues when restarting a poller (remm)
      </fix>
      <fix>
        Update APR error reports, including the error codes (remm)
      </fix>
      <fix>
        <bug>38726</bug>: Remove duplicate request group field causing blank statistics for the
        HTTP connector (remm) 
      </fix>
      <fix>
        Fix invalid length used by some AJP packets for the AJP APR connector, which could cause 
        corruption, submitted by Rudiger Plum (jim)
      </fix>
      <fix>
        <bug>38346</bug>: Fix problems with request.getReader().readLine(). 
        Patch by Rainer Jung (billbarker)
      </fix>
      <update>
        Local address reuse for APR Endpoints (via APR_SO_REUSEADDR) now enabled (jim)
     </update>
      <fix>
        Don't write out the shutdown secret file if shutdown is disabled (the default) (billbarker)
      </fix>
      <fix>
        Fix NPE when no sink is supplied. (billbarker)
      </fix>
      <update>
        APR Endpoints now IPv6 aware (jim)
     </update>
      <update>
        Downgrade "Response already committed" logging entry to DEBUG. (billbarker)
     </update>
     <fix>
       <bug>38113</bug>: Return the empty String for an empty query-string instead of null. (billbarker)
     </fix>
    </changelog>
  </subsection>
  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>38389</bug>: Set correct JDT Compiler option to java 1.5 compliance. 
        Patch from Olivier Thomann and Paul Hamer (pero)
      </fix>
      <update>
        Add some useful hints to jasper-howto. (pero).
      </update>
      <fix>
        <bug>38776</bug>: Fix source file attribute, submitted by Olivier Thomann (remm)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Cluster">
    <changelog>
      <fix>
        Update DeltaManager session access stats  (pero)
      </fix>
      <fix>
        DeltaSession getId will no longer throw an ISE when the session is invalid (pero)
      </fix>
      <update>
          Resurrected the &quot;suspect&quot; property so that the logs don't fill
          up with errors when member disappears or a connection is lost. Only useful for pooled mode (fhanik)
      </update>
      <add>
       <bug>35710</bug>: Add session replication for cross context session changes.
       The portlet api need this support, see refactored ReplicationValve. (pero)
      </add>
      <update>
        ReplicationValve reset DeltaSession when cluster node has no backup node. (pero)
      </update>
      <update>
        DataSender close connection and throw exception also even if waitForAck is false.  (pero)
      </update>
      <fix>
        Active cluster junit test again. (pero)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Webapps">
    <changelog>
      <fix>
        Fix some XSS issues in the JSP examples. (markt)
      </fix>
      <fix>
        Fix logos in the manager webapp (remm)
      </fix>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.15 (yoavs)">
  <subsection name="General">
    <changelog>
      <fix>
        <bug>32081</bug>: Remove the JDK requirement from the Win32 scripts. (keith)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Catalina">
    <changelog>
      <fix>
       <bug>37852</bug>: Fix regression where the magic role '*' was denying all access. Patch by xrcat (billbarker)
      </fix>
      <fix>
       <bug>37934</bug>: Don't ask for authentication if deny-from-all is in effect. (billbarker)
      </fix>
      <fix>
        <bug>15570</bug>: auth-constraint of * was interpretted as all
        authenticated users rather than as all roles defined in web.xml. (markt)
      </fix>
      <fix>
       Remove leftover static logger which was used to log application level messages in
       ApplicationContextFacade (remm)
      </fix>
      <fix>
        <bug>38012</bug>: Where a CGI script sets a response code, use it. (markt)
      </fix>
      <fix>
        <bug>37854</bug>: Extension-List checking was too strict. (markt)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Coyote">
    <changelog>
      <fix>
       Report binding errors in the APR endpoint as strings rather than platform specific
       status codes (remm)
      </fix>
      <fix>
       <bug>37934</bug>: Don't ask for authentication if deny-from-all is in effect. (billbarker)
      </fix>
      <fix><bug>38047</bug>: Handle the case where the Servlet attempts to read
              the Request body from the AJP/1.3 Connector, in the case that no
              body was sent. (billbarker)
      </fix>
      <fix><bug>38030</bug>: Unconditionally return EOS for an attempt to read 
              the body of any request that doesn't send CL or TE. 
              (remm, billbarker).
      </fix>
    </changelog>
  </subsection>
  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>35351</bug>: Fix problem using an inner class for a &lt;jsp:useBean /&gt;. (kinman).
      </fix>
      <fix>
        <bug>37929</bug>: Don't stop on the generic attribute methods just because the session is invalid. Patch by Pierre Delisle. (billbarker)
      </fix>
      <update>
        Add system properties org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER and
        org.apache.jasper.runtime.JspFactoryImpl.USE_POOL to allow configuring Jasper
        memory usage (remm)
      </update>
      <fix>
        <bug>37933</bug>: Restrict &lt;jsp:getAttribute /&gt; to only look in PAGE_SCOPE. (billbarker)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Cluster">
    <changelog>
      <fix>
       <bug>37808</bug>: Fix ArrayIndexOutOfBoundsException inside XByteBuffer. Reported by Dietmar Mueller (pero)
      </fix>
      <update>
        <bug>37896</bug>DataSender starts new Socket after IOException. (pero)
      </update>
      <update>
        Reduce memory usage at membership service. (pero)
      </update>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.14 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        Update optional native APR connector version to 1.1.1. (mturk)
      </update>
      <update>
        Update build.properties.default to get native connector from new location. (yoavs)
      </update>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        <bug>13040</bug>: Fix getContext() when used to obtain a context that is a sub-context
        of the current context. Ported from TC4. (markt) 
      </fix>
    </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>37746</bug>: Remove extra space from StringTokenizer pattern in JspC, as suggested by
        Eric Hedstrom. (yoavs)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Coyote">
    <changelog>
      <fix>
       <bug>36863</bug>: Strip quotes when parsing Cookie values, even for v0 Cookies. (billbarker)
      </fix>
      <fix>
       <bug>37803</bug>: Don't claim that we have a string value in MessageBytes until we actually do. 
           Patch by Doug Rand (billbarker)
      </fix>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.13 (yoavs)">
  <subsection name="General">
    <changelog>
      <fix>
        <bug>36711</bug>: Unused line of code. (yoavs)
      </fix>
      <update>
        Removed unused SAXPath, Jaxen dependencies. (yoavs)
      </update>
      <update>
        Update log4j dependency to version 1.2.12, Struts to 1.2.7. (yoavs)
      </update>
      <update>
        Removed JDBC 2.0 StdExt dependency (only class from there is javax.sql.XADataSource, which is
        present in JDK 1.4 and later. (yoavs)
      </update>
      <fix>
        <bug>37039</bug>: typo on JK Quick configuration how-to. (yoavs)
      </fix>
      <add>
        <bug>37035</bug>: Add a placeholder file in the temp directory for WinZip tar.gz handling. (yoavs)
      </add>
      <update>
        Update JAF dependency to 1.0.2, JTA to 1.0.1b and JavaMail to 1.3.3_01. (markt)
      </update>
      <add>
        Added Eclipse .project, .classpath, and associated files to make building Tomcat from
        Eclipse significantly easier. (markt)
      </add>
      <add> 
        <bug>37284</bug>: Guess JSE 5.0 location on Mac OS X, patch by Stepan Koltsov. (yoavs)
      </add>
      <fix>
        <bug></bug>: Wrong class name in antlib.xml for JkStatusUpdateTask. (yoavs)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Catalina">
    <changelog>
      <fix>
        <bug>36802</bug>: Fix problem of double-init when JMX-deploying a 
        Context into a started Host. (billbarker)
      </fix>
      <fix>
        <bug>36840</bug>: Provide information as to which web.xml is being processed on startup to
        help debug parsing errors. (yoavs)
      </fix>
      <add>
        <bug>34724</bug>: Ability to set domain for Single-Sign-On cookie.  Patch by Oliver
        Rossmueller. (yoavs)
      </add>
      <fix>
        <bug>37044</bug>: RealmBase.hasResourcePermission needs to access the GenericPrincipal as
        set by the realm unless hasRole is overriden, which was no longer being done properly for
        the JAAS realm (remm)
      </fix>
      <fix>
        <bug>37264</bug>: JNDI resources were no longer available when stopping listeners,
        submitted by Bogdan Calmac (remm)
      </fix>
      <fix>
        <bug>37150</bug>: Turn off directory listing by default and add a warning
        regarding enabling listing of directories with many entries. (markt)
      </fix>
      <update>
        Add configurability for the amount of time that the container will wait for requests
        to complete when unloading servlets, using the unloadDelay property. (remm)
      </update>
      <update>
        Add code to set to null fields in loaded classes when stopping a web application, as a
        possible workaround for suspicious garbage collection behavior. (remm)
      </update>
      <update>
        Update messages and stack traces for classloading errors which may occur when removing
        a web application, and for stopped web applications. (remm)
      </update>
      <fix>
        <bug>37319</bug>: Fix catalina.bat reference to CATALINA_BASE for logging.properties.  Thanks
        to Pierre-Yves Benzaken. (yoavs)
      </fix>
      <fix>
        <bug>36852</bug>: Custom classloaders don't honor Contet privileged attribute.  Thanks to
        Matt Brinkley for the analysis and patch. (yoavs)
      </fix>
      <fix>Fix for a couple of (mostly silly) edge-cases in testing auth.
           Thanks to Nam T. Nguyen for the report. (billbarker) 
      </fix>
      <fix>
        <bug>37060</bug>: Actually copy the Request headers when replaying after Form auth. (billbarker)
      </fix>
      <fix>
        <bug>37591</bug>: Typo in Engine configuration reference. (yoavs)
      </fix>
      <fix>
        <bug>37668</bug>: Added note about JSP recompilation to Context configuration documentation. (yoavs)
      </fix>
      <fix>
        <bug>37132</bug>: Have DigestAuthenticator Handle user names with commas.  Thanks to 
          Robert Wille for the patch. (yoavs)
      </fix>
      <fix>
        <bug>37212</bug>: Better error reporting in Connector.java.  Thanks to Ralf Hauser for
        the patch. (yoavs)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Coyote">
    <changelog>
      <fix>
        Gracefully handle the case where some Socket options are disabled at 
        the OS level for the AJP/1.3 Connector. (billbarker)
      </fix>
      <fix>
        <bug>36366</bug>: Use rewritten deployer-howto page by Allistair Crossley. (remm)
      </fix>
      <add>
        <bug>36630</bug>: Added extra log output for class instantiation failure. (yoavs)
      </add>
      <fix>
        <bug>37121</bug>: Sendfile always needs to be given the length of data to write,
        which fixes ranged requests. (remm)
      </fix>
      <fix>
        Optimized direct byte buffers association with the socket for APR connectors. (mturk)
      </fix>
      <fix>
        Fix hidden NPEs when using the APR connectors and there's no host header. (pero, remm)
      </fix>
      <fix>
        Http11Protocol now register RequestProcessor at JMX and show current usage inside manager app. (pero)
      </fix>
      <add>
        JkStatus Ant tasks for mod_jk 1.2.15. (pero)
      </add>
      <update>Connection Timeout is normal, so reduce logging to DEBUG (billbarker) 
      </update>
      <fix>
        Fix crash which could occur with the HTTP APR connector when accessing request JMX objects
        outside of the processing of the said request (remm)
      </fix>
      <fix>
        <bug>37627</bug>: Fix buffering issue in the HTTP APR connector when a large buffer size was
        used for servlets (remm)
      </fix>
      <fix>
        <bug>37673</bug>: Fix implementation of getLocalPort and getLocalAddr in the HTTP APR connector
        (remm)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>35252</bug>: Jasper PageDataImpl outputs malformed XML.  Patch by Rahul Akolkar. (yoavs)
      </fix>
      <add>
        <bug>37062</bug>: Helpful JSP exception message containing file, line numbers.  Patch by
        Tim Fennell at http://www.tfenne.com/jasper/. (yoavs)
      </add>
      <fix>
        <bug>37407</bug>: File descriptor leak in JspReader.  Thanks to Fred for the patch.  I also
        did some minor cleanup in the class. (yoavs)
      </fix>
      <add>
        <bug>37612</bug>: Add file location to JSP Validator error message.  Thanks to Renaud Bruyeron
        for the patch. (yoavs)
      </add>
    </changelog>
  </subsection>
  <subsection name="Cluster">
    <changelog>
      <fix>
        Fix that session replace messages are logged after node recovery get all session from master node. (pero)
      </fix>
      <fix>
        <bug>37896</bug> Fix that sendMessage signature at all DataSender subclasses must be changed.
        Now pooled and async modes working as expected. (pero)
      </fix>
      <fix>
        Fix that socket at o.a.c.cluster.tcp.FastAsyncSocketSender can be disconnect/connect. (pero)
      </fix>    
      <fix>
        Fix cluster module build.xml script for new svn repository structure (pero)
      </fix>    
      <fix>
        Fix closed socket exceptions at normal server shutdown, reported by Olve Hansen (pero)
      </fix>    
      <fix>
        Fix closed socket exceptions inside async message transfer modes (pero)
      </fix>    
      <fix>
        <bug>34984</bug>: HttpSessionBindingEvent.getValue() get correct value (pero)
      </fix>    
      <fix>
        <bug>35916</bug>: send sessionCreated to SessionListener after cluster node recovery (pero)
      </fix>
      <fix>
        <bug>36541</bug>: Used also Hashtable at DeltaSession (pero)
      </fix>
      <fix>
        Better support cluster at engine level. (pero)
      </fix>
      <fix>
        <bug>36866</bug>: Correct attribute name in conf/server.xml documentation for Cluster element. (yoavs)
      </fix>
      <fix>
        <bug>37261</bug>: Allow xerces to know where the web.xml file is so that relative entities can be resolved.
      </fix>
      <fix>
        <bug>37529</bug>: Fixed race condition in ReplicationLister#stopListening.  Thanks to 
        Chris Walker for the patch. (yoavs)
      </fix>
    </changelog>
  </subsection>
  <subsection name="Webapps">
    <changelog>
      <fix>Remove obsolete TagPlugin file from JSP examples (billbarker)</fix>
      <fix>
        <bug>36019</bug>: Made clear the Host-Manager HowTo is coming soon, not ready yet. (yoavs)
      </fix>
      <fix>
        <bug>36336</bug>: Check WAR extension in both upper and lower case, as suggested by
        A. Grasoff. (yoavs)
      </fix>
      <fix>
        <bug>35982</bug>: Can't delete mail sessions in admin webapp. (yoavs)
      </fix>
      <fix>
        <bug>36673</bug>: Similar to the one above, for data sources. (yoavs)
      </fix>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.12 (yoavs)">
  <subsection name="General">
    <changelog>
      <fix>
        Remove uneeded files in conf. (remm)
      </fix>
      <update>
        Change distribution file names from jakarta-* to apache-*. (remm)
      </update>
    </changelog>
  </subsection>
  
  <subsection name="Catalina">
    <changelog>
      <add>
        Add JMX Remote create and unregister ant tasks (pero)
      </add>
      <fix>
        <bug>36343</bug>: Only normalize out backslash on Windows platforms. (billbarker)
      </fix>
      <fix>
        Allow configuring standard stream redirection. (remm)
      </fix>
      <add>
        <bug>36088</bug>: Add RUNNING.txt and RELEASE-NOTES.txt to fulldocs distro. (yoavs)
      </add>
      <fix>
        <bug>36534</bug>: fix equals for URLs returned by ServletContext.getResource() (luehe)
      </fix>
      <fix>
        <bug>36558</bug>: Clear IntrospectionUtils cache when stopping a webapp, as it 
        could leak to keeping a reference to the classloader (remm)
      </fix>
      <fix>
        <bug>36113</bug>: Session persistence for objects with primitive types could fail in
        some rare cases (remm)
      </fix>
      <fix>
        <bug>36541</bug>: Full synchronization for session objects attributes collections (remm)
      </fix>
      <fix>
        <bug>35609</bug>: service.bat echo command when wrong arguments given [patch by Robert
        Longson] (yoavs)
      </fix>
      <fix>
        <bug>34749</bug>: jsessionid dropped on trailing slash (/) redirect (remm)
      </fix>
    </changelog>
  </subsection>
  
   <subsection name="Coyote">
     <changelog>
       <update>
         Add support for secret for AJP APR (remm)
       </update>
     </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        Fix NPE with an error message when no Java compiler is available (remm)
      </fix>
      <fix>
        Restrict System err stream capture to the Ant compiler, as the Eclipse compiler
        does not need it (remm)
      </fix>
      <update>
        JSP compilation speed improvement using tag library information caching, 
        submitted by Xingbo Gao (remm)
      </update>
      <add>
        Initial contribution of JSTL tag plugins supporting the core tag library of
        JSTL, submitted by Jing Li (remm)
      </add>
    </changelog>
  </subsection>
  
  <subsection name="Cluster">
    <changelog>
      <fix>
        <bug>36541</bug>: Sync all session attribute access (read and write) at DeltaSession (pero)
      </fix>
      <fix>
        <bug>36518</bug>: Classname typos for senders, submitted by Christoph Bachhuber-Haller (remm)
      </fix>
      <add>
        <bug>35613</bug>: Added FAQ question and answer about tcpListenAddress="auto" and /etc/hosts (yoavs)
      </add>
      <update>
        Moved FAQ section for Clustering from Clustering HowTo page to its own FAQ page. (yoavs)
      </update>
    </changelog>
  </subsection>
  
  <subsection name="Webapps">
    <changelog>
      <docs>
        <bug>36319</bug>: Fix broken link to DBCP docs, submitted by Xavier Poinsard (remm)
      </docs>
      <docs>
        Brand new deployer specs, submitted by Allistair Crossley (remm)
      </docs>
    </changelog>
  </subsection>
 </section>

<section name="Tomcat 5.5.11 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        Update to Xerces 2.7.1 (remm)
      </update>
      <add>
        Add ready to build bin/tomcat-native.tar.gz for the APR JNI wrapper library (remm)
      </add>
      <fix>
        <bug>35930</bug>: Bad logging config used by the Tomcat Windows service (remm)
      </fix>
      <add>
        <bug>33261</bug>: Windows installer now checks the user type and warns non-admins as needed. (yoavs)
      </add>
      <update>
        The Windows installer will now optionally download a (32bit) Windows .dll for Tomcat native
        from HEAnet (remm)
      </update>
      <fix>
        Declaration of jspc Ant task to fix the deployer package (remm)
      </fix>
    </changelog>
  </subsection>
  
  <subsection name="Catalina">
    <changelog>
      <add>
        Add concurrency control valve (o.a.c.valves.SemaphoreValve). As the Tomcat distribution 
        is not built for Java 5, the valve will have to be compiled from the sources 
        using Java 5 (remm)
      </add>
      <fix>
        <bug>35880</bug>: Ignore JSSE15SocketFactory when generating JavaDoc, as it breaks
          the JDK 1.4 JavaDoc tool. (yoavs)
      </fix>
      <fix>
        <bug>35865</bug>: setclasspath.sh cannot be excutive under cygwin. (funkman)
      </fix>
      <fix>
        <bug>33267</bug>: Set working path in service installer, as suggested by Dominik
          Drzewiecki. (yoavs)
      </fix>
      <update>
        <bug>34794</bug>: Update connector documentation to include clientAuth attribute. (yoavs)
      </update>
      <fix>
        <bug>35894</bug>, <bug>36228</bug>: Fix CNFE when starting in a sandbox. (billbarker, remm)
      </fix>
      <fix>
        Add version check for Tomcat native so that incompatible API changes are detected early (remm)
      </fix>
      <fix>
        <bug>36020</bug>: Allow MemoryUserDatabase to work better on write protected mediums,
        submitted by Rainer Jung (remm)
      </fix>
      <fix>
        <bug>35978</bug>: Bad handling of single range requests greater than 2GB in the DefaultServlet
        (remm)
      </fix>
      <fix>
        <bug>35984</bug>: Client abort exceptions will now use getCause (remm)
      </fix>
      <fix>
        Fix handling of non-file based includes with SSI, submitted by David Becker (markt)
      </fix>
    </changelog>
  </subsection>
  
   <subsection name="Coyote">
     <changelog>
      <fix>
        Fix default ports for http and https which are set in the request when the parsed
        hostname does not specify the port, and which were inverted (https was set as 80 
        and http as 443). (remm)
      </fix>
      <fix>
        Add missing tomcatAuthentication attribute to the AJP APR implementation. (remm)
      </fix>
      <fix>
        Check filename sendfile attribute only if sendfile is enabled. (remm)
      </fix>
      <fix>
        Fix output buffering for APR AJP implementation. (remm)
      </fix>
      <fix>
        <bug>35941</bug>: Fix getRemoteAddr for APR AJP implementation. (remm)
      </fix>
      <fix>
        <bug>35942</bug>: Fix NPE retriving cipher suite attribute when no certificate 
        was submitted (for example with no SSL). (remm)
      </fix>
      <fix>
        Internationalization and code cleanups for APR AJP implementation. (remm)
      </fix>
      <fix>
        Security exception in APR AJP implementation when running with the security
        manager enabled. (remm)
      </fix>
      <fix>
        <bug>36173</bug>: Add missing sync in FastHttpDateFormat.formatDate, submitted 
        by Alexei Krainiouk (remm)
      </fix>
      <fix>
        Disable HTTP compression when sendfile is used for a resource (remm)
      </fix>
      <fix>
        AJP secret attribute report only at trace level. (pero)
      </fix>
     </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>36127</bug>: Validation compatibility with Xerces 2.7.1, submitted 
        by Florent Benoit (remm)
      </fix>
    </changelog>
  </subsection>
  
  <subsection name="Cluster">
    <changelog>        
      <fix>
        Fix NPE when cluster stops (pero)
      </fix>
      <fix>
        <bug>36218</bug>: MemoryRealm now support also GenericPrincipal, but 
        JAASRealm with cluster replication still has a problem, detected by Dirk Dekok (pero)
      </fix>   
     </changelog>
  </subsection>
  
  <subsection name="Webapps">
    <changelog>
    </changelog>
  </subsection>
 </section>

<section name="Tomcat 5.5.10 (yoavs)">
  <subsection name="General">
    <changelog>
      <add>
         Add JMX remote ant task to control tomcat MBeanserver via ant scripts.
         Ant lib is included at "server/lib/catalina-ant-jmx.jar" and documentation
         is added to <a href="monitoring.html">Monitoring and Managing Tomcat How-To</a> (pero)
      </add>
      <fix>
        <bug>34361</bug>: Integrate better antlib and import support for 
        catalina manager tasks [Modified patch from Daniel Santos]  (pero)
      </fix>
      <fix>
        StoreConfig save now the Connector.sslProtocol attribute. (pero)
      </fix>
      <update>
        Change log dir at service.bat to "$CATALINA_BASE/logs" for better multi instance support. (pero)
      </update>
      <update>
        <bug>34237</bug>: Added note and links to context and host configuration
          references in JNDI DataSources HowTo to aid the clueless. (yoavs)
      </update>
      <update>
        <bug>34248</bug>: Update JavaMail download instructions to include JAF. (yoavs)
      </update>
      <update>
        Update to JDT from Eclipse 3.1, with support for Java 5 (remm)
      </update>
      <update>
        Refactoring, redesign and extend the cluster module
          - Cluster can be configured as subelement from Engine and Host.
          - Optimized performance and reduce memory usage
          - Better JMX support
          - add a lot of JMX stats attribute for better monitoring 
          - add a single element default cluster configuration
          - more config options
             LifecycleListener
             ClusterListener
             more than one cluster valves
          - better subclass support
          - change a lot of existing cluster API's (pero)
       </update>
       <add>
         Add Apache Portable Runtime JNI wrapper and helper API (mturk)
       </add>
       <update>
         Update JULI to provide support for taking over java.util.logging bootstrap configuration,
         and move the default properties file to ${catalina.base}/conf/logging.properties (remm)
       </update>
       <fix>
         <bug>34746</bug>: Updated catalina.properties instructions per Bill Edwards' suggestion. (yoavs)
       </fix>
       <fix>
         <bug>35090</bug>: Minor documentation typo fix. (yoavs)
       </fix>
       <fix>
         <bug>34931</bug>: Rewrote ROOT/index.jsp to be XHTML strict compliant, per Richard
           Beton's patch. (yoavs)
       </fix>
    </changelog>
  </subsection>
  
  <subsection name="Catalina">
    <changelog>
      <fix>
        <bug>20380</bug>: Access log timestamps now take account of Daylight Saving
        Time (DST). (markt)
      </fix>
      <add>
        <bug>34220</bug>: Provide better error message when server.xml can't be located.
          [Modified patch from Ralf Hauser] (yoavs)
      </add>
      <add>
          Add MessageListener and LifecylceListener cluster saving to storeconfig module
          (&lt;Cluster ... &gt;&lt;ClusterListener className="org.apache.catalina.cluster.session.JvmRouteSessionIDBinderListener" &gt;) (pero)
      </add>  
      <fix>
        <bug>33743</bug>: Add additional synchronization in webapp classloader to avoid
        possible race condition when defining a class (remm)
      </fix>
      <fix>
        <bug>33711</bug>: Add events on passivate and activate to cleanup SSO, and recycle
        session objects when removing them from a manager (so that anyone keeping references
        to it would leak a minimal amount of memory) (remm)
      </fix>
      <update>
        Re-add patch causing Session.getId to throw an ISE, and make all internal components
        use a safe getIdInternal method (remm)
      </update>
      <update>
        Store principal to be exposed for Request.getUserPrincipal inside the GenericPrincipal,
        to remove hacks from the JAAS realm (remm)
      </update>
      <fix>
        <bug>10385</bug>: SSI Servlet now includes better support for files that use character
        encodings other than the platform default.(markt)
      </fix>
      <fix>
        Remove CopyParentClassLoader rule, which doesn't seem to be doing anything useful
        anymore. (remm)
      </fix>
      <add>
        Provide an ServletFilter implementation of Server Side Includes (SSI). This was
        submitted by David Becker under <bug>33106</bug>. (markt)
      </add>
      <add>
        Add sendfile support to default servlet, with a sendfileSize configuration attribute.
        (remm)
      </add>
      <update>
        If APR as well as Tomcat's JNI wrapper for APR are present, use APRized protocol handlers
        instead of the regular ones (remm)
      </update>
      <fix>
        <bug>22617</bug>: When used with an EJB container and a realm that supports the concept
        of an unauthenticated user (J2EE.3.4.3) BASIC authentication was always authenticating
        users as the unauthenticated user without giving them a chance to supply a username and
        password. (markt)
      </fix>
      <fix>
        Prevent facade objects cloning (remm)
      </fix>
      <update>
        Add missing CGI variables to SSI servlet. Patch submitted by Fritz Schneider. (markt)
      </update>
      <fix>
        <bug>34578</bug>: Updated JNDIRealm comment. (yoavs)
      </fix>
      <fix>
        <bug>34273</bug>: Better Bootstrap warning message. [Path from Ralf Hauser] (yoavs)
      </fix>
      <update>
        <bug>34675</bug>: Updated Proxy-HowTo page with Servlet API calls. (yoavs)
      </update>
      <fix>
        <bug>34546</bug>: Fix problem where the "first" Valve couldn't be removed from a Pipeline. (billbarker)
      </fix>
      <fix>
        Fix NPE when POST size exceeds limit defined by maxPostSize. (markt)
      </fix>
      <fix>
        Fix FORM authentication so POSTed parameters are not assumed to be encoded with platform
        default encoding. A side effect of this fix is that the bodies of POST requests that
        require FORM authentication are now buffered and made available after a sucessful login. (markt)
      </fix>
      <fix>
        <bug>34840</bug>: Better handling of external WARs redeployment, and ignore docBase specified
        in context file if within the Host appBase (remm)
      </fix>
      <fix>
        Fix handling of symbolic links when the DefaultServlet is generating directory
        listings. (markt)
      </fix>
      <fix>
        <bug>35769</bug>: Correct implementation of javax.naming.Context.composeName( Name, Name)
        in multiple places. Patch provided by Laurent Simon. (markt)
      </fix>
      <add>
        <bug>34805</bug>: Add warning for suspicious security patterns, as suggested by Ralf Hauser. (yoavs)
      </add>
      <fix>
        <bug>35819</bug>: Use getWorkPath for deleting work directory on context destroy, as suggested
          by Rob Steele. (yoavs)
      </fix>
    </changelog>
  </subsection>
  
   <subsection name="Coyote">
     <changelog>
      <update>
        Add support for using "Smart Cards" as trust/keyStore. (billbarker)
      </update>
      <update>
        Add some Mbean attributes and operations to ChannelSocket (pero)
      </update>    
      <add>
        Apache Portable Runtime based HTTP/1.1 protocol handler, with SSL support (remm)
      </add>
      <add>
        Add support for simple file-based CRLs under JDK 1.5 (billbarker)
      </add>
      <add>
        Add experimental NIO-Socket channel for the AJP/1.3 Connector (billbarker)
      </add>
      <add>
        <bug>34648</bug>: Add configuration option to enable IP-based Virtual Hosts. (billbarker)
      </add>
      <update>
        Refactor the AJP/1.3 Connector to be able to handle more advanced Actions. (billbarker)
      </update>
      <fix>
        Fix connector initialisation so sslProtocol is not required for SSL. (markt)
      </fix>
      <add>
        Add bufferSize option to the AJP/1.3 Java connector to control output buffering. (billbarker)
      </add>
      <add>
        Apache Portable Runtime based AJP/1.3 protocol handler (remm)
      </add>
      <fix>
        Delay reading the inital request body packet by default for the AJP/1.3 Java connector. (billbarker)
      </fix>
     </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>18477</bug>: Allow symbolic links when precompiling JSPs (markt)
      </fix>
      <add>
        <bug>34272</bug>: Allow specifying the Option class used by the Jasper engine,
        submitted by Scott Stark (remm)
      </add>
      <add>
        Support for Java 5.0 in JSPs (remm)
      </add>
      <update>
        Java 5 will be the source and target for JSPs when running on Java 5 (remm)
      </update>
      <update>
        <bug>34652</bug>: Add the ability to get SMAPs when precompiling, submitted by
        Daryl Robbins (remm)
      </update>
      <fix>
        <bug>34465</bug>: Jspc failure if there is no web.xml (remm)
      </fix>
      <fix>
        <bug>35696</bug>: Make certain that release is called for custom tags 
         when tag-pooling is disabled. (billbarker)
      </fix>
      <fix>
        <bug>35386</bug>: Make useBean resources use consistent spelling, from Kurt Huwig. (yoavs)
      </fix>
      <update>
        <bug>33522</bug>: Update jasper-howto to reflect use of javac switch. (yoavs)
      </update>
      <add>
        <bug>35114</bug>: Add failOnError flag to JspC, by ziweth. (yoavs)
      </add>
      <fix>
        <bug>35410</bug>: Fixed NPE in JspWriterImpl. (yoavs)
      </fix>
      <add>
        <bug>35571</bug>: JspC resolved uriRoot relative to Ant project basedir, if any, as suggested
          by Jason Pettiss. (yoavs)
      </add>
    </changelog>
  </subsection>
  
  <subsection name="Cluster">
    <changelog>        
      <add>
        Add that cluster can configure as Engine and Host element. (pero)
      </add>      
      <add>
        Add single cluster default configuration element - discussed at JAX 2005 conference Cluster Workshop. (pero)
      </add>      
      <fix>
        Fix resend GET_ALL_SESSIONS when wait ACK failed at receiver side (pero)
      </fix>  
      <fix>
        ClusterValve now remove from container element when cluster stops and added with next start again. (pero)
      </fix>     
      <add>
        Set timestamp only at first time inside SessionMessageImpl (pero)
      </add>    
      <add>
       Set timestamp from findsessions method call, when handling GET_ALL_SESSION
       to all SEND_SESSION_DATA and TRANSFER complete messages. (pero>
      </add>
      <add> 
       Drop all received message inside GET_ALL_SESSION message queue before state 
       transfer message timestamp. (pero)
      </add>      
      <add>
        Cluster ping now transfer cluster domain information and DeltaManager only
        send and receive message from same domain members (pero)
      </add>      
      <add>
        JMX Support for McastService (Membership) (pero)
      </add>      
      <add>
        Redesign SimpleTcpCluster message receiving to ClusterReceiverBase (pero)
      </add>      
      <add>
        Cluster transfer all attributes to the generate session manager at addManager. 
        Remove some unused attributes at SimpleTcpCluster and ReplicationTransmitter (pero)
      </add>    
      <update>
        Refactor DeltaManager:
          - createSession call now ManagerBase super class method
          - extract some long methods
          - send GET_ALL_SESSION with session blocks
          - don't sync sessions map when send all sessions (pero)  
      </update>          
      <update>
        Add developer actions at to-do.txt (Proposal of changes) (pero)  
      </update>          
      <update>
        Small refactorings at FastAsyncSocketSender (pero)  
      </update>          
      <update>
        Redesign cluster message sending to lesser cpu and memory usage. 
        Set at ReplicationTransmitter#compress=false as default. Change API from
        ClusterSender, ReplicaitonTransmitter, DataSender, SimpleTcpCluster (pero)  
      </update>          
      <add>
        DeltaManager has now JMX expireAllLocalSessions and processExipre operation 
        for better cluster node shutdown handling (usefull for testing only) (pero)   
      </add>  
      <add>
        DataSender doWaitAckStats for better understanding wait ack problems (pero)   
      </add>  
      <update>
        Refactor DeltaManager and add counter for cluster message send/receive message (pero)  
      </update>          
      <fix>
        <bug>34389</bug>:Porting Clustering fix pack to 5.5.10 code base.
        Remove synchonized from DataSender.pushMessage(). Very offen the 
        complete cluster blocking after replicated a bulk of new session messages under heavy load.
        All cluster node standing for a lot of time and made nothing. 
        Fix it for pooled, asynchronous and fastasyncqueue replication mode. Very bad thing, sorry! (pero)  
      </fix>
      <add>
        Add notifySessionListenersOnReplication attribute to SimpleTcpCluster to stop notify 
        event to SessionListener at backup nodes from create and destroy replicated session (pero)
      </add>
      <add>
        Add compress attribute to ClusterSender and ClusterReceiver interface. Now compress config
        transfer from sender to receiver at SimpleTcpCluster. (pero) 
      </add>    
      <add>
        Add ClusterValve interface and implement it as ReplicationValve and JvmRouteBinderValve. Now both
        Valves can be directly configured at server.xml Host/Cluster/Valve subelements.
        Also this configuration are correctly handled with the StoreConfig module. (pero)  
      </add>    
      <update>
        Deactivate DataSender keepAliveMaxRequestCount change default to -1. 
        Cluster replication sockets are fast and very stable! (pero)  
      </update>          
      <update>
        Setup JvmRouteBinderValve as host valve instead context valve. Refactor the API a little bit. (pero)
      </update>
      <fix>
        Don't increment open socket counter before socket is really open. Add socket open failures counter (pero) 
      </fix>  
      <add>
        Add MessageListener support to cluster server.xml element (ClusterListener) to 
        register your own cluster message receiver (pero)
      </add>  
      <add>
        Add LifecycleListener support to cluster server.xml element (Listener)
        and notify those listener from start/stop cluster,
        add/remove session manager, sending fault and start/stop member  (pero)
      </add>  
      <add>
        Add active backgroundProcess keepAlive timeout and request count socket close check
        at ReplicationTransmitter.  Check frequency can be change with attribute 
        processSenderFrequency (default 2). (pero)
      </add>
      <add>
        Remove useless Jdk13ReplicationListener,Jdk13ObjectReader. 
        Add SocketReplicationListener and SocketObjectReader to have nativ socket ClusterReceiver. 
        Also extract ClusterReceiverBase superclass for SocketReplicationListener and ReplicationListener (pero) 
      </add>
      <update>
        Add and update some API and the <a href="cluster-howto.html">cluster howto documentation</a> (pero)
      </update>
      <update>
        Refactor ReplicationValve for better understanding and small optimization (pero)
      </update>
      <add>
        Starting a unit test suite for cluster module - very much todo (pero)
      </add>
      <fix>
        Fix ant build.xml to direct compile at cluster module directory (pero)
      </fix>
      <fix>
        Fix some I18N messages, but a lot of work is waiting for fix (pero)
      </fix>
      <add>
        Add ReplicationValve Mbeans stats attribute getter and resetStatistics operation (pero)
      </add>
     </changelog>
  </subsection>
  
  <subsection name="Webapps">
    <changelog>
      <fix>
        <bug>35758</bug>: Admin webapp mishandling digest attribute of JDBCDataSourceRealm. (yoavs)
      </fix>
      <add>
        <bug>34250</bug>: Admin webapp Commit Changes button now asks for confirmation. (yoavs)
      </add>
      <add>
        <bug>34818</bug>: Alternating row for apps in HTML manager, as suggested by Jeff
          Domeyer. (yoavs)
      </add>
      <add>
        <bug>35379</bug>: Added commons-logging to build path of manager and host-manager apps,
          to make them build with Jikes, as suggested by Aaron Isotton. (yoavs)
      </add>
    </changelog>
  </subsection>
 </section>

<section name="Tomcat 5.5.9 (yoavs)">
  <subsection name="General">
    <changelog>
      <add>
        Add JULI, a java.util.logging implementation, used to provide sane defaults and
        configurability equivalent to Tomcat 4.0 for Tomcat 5.5 logging (remm)
      </add>
      <docs>
        Add JULI documentation to the logging page (remm)
      </docs>
      <add>
        Add host manager webapp (remm)
      </add>
      <add>
        Add ant JkStatusUpdateTask for remote status worker handling ( >=mod_jk 1.2.9) (pero)
      </add>
      <add>
        <bug>33739</bug>: Add reference to RUNNING.txt in setup.html. (yoavs)
      </add>
      <fix>
        <bug>33719</bug>: Update reference to Ant download page. (yoavs)
      </fix>
      <fix>
        <bug>33883</bug>: Bad options in SSL-HowTo. (yoavs)
      </fix>
      <update>
        Update to MX4J 3.0.1 (pero)
      </update>
      <update>
        <bug>34139</bug>: Updated Realm-HowTo to specify JMX, Commons-Logging jars for RealmBase. (yoavs)
      </update>
      <add>
        <bug>33325</bug>: Added top-level clean target to Netbuild build.xml file. (yoavs)
      </add>
      <update>
        <bug>33755</bug>: Clarified Postgresql JNDI datasource example. [patch submitted by
          Tom Witmer] (yoavs)
      </update>
    </changelog>
   </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        Remove some instances of expanded folder removal (remm)
      </fix>
      <fix>
        Don't call mkdirs if we're not going to save the configuration in StandardContext (remm)
      </fix>
      <fix>
        Fix context classloader binding during loader initialization (it was set to null before) (remm)
      </fix>
      <fix>
        The webapp logger should only be retrieved when the context classloader is set to the 
        webapp's classloader (remm)
      </fix>
      <fix>
        <bug>34170</bug>: Add back retry logic in JDBC realm in case of a connection failure (remm)
      </fix>
      <fix>
        <bug>22041</bug>: Support dynamic proxies as session objects. (markt)
      </fix>
      <fix>
        Fix logger names for wrappers (remm)
      </fix>
      <fix>
        <bug>34006</bug>: If antiResourceLocking was used, HostConfig considered the path as external,
        and web application resources were not correctly removed or tacked; also simplify the code a lot
        (remm)
      </fix>
      <fix>
        <bug>34016</bug>: Save and restore docBase when using antiResourceLocking, for compatibility with
        the admin webapp (remm)
      </fix>
      <add>
        <bug>33636</bug>: Set lastModified attribute when expanding WAR files. (yoavs)
      </add>
      <add>
        <bug>32938</bug>: Allow Salted SHA (SSHA) passwords in JNDIRealm. (yoavs)
      </add>
      <add>
        <bug>31288</bug>: Allow SMTP authentication for JNDI MailSessionFactory. (yoavs)
      </add>
      <update>
        Harmonize processing of the context.xml defaults with the way web.xml is processed
        (remm)
      </update>
      <fix>
        Ignore ';' if it is in the query string (remm)
      </fix>
      <fix>
        private to protected for the webapp classloader (remm)
      </fix>
      <fix>
        Improve logging of filters and listeners startup errors (remm)
      </fix>
      <fix>
        <bug>33774</bug>: Retry once in JNDI realm authenticate failure regardless of the 
        exception message (remm)
      </fix>
      <fix>
        <bug>33961</bug>: Don't encode '~' in context paths (remm)
      </fix>
      <fix>
        <bug>32866</bug>: Propagate distributable property from context to manager (yoavs)
      </fix>
      <fix>
        <bug>32867</bug>: Reset distributable attribute in context for clean reload handling (yoavs)
      </fix>
      <update>
          Fix some RealmBase/JNDIRealm log.isXXXEnabled (pero)
      </update>
      <fix>
          <bug>34161</bug>: Harmonize StandardContext.stop with ContainerBase.stop (remm)
      </fix>
    </changelog>
   </subsection>
   
   <subsection name="Coyote">
     <changelog>
      <fix>
        <bug>33971</bug>: Set remoteHost to null when Apache doesn't send one. (billbarker)
      </fix>
      <fix>
        Fix calculation of threadRatio for the ms thread pool, and fix setting the updated
        timeout value (remm)
      </fix>
      <update>
        Update the ms thread pool so that we allocate a worker before accepting a new socket,
        and wait a little if the pool is exhausted; this should make low maxThreads values work a 
        lot better (remm)
      </update>
      <update>
        <bug>33857</bug>: Update information on automatic mod_jk configuration in Apache-HowTo (yoavs)
      </update>
      <fix>
        Fix sync block placement in Mapper.addContext (remm)
      </fix>
      <fix>
        <bug>32741</bug>: Fix spelling of "committed" [patch from Ben Souther] (yoavs)
      </fix>
      <fix>
        <bug>34133</bug>: Make setHeader clear multi-valued headers (billbarker)
      </fix>
     </changelog>
   </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>34034</bug>: Jasper does not respect external entities (billbarker)
      </fix>
      <fix>
        <bug>33810</bug>: Incorrect recycling of BodyContent if close is called (remm)
      </fix>
      <update>
        Per instance loggers in Jasper (remm)
      </update>
    </changelog>
  </subsection>
   
   <subsection name="Cluster">
    <changelog>
      <fix>
        Fix JvmRouteBinderValve primary failover attribute to
        org.apache.catalina.cluster.session.JvmRouteOrignalSessionID (pero)
      </fix>
      <fix>
        Change attribute name waitForAck to sendAck at ReplicationListener (pero)
      </fix>
      <add>
        Integrate new fastasyncqueue cluster sender mode.
        Support queue size limitation,
        get all queued objects and send it to the backup node,
        no queue thread lock contention under high replication load,
        submitted by Rainer Jung (pero)
      </add>
      <add>
        Add compress attribute to Sender and Receiver to transfer data uncompressed. 
        At high cluster load this option consume lesser cpu and memory.
        Implement the compress handling to ReplicationTransmitter, ReplicationListener, 
        XByteBuffer and Jdk13ReplicationListener (pero)
      </add>
      <add>
        Add doProcessingStats to synchronous, asynchronous and fastqueueasync sender modes
        to get min, avg, max processing times as IDataSender JMX MBeans (pero)
      </add>
      <fix>
        TcpThreadPool use constant ACK byte array instead create 
        new 3 byte buffer for every message ack (pero)
      </fix>
      <update>
        Refactor ReplicationTransmitter and ReplicationListener (pero)
      </update>
      <update>
        add getCatalinaCluster() to ClusterReceiver and SimpleTcpCluster (pero)
      </update>    
      <update>
        Update the Api documentation (pero)
      </update>
    </changelog>
   </subsection>
   <subsection name="Webapps">
     <changelog>
       <update>
         Use the standard struts taglib URIs in admin JSPs. (billbarker)
       </update>
      <add>
        Add more host parameters to create new host with host-manager (pero)
      </add>
      <fix>
        <bug>34033</bug>: Fix quoting related bugs (remm)
      </fix>
      <fix>
        <bug>33713</bug>: Add Struts init code in frameset.jsp as well (remm)
      </fix>
     </changelog>
   </subsection>
</section>

<section name="Tomcat 5.5.8 (yoavs)">
  <subsection name="General">
    <changelog>
      <fix>
        <bug>33204</bug>: Fixed SSL HowTo page. (yoavs)
      </fix>
      <fix>
        <bug>33351</bug>: Fix silent uninstallation. (remm)
      </fix>
      <fix>
        <bug>33489</bug>: Missing space in uninstaller message. (yoavs)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        Unregister host mbean and all context mbeans at remove a host, s. StandardHost.destroy() and MBeanFactory.createStandardHost/removeHost(,) detected by Thorsten Kamann (pero)
      </fix>
      <fix>
        make it possible to restart connector, now serversocket recreated after stop,start (pero)
      </fix>
      <fix>
        change mbean names from Mapper and ProtocolHandler to connector naming style (pero)
      </fix>
      <update>
        Add some log.isXXXEnabled (pero)
      </update>
      <fix>
        Deregister MapperListener after remove connector (pero)
      </fix>
      <fix>
        Remove host only at own domain with same name at all services, detected by Thorsten Kamann (pero)
      </fix>
      <fix>
        <bug>33187</bug>: Remove any logging of the password in the JAAS realm,
        submitted by Andrew Jaquith (remm)
      </fix>
      <fix>
        <bug>33033</bug>: Don't do anything to the response in the ErrorReportValve
        if data has already been written (remm)
      </fix>
      <update>
        Add charset support for the URLs used by the tasks, to remove deprecation (remm)
      </update>
      <fix>
        <bug>26135</bug>: Workaround for memory leak when reloading Struts
        based web applications by clearing the bean instrospector cache of the JVM on
        classloader stop, submitted by Tobias Lofstrand. (remm)
      </fix>
      <fix>
         Ensure that if CLASSPATH is declared on startup - it is not used. (funkman)
      </fix>
      <fix>
         Add back use of deployOnStartup in HostConfig (remm)
      </fix>
      <docs>
         Ant tasks docs patches, submitted by Gabriele Garuglieri. (remm)
      </docs>
      <update>
         Use NIO for the raw copying operation, as it is faster (a little under 30%), 
         and decreases a little the impact of antiResourceLocking. (remm)
      </update>
      <fix>
         <bug>33357</bug>: Fix connection leaks with the DataSourceRealm, as well 
         as improve efficiency, submitted by Dominik Drzewiecki. (remm)
      </fix>
      <update>
         Improve a little logging of servlet exceptions, which should all log the root cause. (remm)
      </update>
      <update>
         Add new Manager.createSession(sessionId) method, allowing the client to "specify" the session id which should be used using a cookie
         when using emptySessionPath="true". This fixes session tracking in this case. (remm)
      </update>
      <fix>
         <bug>33368</bug>: Fix memory leak in swallowOutput feature which occurred when the thread pool size is
         reduced, submitted by Rainer Jung. (remm)
      </fix>
	  <fix>
          StoreConfig: can't save cluster Membership element (pero)
       </fix>
	  <add>
          StoreConfig: suppress default jkHome attribute at connector  (pero)
      </add>
	  <add>
          StoreConfig: Save new dymanic properties from ReplicationTransmitter  (pero)
      </add>
      <fix>
         <bug>33463</bug>: Remove attributes after context destroy. (remm)
      </fix>
      <fix>
         <bug>33572</bug>: context.xml should be a redeploy resource, and add prioritization for
         redeploy resources. (remm)
      </fix>
    </changelog>
  </subsection>
  
  <subsection name="Coyote">
    <changelog>
      <fix>
         PoolTcpEndpoint recreate ServerSocket after start,stop,start connector (pero)
      </fix>
      <update>
        Add some log.isXXXEnabled (pero)
      </update>
	  <add>
	    JkMX: make log4j mbean configurable with attribute log4jEnabled (pero)
	  </add>
	  <fix>
	    When Tomcat runs on Windows and IE is uploading data to the server, the first read 
	    must be at least 8KB, otherwise upload speed is extremely low, submitted by Noel 
	    Rocher (remm)
	  </fix>
    </changelog>
  </subsection>
 
  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>33223</bug>: pageContext.forward and jsp:include result
        in StringIndexOutOfBoundsException (luehe)
      </fix>
      <fix>
        <bug>33373</bug>: Fix handling of context classloader in jspc (remm)
      </fix>
      <fix>
        <bug>33538</bug>: Ignore example and tag-extension elements in TagLibraryInfoImpl. (yoavs)
      </fix>
      <fix>
        <bug>33539</bug>: Better error message when an unknown element is encountered in the tag file. (yoavs)
      </fix>
      <fix>
        <bug>33219</bug>: Minor JspServletWrapper code cleanup. (yoavs)
      </fix>
    </changelog>
  </subsection>
  
  <subsection name="Cluster">
    <changelog>
       <fix>
          Add instance based ReplicationValve statistics to Mbean descriptor (pero)
       </fix>
       <fix>
          Better I18N support to cluster session and tcp classes (pero)
       </fix>
       <add>
          Support optional primaryIndicator at ReplicationValve to mark that 
          request processing to existing session is at primary cluster node. 
          Easy failover detection, when mark is not at 
          configurable primaryIndicator attribute, submitted by Rainer Jung (pero)
       </add>
       <update>
          Refactor all implementation from interface IDataSenders (pero)
       </update>
      <add>
          Add some usefull attributes and operations to the all sender MBeans. (pero)
       </add>
      <add>
          Add keepAlive and waitForAck handling to AsyncSocketSender and factor out a DataSender base class.(pero)
       </add>
       <add>
          ReplicationTransmitter: Enable and Disable autoreconnect sender and waitForAck. (pero)
       </add>
       <add>
          ReplicationTransmitter: transfer all properties to socket sender from server.xml configuration. (pero)
       </add>
    </changelog>
  </subsection>

  <subsection name="Webapps">
    <changelog>
      <fix>
        Fix create and remove Host for Admin app. (pero)
      </fix>
    </changelog>
   </subsection>
</section>

<section name="Tomcat 5.5.7 (remm)">
  <subsection name="General">
    <changelog>
      <add>
        Add installer for mod_jk on IIS. (mturk)
      </add>
      <add>
        New store config module for better server.xml saving support.<br/>
        Add &lt;Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener" /&gt; to your server.xml (pero)
      </add>
      <update>
        <bug>32081</bug>: Remove the JDK requirement from the Unix scripts, submitted
        by Ben Souther (remm)
      </update>
      <fix>
        <bug>32953</bug>: SERVLETAPI: XSS Issues, submitted by Mark Thomas (jfarcand)
      </fix>
      <update>
        Update to commons-digester 1.6, JDT 3.0.1, MX4J 2.1.0, Struts 1.2.6 (remm)
      </update>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <update>
         First integration at StoreConfig to StandardServer (pero)
      </update>
      <fix>
        <bug>32714 </bug>: Don't make the AccessLogValve final (funkman)
      </fix>
      <fix>
        <bug>32694</bug>: Fix bad code to make docBase path aboslute in antiLocking
        method. (remm)
      </fix>
      <fix>
        <bug>32713</bug>: Fix resource-env-ref handling. (remm)
      </fix>
      <fix>
        <bug>31201</bug>: Improve i18n support in DefaultServlet. This was causing
        problems with JSP include actions and static files. (markt)
      </fix>
      <fix>
        Add some log.isXXXEnabled to o.a.c.core.StandardHost StandardEngine, StandardService (pero)
      </fix>
      <add>
        Feature addition to add Redirector and failOnError support for all Catalina Ant tasks,
        submitted by Gabriele Garuglieri (remm)
      </add>
      <fix>
        <bug>31198</bug>: Fix FORM and DIGEST authentication for non-ASCII
        usernames and passwords. (markt)
      </fix>
      <fix>
        Reimplement charset mapper (remm)
      </fix>
      <fix>
        Add logging of exception which could occur when retrieving the password in JDBCRealm (remm)
      </fix>
      <fix>
        <bug>25889</bug>: Don't execute queries twice, submitted by Tom Anderson (remm)
      </fix>
      <fix>
        <bug>32832</bug>: request.getSession(false) fails to return null (luehe)
      </fix>
      <fix>
        <bug>28222</bug>: request.getRequestURL() in forwarded jsp/servlet returns
        original url rather than new url as per SRV8.4 (markt)
      </fix>
      <fix>
        <bug>33157</bug>: Fix handling of the buffer length for basic authentication parsing (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Coyote">
    <changelog>
      <fix>
        <bug>32708</bug>: Better handling of bad encoding with the string cache. (remm)
      </fix>
      <fix>
        <bug>32781</bug>: Fix bad initialization of the "scheme" field of the request
        object, which would cause getScheme to return "http" for the first request. (remm)
      </fix>
      <fix>
        Content length should be ignored if there is chunking (remm)
      </fix>
      <fix>
        Remove most deprecation problems for the AJP connector (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>32746</bug>: Avoid JAR locking when loading classes and improve loading
        performance by taking advantage of caching, submitted by Dominik Drzewiecki. (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Cluster">
    <changelog>
       <fix>
          correct JvmRouteSessionIDBinderListener MBean name to &lt;domain&gt;:type=Listener,name=JvmRouteSessionIDBinderListener,host=&lt;host&gt; (pero)
       </fix>
       <add>
          JMX support to SimpleTcpCluster, ReplicationTransmitter and all senders (pero)
       </add>
    </changelog>
  </subsection>

  <subsection name="Webapps">
    <changelog>
      <fix>
        Fix the webDAV servlet so it can be used via any arbitrary mapping
        (eg /webdav/*) to edit the contents of a web application. (markt)
      </fix>
      <fix>
        <bug>32729</bug>: Stop is optional and may fail, so it needs to be in a separate try/catch (remm)
      </fix>
      <update>
        Remove the remove method of the manager servlet, and use the undeploy method instead (remm)
      </update>
      <fix>
        <bug>32777</bug>: Fail if application isn't configured properly, submitted by Gabriele Garuglieri
        (remm)
      </fix>
      <fix>
        <bug>32771</bug>: Cannot undeploy/deploy misconfigured app after tomcat startup,
        submitted by Gabriele Garuglieri (remm)
      </fix>
      <fix>
        <bug>28867</bug>: Correct manager documentation to document correct way to
        reference the ROOT context. Submitted by Stephane Bailliez. (markt)
      </fix>
      <fix>
        <bug>33085</bug>: Add support for setting privileged attribute of context
        to admin webapp. (markt)
      </fix>
      <fix>
        <bug>33117</bug>: Fix Open bugs link broken on default homepage.
        Patch supplied by Sander Temme. (markt)
      </fix>
      <fix>
        Improve javadoc generation for Catalina. (remm)
      </fix>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.6 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        <bug>32532</bug>: updated logging documentation. (yoavs)
      </update>
      <update>
        <bug>32382</bug>: Index page and packaed WAR for sample webapp. (yoavs)
      </update>
      <fix>
        <bug>32603</bug>: Updated host.xml to reflect appBase resolution. (yoavs)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        Add child to the map of the parent before starting it. (remm)
      </fix>
      <fix>
        Decouple usage of the scheme and secure attributes from enabling SSL. (remm)
      </fix>
      <fix>
        <bug>32502</bug>: memory leak in DigestAuthenticator. (yoavs)
      </fix>
      <fix>
        <bug>28709</bug>: javax.servlet.http.HttpServletRequest.isRequestedSessionIdValid() returns true for an invalidated session. (luehe)
      </fix>
      <fix>
        <bug>32137</bug>: Possible thread-safety issue in RealmBase. (yoavs)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Coyote">
    <changelog>
      <fix>
        <bug>32585</bug>: Better handling for content length greater than Integer.MAX_VALUE in response. (markt)
      </fix>
      <update>
        Allow ApacheConfig and friends to live under an Engine. (billbarker)
      </update>
      <update>
        Syncronize access to the Jk Request registration count. (billbarker)
      </update>
      <update>
        Speed the MsgContext on its way to GC. (billbarker)
      </update>
      <fix>
        Keep correct thread counts in Thread pool when thread ends in an exception (billbarker)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <update>
        Updated Jasper-HowTo section on using Jikes, changed conf/web.xml JSPServlet to refer people to Jasper-HowTo so that we don't have these instructions in two places. (yoavs)
      </update>
    </changelog>
  </subsection>

  <subsection name="Webapps">
    <changelog>
      <fix>
        <bug>32505</bug>: Fix handling of an empty context parameter (which occurred every time the HTML
        manager was used to deploy a local war without specifying also a context file). (remm)
      </fix>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.5 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        <bug>32235</bug>: Sync conf/web.xml MIME types with Apache httpd. (yoavs)
      </update>
      <fix>
        <bug>31132</bug>: Better -x/-r support for OS/400 in startup scripts. (yoavs)
      </fix>
      <update>
        <bug>22679</bug>: Added misc note on accessing session ID to SSL-HowTo. (yoavs)
      </update>
 <!-- ByteBufferAccessLogValve.java is not inside!!
      <update>
        Add an asynchrounous access log valve based on NIO (jfarcand)
      </update>
 -->
       <update>
        <bug>32249</bug>: Updated logging documentation. (yoavs)
      </update>
      <update>
        <bug>32282</bug>: Modify Windows Uninstaller to only remove webapps/ROOT and webapps if user asks to remove everything. (yoavs)
      </update>
      <fix>
        <bug>32371</bug>: outdated introduction.xml page. (yoavs)
      </fix>
      <fix>
        <bug>32373</bug>: outdated installation.xml page. (yoavs)
      </fix>
      <update>
        <bug>32454</bug>: amended JNDI documentation for JavaMail/JavaActivationFramework usage. (yoavs)
      </update>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        <bug>32130</bug>: Add safety check to FileStore#keys method. (yoavs)
      </fix>
      <update>
        <bug>32276</bug>: Add developer info to Realm How-To. (yoavs)
      </update>
      <fix>
        <bug>32082</bug>: Added protected getPrincipals method to MemoryRealm for easier extension. (yoavs)
      </fix>
      <fix>
        <bug>32023</bug>: CGIServlet fails to handle post message with multipart/form data. (yoavs)
      </fix>
      <fix>
        <bug>32269</bug>: JNDIRealm fails with InvalidNameException to authenticate users if LDAP distinguished name (DN) contains slash or double quote character(s). (yoavs)
      </fix>
     <fix>
        Move processExpiresFrequency check to ManagerBase and reflect change to all subclasses (StandardManager, PersientManagerBase, DeltaManager). (pero)
      </fix>
      <update>
        Add DIGEST authentication support to the JDBC and DataSource realms. Supports both digested and cleartext passwords. (markt)
      </update>
      <fix>
        <bug>32429</bug>: CGIServlet calculates number of lines received on stderr incorrectly. (markt)
      </fix>
      <fix>
        <bug>32431</bug>: Fix typo in code that passes data to CGI script. (markt)
      </fix>
      <fix>
        <bug>32430</bug>: Class cast exception in toString() method within CGI servlet. (markt)
      </fix>
      <fix>
         Add some log.isXXXEnabled checks at StandardContext and HostConfig (pero)
      </fix>
      <fix>
         Remove the last DefaultContext artifacts (pero)
      </fix>
      <fix>
         <bug>32031</bug>: using createConnector with "http" protocol (remm)
      </fix>
      <fix>
         Add configFile attribute in JMX descriptors (remm)
      </fix>
      <fix>
         Fix autodeployer handling of a war which includes a /META-INF/context.xml, so that it is
         correctly registered and can be reloaded correctly (remm)
      </fix>
      <fix>
         <bug>32137</bug>: Use of MessageDigest should be synced in DIGEST (remm)
      </fix>
      <fix>
         Add info log when the autodeployer reloads a context (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Coyote">
    <changelog>
      <update>
        Small HTTP/1.1 optimizations: replace usage of Strings with constant byte arrays, and
        simplify the code converting Strings to bytes (remm)
      </update>
      <update>
        Greatly reduce the amount of recycle method calls on the buffers (remm)
      </update>
      <fix>Add null OName check for Request unregistration in Jk, to remove
           exception under JDK 1.5. (billbarker)
      </fix>
      <fix><bug>32292</bug>: Don't send keep-alive header when the protocol
           can't be parsed. (billbarker)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <update>
        Updated JspC usage messages to include recently added configurable parameters. (yoavs)
      </update>
      <fix>
        <bug>32330</bug>: JspC changes context classloader. (yoavs)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Cluster">
    <changelog>
       <add>
          JvmRouteBinderValve/JvmRouteSessionIDBinderListener to bind cluster session after primary node failure at first calling backup node.
          This was an option to have session stickyness after cluster node crashed. Work only with JESSIONID cookies. (pero)
       </add>
       <add>
          Better log support to DeltaManager to see detail information at debug level. (pero)
       </add>
       <fix>
          Fix FarmWarDeployer based on new HostConfig deployer. (pero)
       </fix>
       <fix>
          FarmWarDeployer controlled WarWatcher with engine backgroundProcess call.
          Added processDeployFrequency attribute to Deployer server.xml element. (pero)
       </fix>
    </changelog>
  </subsection>

  <subsection name="Webapps">
    <changelog>
      <update>
        <bug>32019</bug>: Remove maxlength=64 restriction on env entry values in admin webapp. (yoavs)
      </update>
      <fix>
        Fix various problems in realm docs, submitted by Phil Mocek. (remm)
      </fix>
      <update>
        Add log4j docs submitted by Allistair Crossley. (remm)
      </update>
      <fix><bug>32381</bug>: Fix problem where EL expression is used as a
        place holder in the admin webapp.
        Submitted by Allistair Crossley. (billbarker)
      </fix>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.4 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        <bug>31671</bug>: Update web.xml files to 2.4 schema where applicable. (yoavs)
      </update>
      <update>
        <bug>31912</bug>: Add PNG and CSS file types to replication filter default. (yoavs)
      </update>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        Add processExpiresFrequency to PersistentManagerBase and made some small JDBCStore optimizations (pero)
      </fix>
      <fix>
        Register JSP monitoring mbean for each servlet that declares a jsp-file in web.xml. (luehe)
      </fix>
      <fix>
        <bug>31578</bug>: Update Manager configuration documentation. (yoavs)
      </fix>
      <fix>
        <bug>31273</bug>: Add support for derefaliases in JNDIRealm. (markt)
      </fix>
      <fix>
        <bug>31623</bug>: Better OS400 support in setclasspath.sh. (yoavs)
      </fix>
      <add>
        Extend background processing to most container components. (remm)
      </add>
      <fix>
        Remove all MX4J related code. (remm)
      </fix>
      <fix>
        Update JAR list in TldConfig. (remm)
      </fix>
      <add>
        Register datasources with JMX. With DBCP, this is enough to provide JMX management and monitoring.
        It might work well with many other data sources which might not register themselves in JMX
        but do expose their stuff in a java bean fashion. (remm)
      </add>
      <update>
        Add the ability to force session cookies to be set to the root path "/". This should not be used
        on large servers, otherwise tons of cookies may be sent. (remm)
      </update>
      <fix>
        Workaround for client socket exceptions occurring while running a CGI, which could cause
        the external process to hang. (remm)
      </fix>
      <update>
        Optimize session cookie IDs conversion to String, since this is an unavoidable and uncacheable
        operation. (remm)
      </update>
      <fix>
        Add explicit error message if temp dir does not exist, and remove useless calls to initDirs. (remm)
      </fix>
      <add>
        Add an optimized access log valve, supporting hardcoded support for the common and combined patterns,
        and doing a majority of its write-to-logfile operations asynchronously. (remm)
      </add>
      <update>
        Register an MBean to monitor and manage the StringCache, and allow invoking the reset operation. (remm)
      </update>
      <fix>
        <bug>31677</bug>: Log warning if work dir for context can't be determined. (yoavs)
      </fix>
      <fix>
        <bug>31903</bug>: Fix condition which seems to not have been properly updated after adding
        entry.binaryContent = null a little below, submitted by Joe Zhou. (remm)
      </fix>
      <fix>
        Prevent silent NPEs during StandardContext.start dealing with JMX registration of realm, submitted
        by Keith Wannamaker. (remm)
      </fix>
      <fix>
        <bug>31592</bug>: Support other encodings for digests. (yoavs)
      </fix>
      <update>
        <bug>31739</bug>: Minor realm-howto and AJP connector doc updates. (yoavs)
      </update>
      <fix>
        <bug>31753</bug>: Minor inconsistency between JDBC and DataSourceRealm#authenticate. (yoavs)
      </fix>
      <update>
        <bug>31683</bug>: Minor clarifications to realm documentation. (yoavs)
      </update>
    </changelog>
  </subsection>

  <subsection name="Coyote">
    <changelog>
      <fix>
        Improve i18n in TCP endpoint, and add a better error message when an exception occurs
        in setSocketOptions. (remm)
      </fix>
      <fix>
        <bug>31663</bug>: Use interval field as the delay for monitor thread. (remm)
      </fix>
      <fix>
        Remove bad shutdown logic for ms pool strategy. (remm)
      </fix>
      <fix>
        Sync with Cookie, by adding ' ' as a special char. If a special char is present,
        the string will be quoted. If the client doesn't support it, the String will no be quoted anyway
        and no IAE will be thrown. (remm)
      </fix>
      <add>
        Add an optional String cache for ByteChunk.toString and CharChunk.toString. The cache is
        unsynchronized during most of its operation, and is static after a training period. An operation
        is provided to allow resetting the cache. (remm)
      </add>
      <update>
        String caching is enabled by default for ByteChunk. (remm)
      </update>
      <fix>
        <bug>31090</bug>: Use a URL encoded path when setting session cookies. (remm)
      </fix>
       <add>
          Add getAttributeName() to ProtocolHandler to get all attributes at runtime (pero)
       </add>
    </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <update>
        Exposed compilerSourceVM and compilerTargetVM options to JspC. (yoavs)
      </update>
    </changelog>
  </subsection>

  <subsection name="Cluster">
    <changelog>
       <fix>
          DeltaManager and SimpleTcpReplicationManager generate double jvmRoute (pero)
       </fix>
       <add>
          Add some missing Getters and log.isXXXEnableds (pero)
       </add>
    </changelog>
  </subsection>

  <subsection name="Webapps">
    <changelog>
      <fix>
        <bug>31707</bug>: Broken JavaScript confirmation in HTML manager. (yoavs)
      </fix>
      <fix>
        Remove hard-coded admin context path from admin's banner.jsp. (yoavs)
      </fix>
      <update>
        Major connector docs update. (remm)
      </update>
      <fix>
        <bug>31732</bug>: Fix Japanese localization of Manager's list output. (yoavs)
      </fix>
    </changelog>
  </subsection>

</section>

<section name="Tomcat 5.5.3 (yoavs)">

  <subsection name="General">
    <changelog>
      <fix>
        <bug>30568</bug>: Incomplete setup.html documentation for launching jsvc. (yoavs)
      </fix>
      <update>
        Repackage naming features. (remm)
      </update>
      <fix>
        Fix deployer packaging. (remm)
      </fix>
      <fix>
        Fix embed packaging. (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        Fix memory leak when Security Manager is turned on. (jfarcand)
      </fix>
      <fix>
        When checking status codes for error handling, only check if
        Response.isError() is true. This way, users may use setStatus() to set their own
        error status without having the error page invoked. (in which case, the user should've
        use sendError()) (funkman)
      </fix>
      <update>
        Remove Digester code for Xerces workaround. (jfarcand)
      </update>
      <fix>
        Give proper permission to the balancer app when running under the security manager. (jfarcand)
      </fix>
      <fix>
        <bug>30869</bug>: Make sure JAAS realm name is legal. (yoavs)
      </fix>
      <update>
          md5Helper, md5Encoder, and normalize are used by WebdavServlet,
          not DefaultServelt so move them into WebdavServlet.
      </update>
      <fix>
        <bug>31277</bug>: Clarified automatic application deployment section of Host configuration page. (yoavs)
      </fix>
     <fix>
       <bug>28631</bug>: JAASRealm enhancements to support custom user and role classes  use Commons-Logging. (yoavs)
     </fix>
     <fix>
       <bug>31364</bug>: Missing resource in org.apache.catalina.core.LocalString.properties. (yoavs)
     </fix>
     <fix>
       <bug>31362</bug>: Missing -Xdebug in catalina.bat when launching with JPDA and Security. (yoavs)
     </fix>
     <fix>
       <bug>31356</bug>: Duplicates not counted in session generation. (yoavs)
     </fix>
     <fix>
       <bug>30949</bug>: Make sure ApplicationDispatcher unwraps request/response even if include error occurs. (yoavs)
     </fix>
      <fix>
        Fixed StandardContext.getStartTime() to return actual start time/date instead of time (startupTime) it took to start context. (luehe)
      </fix>
      <update>
        getRequest/getResponse should return the most relevant interface, to avoid casts. (remm)
      </update>
      <update>
        Add check for directory before considering something is a compressed WAR. (remm)
      </update>
      <docs>
        Update the connector documentation. (remm)
      </docs>
      <fix>
        When parsing a context file, ignore the "path" attribute:
        the only place where it is acceptable is in server.xml. (remm)
      </fix>
      <fix>
        Digester handling fixes: always call reset in a finally block after using a digester. (remm)
      </fix>
      <update>
        Remove many fields from Connector, and tie the creation of the Connector to the
        creation of the protocol handler. (remm)
      </update>
      <update>
        Remove package triggers from the classloader, which seem useless when using Java 5. (remm)
      </update>
      <fix>
        Realms will now use set attribute to set themselves in their container when using JMX. (remm)
      </fix>
      <fix>
        Fix JMX related operations with the Connector. (remm)
      </fix>
      <fix>
        Fix save-to-XML for naming resources. (remm)
      </fix>
      <fix>
        Remove authenticator "debug" attributes from the descriptors. (remm)
      </fix>
      <update>
        Refactor org.apache.catalina.deploy.ContextXXX to use new super class ResourceBase. (pero)
      </update>
      <fix>
        Enable Connector.findLifecycleListener that we can listen start/stop Connector events and save the listener to xml. (pero)
      </fix>
      <update>
        Remove Watchdog references, as it is no longer used. (yoavs)
      </update>
      <fix>
        <bug>31511</bug>: Don't call setenv.bat if not found, in *using-launcher scripts. (yoavs)
      </fix>
      <fix>
        <bug>31549</bug>: Add name to WebappClassLoader's stopped message. (yoavs)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Coyote">
    <changelog>
      <update>
        Allow customized server header for Standalone. (funkman)
      </update>
      <fix>
        Digester.reset now removes the error handler, the root and calls clear, to prevent
        any memory leak. (remm)
      </fix>
      <update>
        Remove useless stuff in digester. (remm)
      </update>
      <update>
        In HTTP, add a utility method to convert strings to byte arrays, and output the server header
        directly as bytes. (remm)
      </update>
      <add>
        Add a master slave thread pool based on the code from Tomcat 4.0. It is less exotic than the
        default one, and might fare better on some picky systems, such as Redhat 9. The two threadpools
        will likely be removed once we use the Java 5 API, although more investigation is needed. (remm)
      </add>
      <fix>
        Fix issue with getProperty in IntrospectionUtils. (remm)
      </fix>
      <update>
        Remove attribute translation for SSL in the HTTP protocol handler: it will now be done in the
        Catalina Connector class. (remm)
      </update>
      <fix>
        Fix handling of the "timeout" attribute of the HTTP protocol handler. (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        <bug>31171</bug>: Wrap to avoid ClassCastException in PageContextImpl. (yoavs)
      </fix>
      <fix>
        <bug>31257</bug>: Added specification of endorsed dirs if forking.  Note that this is fairly useless for now in 5.5 since it uses JDT and not javac by default. (yoavs)
      </fix>
      <docs>
        Document new Jasper defaults, and update the production configuration. (remm)
      </docs>
      <fix>
        Copied XML encoding detection logic into JASPER, so we're no longer dependent on Xerces. (luehe)
      </fix>
      <fix>
        Fix cosmetic issue where extra CRLF would be inserted during each precompilation in web.xml. (remm)
      </fix>
      <update>
        Allow configuring the interval following a compilation during which a JSP will not be checked
        for modifications. (remm)
      </update>
      <fix>
        <bug>31465</bug>: Ensure that the compiler reads the .java file using the same encoding as that with which it was written. (markt)
      </fix>
      <fix>
        <bug>31510</bug>: Null out response in JspWriterImpl#recycle to aid in JBoss memory leak. (yoavs)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Cluster">
    <changelog>
      <update>
        Added flag to the cluster (notifyListenersOnReplication) to enable/disable the
        notifications of attribute/context listeners upon replication of a session delta
        Works only with the DeltaManager (fhanik)
      </update>
      <update>
        Added flag to the cluster (Cluster/Sender/ackTimeout) to set the timeout in milliseconds
        for a synchronous request to go through, defaults to 15000ms (fhanik)
      </update>
    </changelog>
  </subsection>

  <subsection name="Webapps">
    <changelog>
      <fix>
        <bug>29485</bug>: I broke the HTML manager when adding JavaScript confirmation, fixed now ;) (yoavs)
      </fix>
      <fix>
        <bug>31058</bug>: Ensure StatusTransformer escapes query string for XML. (yoavs)
      </fix>
      <update>
        Added contexts' start time (available from 'startTime' MBean attribute of StandardContext) to status page (luehe)
      </update>
      <fix>
        <bug>31264</bug>: the deploy task should now behave correctly. (remm)
      </fix>
      <update>
        Refactor the manager servlet to make calls to the deployer more robust. (remm)
      </update>
      <fix>
        Use the more robust String.valueOf in the form edit action of the connector. (remm)
      </fix>
    </changelog>
  </subsection>
</section>


<section name="Tomcat 5.5.2 (yoavs)">
  <subsection name="General">
    <changelog>
      <fix>
        The installer will now use the system's JRE. (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        Fix URL generation for classloaders on Windows, causing common/classes and shared/classes
        to be unusable (remm)
      </fix>
      <fix>
        <bug>31110</bug>: Fix resource packaging bug for servlets (remm)
      </fix>
      <fix>
        Fix 5.5 regression where going through the authenticator would create a session each time. (remm)
      </fix>
      <fix>
        Fix classname of the connector in Embedded, and remove the socket factory. (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Coyote">
    <changelog>
      <fix>
        Redo server header handling again. (remm)
      </fix>
      <update>
        Cleanup a little access to the headers using a local variable and
        use setValue for Server and Date headers. (remm)
      </update>
    </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        Remove maxTagNesting and curTagNesting since they are unused. (funkman)
      </fix>
      <fix>
        Fix tag files handling with JDT, which were ususable, and refactor the lifecycle handling of
        the page loader. (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Cluster">
    <changelog>
    </changelog>
  </subsection>

  <subsection name="Webapps">
    <changelog>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.1 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        Tomcat 5.5 can be built on JDK 5.0. (yoavs)
      </update>
      <fix>
        Windows installer polish. (mladen, remm)
      </fix>
      <update>
        Remove dependency on Jakarta regexp. (remm)
      </update>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <fix>
        Allow overriding the location of the default context file, similar to the default
        web.xml. (remm)
      </fix>
      <update>
        Backport if-else logic for SSI servlet from 4.1 (funkman)
      </update>
      <fix>
        Remove DefaultContext elements from the digester rules. (remm)
      </fix>
      <fix>
        Fix ResourceLink handling. (remm)
      </fix>
      <fix>
        Modify the auto deployer to get along with contexts which are statically defined in server.xml. (remm)
      </fix>
      <fix>
        Externalize constant strings defining the location of deployment related resources. (remm)
      </fix>
      <fix>
        <bug>31052</bug>: BeanFactory swallows root cause of exception. (yoavs)
      </fix>
      <fix>
        Allow using deploy Ant task with just config attribute, submitted by Michael Schuerig. (remm)
      </fix>
      <add>
        Added longest time an expired session had been alive to set of monitorable session manager attributes. (luehe)
      </add>
      <add>
        Added average time an expired session had been alive to set of monitorable session manager attributes. (luehe)
      </add>
      <fix>
        Clear a reference in the digester where a context would be referenced for more time than it
        needed, until the next context deployment operation. (remm)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Coyote">
    <changelog>
      <fix>
        <bug>31018</bug>: Race condition in SystemLogHandler. (yoavs)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <fix>
        Use the "compiler" parameter to allow specifying that Ant should be used. (remm)
      </fix>
      <fix>
        Ignore JDT compiler warnings. (remm)
      </fix>
      <add>
        Added compilerTargetVM option support, "1.4" default. (yoavs)
      </add>
    </changelog>
  </subsection>

  <subsection name="Cluster">
    <changelog>
      <fix>
        Fix adding the clustering valve, so that session replication actually occurs. (fhanik)
      </fix>
    </changelog>
  </subsection>

  <subsection name="Webapps">
    <changelog>
      <update>
        Major documentation update with current Tomcat 5.5 changes. (remm)
      </update>
      <update>
        Added JavaScript confirmation dialog to "dangerous" Manager servler links. (yoavs)
      </update>
    </changelog>
  </subsection>
</section>

<section name="Tomcat 5.5.0 (yoavs)">
  <subsection name="General">
    <changelog>
      <update>
        Many updated and fixed JavaDocs. (yoavs)
      </update>
      <update>
        Designed and tested Tomcat on J2SE 5.0 (aka JDK 1.5). (everyone)
      </update>
      <update>
        Bundled Eclipse JDT (new dependency) to allow Tomcat to run on a JRE only, i.e. no JDK required. (remm)
      </update>
      <update>
        Repackage commons-dbcp and its dependencies as a sigle smaller WAR, with renamed packages. (remm)
      </update>
      <update>
        Removed dependencies on commons-digester, commons-beanutils, and commons-collections.
        The relevant digester functionality is now merged in tomcat-util. (remm)
      </update>
    </changelog>
  </subsection>

  <subsection name="Catalina">
    <changelog>
      <update>
        Removed usage of org.apache.catalina.Logger, increased usage of commons-logging everywhere. (remm)
      </update>
      <update>
        Refactored classloader code to better handle JAR and general resource locking. (remm)
      </update>
      <update>
        Written JMX-related code to play nicely with J2SE 5.0 built-in JMX abilities. (remm, costin)
      </update>
      <update>
        Extensively profiled and optimized the server startup performance as well as the request mapping and processing pipeline. (remm)
      </update>
      <update>
        The container will now always process a /META-INF/context.xml resource, unless the webapp has a specified external context file. (remm)
      </update>
      <update>
        New default configuration mechanism for web applications, replacing DefaultContext. This uses a
        shared context file located in conf/context.xml. (remm)
      </update>
      <update>
        Revamped deployer, alloying full hotdeploy (note: on Windows, this requires the anti file locking
        features). (remm)
      </update>
      <update>
        Remove verbosity from the JNDI resources configuration, by allowing arbitrary attributes on the Resource element. (remm)
      </update>
      <update>
        Simpler Valve interface, to allow smaller stack traces and reducing the amount of method calls. (remm)
      </update>
    </changelog>
  </subsection>

  <subsection name="Coyote">
  </subsection>

  <subsection name="Jasper">
    <changelog>
      <update>
        Eclipse JDT is now the default Java compiler in Jasper. Source dependencies are now loaded from
        the container classloader, and compilation times are much faster. (remm)
      </update>
      <update>
        Jasper development mode should now have acceptable performance for heavily accessed pages.
        Precompiling JSPs is still significantly more efficient, however. (remm)
      </update>
    </changelog>
  </subsection>

  <subsection name="Cluster">
  </subsection>

  <subsection name="Webapps">
    <changelog>
    </changelog>
  </subsection>
</section>

</body>
</document>
