The Jakarta Project
      The Tomcat Servlet/JSP Container

The Tomcat 5 Servlet/JSP Container

Changelog

Tomcat 5.0.27 (yoavs)
General
updateUpdated dependencies on commons-dbcp (to 1.2.1), commons-pool (to 1.2), and commons-logging (to 1.0.4). (yoavs)
fix 29368: Replaced references to xmlParserAPIs.jar with xml-apis.jar, as the former is now deprecated in Xerces. Users wishing to use old versions of Xerces that don't have xml-apis.jar can still do so without a problem. Users wishing to build tomcat using xmlParserAPIs.jar instead of xml-apis.jar can also do so with a trivial edit in the build.xml file.
Catalina
fix 29048: Made DataSourceRealm easier to extend. (yoavs)
fix 29472: Embedded overrides add/remove Connector, but not findConnectors (luehe)
fix 29561: NullPointerException in Compiler.java:547 (luehe)
fix ServletResponse.setContentType sets response encoding after getWriter was called (Bugtraq 5062838) (luehe)
Coyote
Jasper
fix 29597: Added -javaEncoding attribute support to JspC command-line. (yoavs) 29418: Same thing, -javaEncoding added to help with this umlauts bug. (yoavs)
Cluster
Webapps
fix Fix CGI servlet so it correctly handles binary responses (eg images) - Ported from TC4. (markt)
Tomcat 5.0.26 (yoavs)
General
fix 28335: Fixed JavaDocs. (yoavs)
update Changed build dependency on JUnit from 3.7 to 3.8.1. (yoavs)
update Added ant-launcher.jar (Ant 1.6 and later) to common/lib, as it's required by the Launcher scripts. (yoavs)
fix 28989: Added ant-launcher.jar to launcher classpath. (yoavs)
fix 24723: Corrected JNDI DataSources documentation and added explicit notes about a couple of common problems. (yoavs)
fix 29258: Added explanation about jmx.jar bootstrap classpath setup to release notes. (yoavs)
Catalina
fix 29133: Fixed stop -force option processing in bin/catalina.sh. (yoavs)
fix 28943: Fixed CURRENT_DIR missing % signs in bin/startup.bat. (yoavs)
fix 29255: common/lib/naming-factory.jar missing MailSession and SendMail factories. (yoavs)
fix 29038: Create directories above context xml file as needed. (yoavs)
fix 28533: Fixed without-jni check in jk_java.m4. (yoavs)
fix 28940: Added UTF-8 encoding directive to Deployer build. (yoavs)
Coyote
fix 29162: Added quote escape for mod_jk module location. (yoavs)
fix 28837: Added Solaris includes to JK native build script. (yoavs)
fix 28914: Added threadPriority attribute and related code. (yoavs)
fix 29108: Fix chunked encoding on EBCDIC machines (remm)
fix 29166: Tweak expectations to work with pipelining (assuming the client will correctly not send the request entity body unless it gets a 100) (remm)
Jasper
update Added support for JSP compilations in a clustered environment: Make sure each server always uses the most recent version of a servlet class file, even if it was generated by another server instance. (luehe)
update Include javac errors whose line numbers cannot be mapped to JSP page in error message that is returned to client. (luehe)
update Added setJspFiles() method, to allow comma-separated list of JSPs to be specified from ant. (luehe)
Cluster
Webapps
fix 28914: Added management code for threadPriority. (yoavs)
Tomcat 5.0.25 (yoavs)
General
fix Fix some manifests (remm)
Catalina
docs javadocs correction: getMaxActive() actually returns max number of sessions that have been active at the same time, as opposed to (StandardManager.)getMaxActiveSessions(), which returns the limit (or -1) (luehe)
fix Make those classes in deploy non final so it is possible to customized them (jfarcand)
fix 28971: Regression: the server cookies should be parsed after the context is mapped, otherwise, the session cookie is never considered valid, and it will use the last one (remm).
fix 28959: Fix again mark/reset functionality, and minimize the size of the allocated buffer (remm)
fix Make SingleSignOnEntry constructor public from package protected, submitted by Brian Stansberry (remm)
fix 22176: Allow username and/or password to start and/or end in a space when using BASIC authentication (markt)
fix 22413: response.encodeURL(response.encodeURL("xxx.jsp") now works correctly in root context (markt)
fix Fix subject lost problem with JAAS realm, submitted by Janne Vaananen (jfarcand)
fix Fixed parsing of some multi range requests, and generate MIME boundaries starting with a CRLF (remm)
Coyote
fix 28850: Enable parsing error messages in the given Locale by using MessageFormat.setLocale (billbarker, luehe)
Jasper
fix Fix a bug where the out-dated version of TagInfo instance of a tag file is used when compiling the tag file (kinman)
fix Small-icon and large-icon values are not retrieved (luehe)
fix When fragment element is used, type and rtexprvalue are not set correctly (luehe)
fix 28603: JspC Ant task does not detect errors on a second compile (luehe)
fix 28840: NPE when using an Iterator for items in a JSTL forEach tag, and add support for java.util.Map and java.util.Enumeration (luehe)
update Refactoring of Mark (luehe)
fix 28696: xsi:schemaLocation should be a valid attribute for jsp:root (kinman)
fix 28604: If compiling from JspC, the absolute (instead of context-relative) path of the JSP that caused the error is now printed (when compiling from JspServlet, we continue to print only the context-relative path of the JSP) (luehe)
fix Fixed error messages for jsp.error.variable.both/alias (luehe)
fix Added setter for xpoweredBy in JSPc (luehe)
Cluster
update Refactored the session message to be an interface, so that all base classes are interfaces implemented by the different modules (fhanik)
update Supporting TTL and so time out settings for multicast sockets (fhanik)
Webapps
fix 21502: Obtain number of active sessions directly, submitted by Angus Mezick (markt)
fix 21790: Modify noshade references to align with XHTML reference guide, submitted by Henning Schmiedehausen (markt)
Tomcat 5.0.24 (remm)
General
fix Bad CVS tagging (remm)
Webapps
update Change to list any additionally JNDI data-sources that are present in the web.xml file, but not defined either globally or at the context level, on the context level maintenance page to make it possible to click on the data-source and edit it (amyroh)
Tomcat 5.0.23 (remm)
General
update New procrun binaries (mturk)
fix Fix the problems with paths having spaces in service.bat (mturk)
fix 28333: Add a message about cvs login in the case where checkout fails in the Ant netbuild (remm)
Catalina
fix When the webapp specific JspServlet inherits the mappings from the global JspServlet, we need to wipe out the wrapper corresponding to the global JspServlet from the mapper (luehe)
update If there's a non fatal exception (with validation), no exception will be rethrown by the digester. This will make the webapp startup fail if the XML is invalid and XML validation is enabled, even if the error isn't fatal (= the webapp would run without errors if validation was disabled) (remm)
fix 28262: Fix redeployment after removal of a war, submitted by Peter Rossbach (remm)
fix 28107: Simplify Ant tasks declarations, submitted by Matt Raible (remm)
update Remove the hadcoding of the extension validator (remm)
fix 13924: The spec states if an error page declaration doesn't match the original exception and the exception is an instance of ServletException then the exception should be unwrapped and a second pass made of the error page declarations (markt, luehe)
update 28272: Deploy manager command should use context.xml from war file (luehe)
update Added support for exception chaining if JDK 1.4 is present (luehe)
fix Optimization: delay parsing of the cookies (remm)
fix 19521: Add warning to RequestDumperValve docs to make users aware of possible side effects (markt)
fix java.lang.NoClassDefFoundError: org/apache/tomcat/util/compat/JdkCompat during startup on some systems (luehe)
fix Avoid NPE if there are no extensions, and validating extensions is attempted (remm)
fix 19545: CGI issues with CONTENT_LENGTH (markt)
update Expose more of the session management methods at the top-level Manager interface (luehe)
fix 18141: Support parameters with multiple values in CGI servlet (markt)
fix 9851: Digest authentication failed with Mozilla and other issues re RFC2617 (markt)
fix Always introspect for protocol hadlers, so that the attributes are meaningful (remm)
update Remove static reference in the memory protocol handler, since the JMX registration is functional (remm)
fix Stop the manager earlier, so that listeners are still present (remm)
update Allow extending SSO functionality, submitted by Brian Stansberry (remm)
Coyote
fix Set the RMI port to the one provided in parameter in JK (hgomez)
fix Small memory usage optimization in the adapter (remm)
update Treat the IS, OS, reader and writer as facades, which will be cleared after each request if the security manager is enabled (remm)
fix 19254: Provide a basic implementation for the clean-native target, submitted by marcs (markt)
update Test and related updates for the in memory protocol handler, allowing to specify the URI as a String, or (better) a char array (remm)
fix 28674: Make duplicate more friendly to a subsequent reallocation (remm)
fix Fix URI normalization where the URI is "/." (remm)
Jasper
fix 28244: XML Comment between jsp:attribute causes attributes after the comment to be ignored (kinman)
fix 19049: Clarify error message when nesting exceptions, submitted by Joseph Shraibman (markt)
fix 28361: foreach no longer works in tag file (luehe)
update Added support for exception chaining if JDK 1.4 is present (luehe)
fix Moved check for JSP resource existence into synchronized block (if JspServletWrapper==null), to avoid having multiple threads check for it simultaneously (luehe)
update Added number of JSPs that have been *re*loaded to set of monitorable attributes (luehe)
fix Fix a bug where a custom tag with tagdependent body type is not handled correctly in XML syntax (kinman)
fix 28380: Javac error with ':' and '.' in attribute names (kinman)
fix When in deployment (ie., !development) mode, save any compilation exceptions and rethrow them (instead of recompiling and getting the same exception over and over again) until the next scheduled recompilation (luehe)
fix Close URLConnection's InputStream after getting lastModified date, submitted by martin (luehe)
fix 28147: Remove canonicalization, which is not very useful here, and can cause trouble with symlinks, submitted by Rick Wong (remm)
fix 28603: JspC Ant task does not detect errors on a second compile (luehe)
fix 28604: JspC should not display the whole stack trace of errors (luehe)
fix Fixed another incidence where URLConnection was not closed when checking for lastModified date of included resources (luehe)
Cluster
fix 28161: The "smart" queue will now use the session message getUniqueId instead of sessionId, this makes sure that no messages are overridden when the queue fills up (fhanik)
fix The async replication thread will now properly exit when members join or leave the cluster (fhanik)
fix Make sure to close the channel upon server stop (fhanik)
fix Membership alive time gets updated with each new broad cast, this will keep the membership updated with the exact lifetime of each node, the cluster sorts its members by desc alive time, and change the started flag to be set earlier in the DeltaManager (fhanik)
fix Added all the interestOps to the synchronized blocks to guarantee non blocking behaviour at all times, submitted by Rainer Jung (fhanik)
update Added in the ability to run the DeltaManager/DeltaSession without a container, so that a different clustering plug in can be used to backup sessions in a primary/secondary store (fhanik)
fix Setting the interface on the multicast service if there is a bind address (fhanik)
Webapps
fix Add missing keys - connector.useBodyEncodingForURI allowTrace (amyroh)
update Add DataSourceRealm support in admin webapp (amyroh)
fix 20786: Manger webapp session output not formatted correctly for session inactive for less than 10 minutes (markt)
fix 28524: Exception throw when creating new JNDI data source (amyroh)
fix Display GlobalNamingResource config if web.xml has resource-ref definition without Context Resource config (amyroh)
fix Change to list any additionally JNDI data-sources that are present in the web.xml file, but not defined either globally or at the context level, on the context level maintenance page to make it possible to click on the data-source and edit it (amyroh)
Tomcat 5.0.22 (remm)
General
add New procrun 2 Windows wrapper (mturk)
update Xerces 2.6.2 (remm)
Catalina
fix Fix getContext("/") so current context is returned if called whilst in the root context (markt)
fix Refactor the Extension validator without using a singleton pattern to fix a possible NPE (remm)
fix Allow webapp to override JspServlet (settings) inherited from global web.xml (luehe)
Coyote
fix Add detection for JDK 1.5 (billbarker)
fix 16157: Set AuthType on HttpServletRequest, submitted by Kan Ogawa (markt)
fix Add public method consistently (jfarcand)
Jasper
fix Moved initialization of 'varName' to where it is needed (luehe)
update Allow disable tag pooling for ant task (and command line option) in jspc (funkman)
fix 28236: when reallocating, make the buffer grow faster (512 bytes at a time was not sufficient) (remm)
Modules
fix 28131: Fix expiration of delta sessions (fhanik)
fix access() on a session should not set isNew false (fhanik)
fix 28259: fixed the blocking interestOps(), although selector.select() still doesn't wakeup when a new request comes in (fhanik)
Webapps
fix Remove resource bundle which was causing problems in the admin webapp (remm)
Tomcat 5.0.21 (remm)
General
update Updated procrun binaries (mturk)
Catalina
update Add support for xml validation/namespaceAware at the context level (jfarcand)
fix 18479: Non-serializable sessions attributes should be removed (so valueUnbound is called) (markt)
fix javax.naming.NamingException after a Stop/Start cycle of a web app (jfarcand)
fix 18626: Make clear which file digester failed to parse (markt)
fix When principal caching is disabled, the saved request wasn't used by the FORM authenticator (remm)
Coyote
fix 27917: Make certain that the endpoint is closed, even if Apache has already dropped the connection (billbarker)
fix Change to the absolute path using %CD% for setting CATALINA_HOME (mturk)
fix gzip compression can also be used in HTTP 1.0 (hgomez)
Jasper
fix 27830: undefined EL variable in unterpreted text (XML syntax) causes "null" (instead of) "" to be generated (kinman)
fix Return 500 error code if JSP error page mechanism is invoked (the current impl used to return 200) (luehe)
fix 16830: bodyContent content not reset when a tag is reused (kinman)
fix 27948: NPE with null fragment (luehe)
fix 27665: Nested tags with scripting variables generates invalid code (kinman)
fix 28058: JspRuntimeLibrary.getContextRelativePath() can throw StringIndexOutOfBoundsException (kinman)
Tomcat 5.0.20 (remm)
General
code Update to Apache License 2.0 (billbarker, hgomez, jfarcand, luehe)
Catalina
fix The defaultHostName may be alias, so we need to also try to find if the registered hosts' aliases contains the defaultHostName (jfarcand)
fix 27108: Use catalina.home in the docBase for all core webapps (remm)
fix 27077: Port fix for NPE is data source realm (remm)
fix Fix some setters and operations in MBeans (remm)
fix 27127: Shutdown doesn't work with custom server port and non-default config file (remm)
fix Fix logging of errors when pausing and resuming connector (remm)
fix 27293: Fix if-unmodified-since check, using the old-and-simple trick of adding 1000 (remm)
fix Provide an implementation for getName() and getPassword() in UserDatabaseRealm, to add support for client cert (markt)
fix 27309: NPE fix if there's no local session when doing cross context (remm)
fix 27276: Fix NPE when a null password is set, submitted by Rohan Lenard (remm)
fix Reuse already existing util code in deployer (remm)
fix Clone arrays returned by getParameterValues() and getCookies() when a security manager is in place (luehe)
update Register all classloaders with JMX, so that Tomcat is actually manageable through JMX remote, and move jmx.jar to bin (remm)
fix 19852: Don't remove application parameters on stop (makt)
fix Avoid serializing Subject/Principal when persisting the session (jfarcand)
fix Make stats counters volatile (remm)
fix 27447; Pos should be reset in case of a long line (of course), and reset/skip is useless (it is allowed to just put another mark) (remm)
fix Fix mark/reset functionality (remm)
fix 27478: Fix crossContext flag when dispatching back to the original context (remm)
fix Much less verbose logging when there's a bad cookie (remm)
fix Add two MIME types, submitted by Scott Pontillo (remm)
add Add error message about the absence of JMX when running standalone (remm)
fix Initialize accessCount to 0, and call access when creating a session and in crossContext creations as well (remm, luehe)
fix 17690: Display more helpful error message if docBase is invalid for a WAR (mart)
fix 17859: Provide cygwin friendly JAVA_ENDORSED_DIRS property (markt)
fix Include session cookies in HttpServletRequest.getCookies() (luehe)
fix 18369: Prevent npe in StoreBase if a sql exception occurs (markt)
fix 27752: Due to the use of the '#' special char to replace '/', the URL must be handled in a special way (remm)
Coyote
fix 27050: keystoreFile parameter, when specified as relative, is not treated relative to $CATALINA_BASE or catalina.base property (luehe)
fix Fix JMX Request registration in JK (billbarker)
fix 27033: Encode the address in the protocol name (remm)
fix Set minSpareThreads / maxSpareThreads in JK (hgomez)
fix 27299: Make sure HexUtils is accessed before some output is made (remm)
fix 20184, 24763: getLen returns the length excluding the header (truk)
fix In makeSpace, we should compare the desiredSpace to the limit, so that we actually allow enough (remm)
fix 27513: Fix off by one when terminating threads, submitted by Sergei Zhirikov (remm)
fix Add flag to disable optimized output (which causes problem when using the buffers for input) (remm)
fix Fix problems with finding the Adapter in TC 5 (billbarker)
fix 27629: Call close to release native memory, submitted by Christian Nester (remm)
fix 27704: Result of request.getServletPath() wrong in case JSP inside jsp-property-group (luehe)
fix If using clientAuth="want", then don't change it to "need" when requesting the cert for CLIENT-CERT auth (billbarker)
fix Fix exception when attempting to pause the channel w/o specifying an address, and fix problem where requests weren't being unregistered because of a misformatted Msg (billbarker)
fix Fix thread unregistration in JK (billbarker)
Jasper
fix When security is on, propagate potential ClassNotFoundException instead of swallowing it and just dumping its stack trace (luehe)
fix Add some intellignece to the compiler for generating code for useBean action. Generate direct instantiation (use new) when possible, use bean.instantiate when bean name is specified, and for the case of invalid bean class, either issue a translation time error (instead of javac error), or generate codes to throw InstantiationException at runtime, depending on a new compiler switch, errorOnUseBeanInvalidClassAttribute(defaulted to true) (kinman)
fix According to the spec, it is a fatal error for the taglib directive to appear after actions using the prefix introduced by it (remm)
fix Close input stream to web.xml (luehe)
fix 27300: Wrong Smap when jsp comments are present (remm)
fix 27330: pageContext not defined in the body of nest tags (kinman)
fix 27338: Wrong Smap line for CDATA in scriptlets in .jspx pages (kinman)
fix 27368: Annotate several node types with missing Java line information (kinman)
fix hen a.jsp jsp:includes b.jsp that jsp:includes c.jsp, the context relative path for c.jsp is computed incorrectly (kinman)
add Added JSP monitoring facility (luehe)
fix 27517: The pageEncoding attribute is not used, when charset value is set (luehe)
update Fix SMAP mapping for inner classes (kinman)
fix 27520: Avoid NPE when folder is not readable (remm)
fix 16113: Removing then replacing a jsp page continues to give a 404, submitted by Torsten Fohrer (kinman)
fix 14359: Remove last traces of largefile option (markt)
fix 27642: trimSpaces property not settable via command-line options (luehe)
fix 18005: Provide a better error message if session expires during login process (markt)
fix 27664: Welcome files not found in combination with jsp-property-group (luehe)
fix 14228: Fix access to environment entries during webapp early startup (remm)
fix 13499: If page output is unbuffered, illegal state exception is no longer thrown on forward if and only if nothing has been written to the page (markt)
Webapps
docs 27307: Improvements to DataSource HOWTO, submitted by Felipe Leme (remm)
fix Escape '?' in generated XML of status servlet, submitted by Peter Lin (remm)
update 25160: Improve I18N for admin, submitted by Takashi Okamoto (amyroh)
fix 20770: Admin Tool removes "workDir" attribute from "context" (amyroh)
docs 16507: Update valve docs to provide pointer to the Jakarta Regexp docs (markt)
update Add JSP status info to the status servlet (luehe, remm)
fix 24085: Display group and role list when validation fails (amyroh)
Modules
fix 26988: Remove unnecessary line feeds from stdin stream of the CGI servlet, submitted by Kevin Schantz (markt)
docs Fix some docs bugs, including 27183 (remm, markt)
fix 27090: Make parameter encoding configurable (markt)
fix 27100: Remove lock obsfucation functionality as it breaks a number of webdav clients and does not appear to be covered by the webdav spec (markt)
fix Some minor clustering updates (fhanik)
fix Reenabled the doRun flag in the multicast service (fhanik)
fix 27190: Ensure webdav servlet returns correct status in response to MOVE request (markt)
fix The new and valid flags have to be set before the creation listeners are invoked (fhanik)
fix Added in the server ip and port for debug purposes when logging a ACK timeout (fhanik)
Tomcat 5.0.19 (remm)
General
fix Updates and additions to Spanish translations, submitted by Jesus Marin (larryi)
code Remove nearly all compiler warnings: remaining bad imports, deprecated digester and modeler usage (remm)
fix Add new build targets for Gumpy (billbarker)
update Update to NSIS 2.0 (remm)
update Update to latest commons-daemon (mturk)
fix Add support for silent installations in the NSIS script (remm)
Catalina
fix 12363: valueBound() must be called before the object is made available via getAttribute(), submitted by Pablo Morales (makt)
fix 26237: fixed a typo in MemoryUserDatabase which would cause problems if the pathname is aboslute, submitted by Xavier Poinsard (remm)
fix 26261: don't call expire after calling isValid, submitted by Paul Harvey (remm)
fix Use response encoding when generating error report (luehe)
fix 26051: session must not expire even if the request processing time is bigger than the session timeout (remm)
update Optimize session access: remove synchronization, minimize object allocation for events, and reduce the amount of hashtable lookups (remm)
fix Replaced SC_INTERNAL_SERVER_ERROR with SC_FORBIDDEN if anonymous access is not allowed (luehe)
fix 11042: comment in server.xml now shows that connectionTimeout should be set to 0 rather than -1 to disable timeout (markt)
fix Try to fix some character corruption in non-English resource strings in the nightly build (larryi)
fix Improvements to session activity tracking, handling the case where the session is new, as well as cross context (remm)
fix 26341: when calling the removeAttributes during session expiration, notified attributes should see the session as invalid (remm)
fix 26010: '_' was an inappropriate character to replace the path separator, since it's a common character in HTTP; '#' will be used instead (remm)
fix Add missing setUseContextClassLoader call to avoid possible classloader issue when Tomcat is embedded (jfarcand)
update Update service shutdown procedure: pause connectors, wait for a while, stop the container, stop connectors (remm)
fix Strip out any path parameter when doing request dispatcher mapping (luehe)
fix Throw the proper exception type when a name is already bound, submitted by Robert Kruger (remm)
fix 26414: add support for liking to user transactions, submitted by Robert Kruger (remm)
fix 26373: initialize mapper before load on startup servlets (remm)
fix Ignore setBufferSize()/setLocale() calls on included response (luehe)
fix 26611: forward + include was hiding the special forward request attributes (remm)
fix 26487: RFC 2254 done on whole string instead of just DN, submitted by Jeff Tulley (funkman)
fix 26715: Call endAccess after reading a session from storage so that the session properly timeouts, submitted by Jochen Strunk (remm)
fix Fix rule matching algorithm for one character constraints, such as /s/* (billbarker)
update Added support for configurable session id length (luehe)
fix The forward request attributes must reflect the original request, so only set them if the request being passed doesn't have them (remm)
fix 26838: refactor once again the enum algorithm (remm)
fix 14283: Catch and log exceptions in listeners (markt)
Coyote
fix Fix JMX self-registration of JK when loading the "normal" way (billbarker)
fix Add an option to allow the admin to *not* JMX register the requests, since reclaiming memory can be difficult in JNI mode (billbarker)
fix Add request unregistration, to avoid the memory leak which was affecting HTTP (billbarker)
fix Fix the problem that every Handler was getting added twice (billbarker)
fix Handle unregistering Requests for ChannelUnix (billbarker)
fix Don't create a monitor thread unless maxSpareThreads is smaller than maxThreads (remm)
add Allow configuring the size of the HTTP header buffer, which represents the majority of the memory allocated by Tomcat; the new default value is 4KB (remm)
update Allow the option to only "want" client authentication, submitted by Michael Becker (billbarker)
add Implement clean shutdown of the connectors, using new pause and resume methods on the connector interface (remm)
update Add support for connector pause to JK (billbarker)
fix Cleanup the logging for unknown packets in JK (remm)
fix Avoid java.util.ConcurrentModificationException seen with very high load in RequestGroupInfo (luehe)
fix 26492: consider all session ids sent as cookies until one is valid; also don't create cookie objects from sessionId cookies, which seems consistent with sessionId hiding from the URL (remm)
fix 25805: add localDataSource flag, based on code submitted by Neil Katin (remm)
fix 26567: the mapper will complain if the default host is not known, which could make mapping fail without a way to easily identify the cause (remm)
fix 25363: Expose the SSL attributes in getAttributeNames() (remm)
fix Make sure a filter is always added in all cases (remm)
Jasper
fix 26191: fix classcast exception is JSP document parser, submitted by Trond Aasan (remm)
fix 26242: add back a setVerbose setter to jspc for compatibility with Ant (remm)
fix 26276: generated TLD inconsistent after tagfile changes (kinman)
fix 26335: modification check for tagfiles does not work recursively (kinman)
fix 26432: Incorrect mapping for url pattern in jsp property group (kinman)
fix Implicit "pageContext" object no longer exposed in tag files, to comply with JSP spec (luehe)
fix 26628: Fix handling of a EL function with no arguments (remm)
fix Convert selected tag attribute types to their Fully-Qualified-Name equivalents if the taglib is JSP 1.2 based (luehe)
update Ported (from org.apache.catalina.startup.TldConfig) ability to ignore (for TLD scanning purposes) JARs (in the classloader delegation chain) that are known not to contain any TLDs (luehe)
fix 13960, 13961: Javadocs fixes, submitted by David Medinets (markt)
fix 26796: include fails when tag files are referenced in a tag directives (kinman)
fix Parser for JSP pages in XML syntax ignores custom action's body type (luehe)
Modules
fix 12361: support CGI scripts in unpacked WARs: scripts are extracted to the context work directory before execution (markt)
update Add support for URIEncoding, useBodyEncodingForURI, and allowTrace properties on the connector (larryi)
fix Updating the admin webapp for the change in type of clientAuth (billbarker)
add Add WebDAV webapp to TC5 (markt)
docs 13805: update docs to show that the shared directory is relative to CATALINA_BASE not CATALINA_HOME (markt)
update Added in distributed expire logic for the delta session (fhanik)
add Added in a module cluster interface (fhanik)
add Refactored a lot of the cluster code: the cluster element has sub elements, makes the configuration is modular (fhanik)
docs Document other methods for load balancing (remm)
docs Document that Context elements should not be placed in server.xml (yoavs, remm)
update Add examples, introductory notes, and a brief how-to notes for tag plugins (kinman)
fix Fixed bug with the fact that the manager base has a static variable called name, caused session messages to be sent to the wrong managers (fhanik)
fix Fixed serialization of principal when replicating data (fhanik)
fix Port various session fixes (fhanik)
docs Small docs updates for CGI and others (idarwin)
fix 26906: The destination path needs to be normalised after the protocol and host has been removed (if present) (markt)
fix Lock token must be returned after lock creation, submitted by Pieter van Prooijen (markt)
Tomcat 5.0.18 (remm)
General
fix Fix packaging of the source .tar.gz (remm)
fix Fix bug in the netbuild where the script would always attempt to checkout the sources (jfclere)
fix 26162: Fix typo in the minimal config (remm)
Catalina
fix Remove CGI servlet dependency on JDK 1.4 (markt)
fix 26171: Fix NPE in AccessLogValve during a reload (yoavs)
Coyote
fix Fix memory leak when spare threads are destroyed (remm, fhanik)
Modules
fix Implemented the ability to not expire sessions on shutdown, since that will expire them across the cluster (fhanik)
fix Fix initialization of the session in delta manager (fhanik)
Tomcat 5.0.17 (remm)
General
add Add minimal server.xml (yoavs)
update Upgrade to Xerces 2.6.0 (remm)
add Add service.bat for NT service installation/uninstallation (mturk)
fix 10286: Fix license typos (markt)
update Upgrade to NSIS RC 2, and add metadata to the generated installer (remm)
update New jsvc 1.0 Unix daemon wrapper (remm)
update New procrun 1.0 Windows service wrapper (billbarker)
Catalina
fix Properly implement new API methods getLocalName and getLocalPort (jfarcand)
fix 25193: Don't attempt to parse the parameters if the request body wasn't fully read (remm)
fix 25234: isValid already expires sessions, so backgroundProcess shouldn't call expire again, submitted by Paul Harvey (remm)
fix Sync catalina.properties included in the JAR with the main one (remm)
fix Fix WebDAV servlet issues: 23999, 24001, 24005 (markt)
update Managers cleanup, add stats and JMX for the PersistentManager (remm)
fix Cache the result of getURLs, which was a major performance problem when using RMI from Tomcat (remm)
update Fix authentication and authorization compliance with the final specification; also optimize algorithm (billbarker, remm)
fix 7080: Handle a null username correctly, submitted by Tim Walsh (markt)
fix JNDI realm fixes: 23190, 16541 (funkman)
fix 23885: Strings for JAAS realm (funkman)
fix 5762: Include port in HTTP_HOST environment variable, submitted by Martin Dengler (markt)
fix 5759: CGI servlet does not support extension mapping (markt)
fix 25593: Set all common resources attributes on start, including allowLinking (remm)
fix Reset the repositories array on certain method calls, and override addURL to set hasExternalRepositories to true (remm)
fix Improve creation of cross context sessions: they will now timeout correctly and they will appear as new when created (remm)
fix 8859: Correct namespace handling for lock owners in WebDAV servlet (markt)
fix Add a minTime attribute on servlets (remm)
fix 25703: ExtendedLogValve use wrong filename after rotate or checkexits case, submitted by Peter Rossbach (funkman)
fix Allow disabling the shutdown hook, which is useful when embedding using the main class with JMX (remm)
fix 25792: Fix session timeout implementation, which could lead to incorrect invalidation in some cases, submitted by Jarno Peltoniemi (remm)
fix 9625: Stack traces are now escaped to ensure correct display (markt)
fix 25885: Incorrect addApplicationParameter test, submitted by Peter Rossbach (remm)
fix 25886: Remove the check on the maximum amount of active sessions during session creation (remm)
fix 19998: Changed StringTokenizer creation to be compatible with Windows in the CGI servlet (yoavs)
fix 11682: Deploying a webapp to the root context via an Ant task when unpackWARs is true now behaves correctly (markt)
fix 25878: Add HostConfig after new Host is created via admin and prevent duplicate errorReportValve creation after restart, submitted by Peter Rossbach (amyroh)
update 25889: Allow configuring users and passwords, and automatically reconnect if connection fails for some reason, submitted by Peter Rossbach (remm)
fix Fix array out of bounds when the docBase of a webapp is equal to "" (remm)
fix Update spanish translation, submitted by Jesus Marin (remm)
add Add backgroundProcess method on the manager (fhanik, remm)
fix Cleanup of HostConfig, and add some i18n (remm)
fix When creating a Host dynamically with JMX, the autoDeploy should be set to false (remm)
Coyote
fix Update Japanese strings, submitted by Kazuhiro Kazama (larryi)
fix Fix JkCoyote to properly handle the distinction between localName/Port and serverName/Port (billbarker)
fix 25199: Fix NPE when there's no default servlet, submitted by Torsten Fohrer (remm)
fix Port optimization from CharChunk to prevent needless allocation of byte arrays (larryi)
update Add a flag to allow using the encoding specified in the contentType or using setCharacterEncoding for the URI paramters (remm)
fix When redirecting to a folder, append the query string if not null, to avoid losing query parameters, and refactor to use the new postParseRequest processing (remm)
fix 25603: Adding a 'truststoreType' attribute, and making the trustStorePassword default to the keystorePass (billbarker)
fix Add a try/catch when adding a wrapper, similar to what is done when handling contexts (remm)
fix Fix host removal from the mapper (remm)
fix Small cleanup of a thread startup in the thread pool (billbarker)
add Repackaging ApacheConfig and friends for Tomcat 5 in the org.apache.jk.config package (billbarker)
fix Fix error-condition logging statements in MapperListener (billbarker)
fix Add a privileged action for setDateHeader (billbarker)
add 25819: Add support for the security manager in JK (billbarker)
fix Cosmetic fixes in the Mapper (remm)
fix Report an exception which occurred during a low level flush (remm)
fix Tweak thread pool according to suggestions from Dave Dice (remm)
fix Add an "allowTrace" flag on the connector, and disable TRACE by default (remm)
fix Move the call to setSocketOptions to prevent a potential DoS condition when using SSL, submitted by Alex Chan (billbarker)
Jasper
fix Avoid using deprecated Character.isSapce method in ParserController (kinman)
fix Update Japanese strings, submitted by Kazuhiro Kazama (larryi)
update Rewrite error checking when processing tag files to conform with the lastest JSP spec (kinman)
fix When a tag file includes a file, make sure the included file environment maintains the isTag and directiveOnly properties (kinman)
fix Have JspC.execute() propagate its exceptions (luehe)
fix For tag files, don't issue error for multiple definition when both are for dynamic-attributes (kinman)
fix 25263: Bad smap when template text got concatenated (kinman)
fix The spec allows an attribute to be specified in multple tag directives, if they have the same value; it is an error if not (kinman)
fix Use development mode by default: mappedFile is now true (remm)
fix 25787: Directives added to working tag files are not generated (kinman)
Webapps
fix Update Japanese admin webapp strings, submitted by Kazuhiro Kazama (larryi)
fix 25138: i18n fixes in admin, submitted by Takashi Okamoto (amyroh)
docs The Context (or DefaultContext) element should now be used to configure the file based resources (which is the default); other types of resources can have their properties set through this element (remm)
docs 25119: Remove mention of the pause attribute in Ant task (remm)
docs Update connector documentation to refer to two connectors: HTTP and AJP, in an attempt to clear confusion (remm)
fix 24771: Unable to create new connector (markt)
add Add manager statistics for each context, as well as navigation links so that this is actually useful (remm)
docs Document new HTTP connector flags (remm, larryi)
docs Add architecture documentation (yoavs)
docs 25555: Updating SSO docs, submitted by Brian Stansberry (billbarker)
docs Clustering docs update (fhanik)
docs The war attribute of the deploy task should point to a .war (remm)
docs In the appdev example, use the localWar attribute instead of war for deploying a local webapp (remm)
docs 9960: Clarify potential issues using xml context files and auto deployment (markt)
docs 25774: Added note about GNU make for daemon on FreeBSD systems (yoavs)
docs Add info that session persistence can be disabled by setting the attribute to an empty String (remm)
Modules
fix 25493: Implemented true synchronous replication (fhanik)
fix Longer read timeout, since under load it can take a while (fhanik)
add Adding in a regular io cluster listener to be used with JDK 1.3 (fhanik)
fix Fix the validator task after the digester factory refactoring (remm)
fix Fix packaging of the deployer JAR (remm)
add Implemented compression of the data sent over the wire by the cluster (fhanik)
fix Only print a message when the connection fails (fhanik)
fix Removed sychronization overhead on clustering (fhanik)
fix Status servlets tweaks, to allow extending it (remm)
fix 25948: Undeploy should be called with the displayed path to be able to work on the root context, submitted by Peter Rossbach (remm)
fix Remove incorrect className attribute in proxy HOWTO (remm)
fix Fixed 100% cpu bug with the replication listener (fhanik)
add Implemented socket pool for replication since the synchronized send became a bottleneck (fhanik)
add Implement delta replication (fhanik)
fix Clustering performance improvements (fhanik)
fix Fixed a bug in a dead lock with the pooled socket sender when a member crashes (fhanik)
add Implemented distributed expiration of sessions (fhanik)
fix Print out a warning if no socket is returned from the pool and we are still connected (fhanik)
update Changing the default manager to be DeltaManager (fhanik)
Tomcat 5.0.16 (remm)
Catalina
fix Catch exception in WebappLoader when there is an empty jar file (amyroh)
fix 25033: Calculating the object name should occur as early as possible, to fix a stop/start scenario based on different object instances (remm)
fix Fix JMX object name generator when there are valves with the same classname in the pipeline (remm)
fix 25079: CL.getResource will return JAR based URLs for .class files (remm)
update Make a lot of manager and session fields protected instead of private (remm)
update Add many fields in JMX for StandardContext and StandardDefaultContext (remm)
update Add managerChecksFrequency field to DefaultContext (remm)
Jasper
update General cleanup of the per thread tag handlers (luehe)
fix In XML syntax, recognize \$ escape sequence in template text (kinman)
fix Make sure that white spaces in template texts around <![CDATA[...]]> are trimmed (kinman)
Webapps
docs Balancer webapp documentation (yoavs)
docs Add back in reference to using mod_jk for serving static content (glenn)
docs Document new flags for the DefaultContext, Context and Resources elements (remm)
fix 25078: Fix serverinfo Ant task (remm)
fix The line numbers for uncommenting cgi and ssi keeps on getting out of sync with web.xml: an attempt at rewording to not have them get out of sync (funkman)
Tomcat 5.0.15 (remm)
General
fix Remove useCanonicalCaches system property from JVM startup on Windows, as Sun JDK 1.4.2_02 fixes the bad behavior (remm)
docs In the Servlet spec, add missing package Javadoc description (jfarcand)
update Update to commons-daemon 1.0 alpha (jfclere)
update Use base-jakarta.loc property to avoid hardcoding locations (jfclere)
Catalina
update Merge digester's initialization logic into one class and add schema support for parsers other than Xerces (jfarcand)
update Modify the MBean lifecycle for the containers: the MBeans will now be removed only on destroy, rather than on stop (remm)
fix 9723: Avoid unnecessary calls to RequestUtil.filter, submitted by Arvind Srinivasan (amyroh)
fix 23853: add MBean description for DatasourceRealm, based on a patch by Kyle VanderBeek (amyroh)
fix Fix unregistration of valves on stop (the objectname should be reset so that the valve is registered again) (remm)
fix Fix registration of the root context through JMX (basically, it's the usual "/" to "" conversion for the path) (remm)
update All the properties defined in catalina.properties will now be set as system properties (remm)
update Add fields to control the resources, as well as set them globally using DefaultContext (remm)
fix In PersistentManagerBase, return the object instead of a null, and throw the proper exception (jfarcand)
add Extend digester to be able to do system property replacement in server.xml and the context config files, using the ${...} syntax used by Ant (remm)
fix 24006: allow header handling in WebDAV servlet, submitted by Mark Thomas (remm)
fix 24368: Fix unhandled exception submitted by Mark Thomas (remm)
fix 23764: fix SSO logout (remm)
fix 24829: The command is the last parameter, not the first one (remm)
fix 24832: Merge code from JDBC realm, fixing the valve after a restart of the database, submitted by submitted by Peter Rossbach (remm)
update 23881: SSO in embedded Tomcat, submitted by Brian Stansberry (remm)
update When calling ServletContext.log, append the application's name so we know from which application the log is coming (jfarcand)
fix Don't throw an ISE if Session.getLastModified is called while the session is expiring, submitted by Brian Stansberry (remm)
fix 9077: When a session timeouts, it won't logout of all webapps, submitted by Brian Stansberry (remm)
Coyote
update Added support for localized messages in the thread pool (luehe)
fix 24270: NoClassDefFoundError when running in security mode (jfarcand)
update Correct any maxThreads settings < 10 in adjustLimits(), since they would result in a non functional connector (luehe)
fix 24428: No continue if not HTTP/1.1 (remm)
fix Encode address property so Connector can handle IPV6 address in ObjectName (amyroh)
fix Don't add the charset if it's the default one (remm)
fix Add getter for RequestInfo.globalProcessor - it was returning AttributeNotFoundException because of missing getter (amyroh)
update Add a limit to the size of a POST which will be processed using getParameter (remm)
update Refactor postParseRequest to avoid throwing an exception (billbarker)
fix Only set charset when it is explicitely set (billbarker)
fix Add new JMX connector attributes (remm)