[pkg-java] r4300 - in trunk/tomcat5.5: . build build/resources build/resources/confinstall build/resources/deployer build/resources/mbeans connectors connectors/coyote/src/java/org/apache/coyote connectors/coyote/src/java/org/apache/coyote/tomcat4 connectors/http11/src/java/org/apache/coyote/http11 connectors/jk connectors/jk/conf connectors/jk/java/org/apache/ajp connectors/jk/java/org/apache/coyote/ajp connectors/jk/java/org/apache/jk/common connectors/jk/java/org/apache/jk/server connectors/jk/jkstatus connectors/jk/jkstatus/example connectors/jk/jkstatus/src/share/org/apache/jk/status connectors/jk/jkstatus/test/src/share/org/apache/jk/status connectors/jk/native connectors/jk/native/apache-1.3 connectors/jk/native/apache-2.0 connectors/jk/native/common connectors/jk/native/iis connectors/jk/native/iis/installer connectors/jk/native/iis/installer/conf connectors/jk/native/iis/pcre connectors/jk/native/jni connectors/jk/native/netscape connectors/jk/native/nt_service connectors/jk/native/scripts/build connectors/jk/tools connectors/jk/xdocs connectors/jk/xdocs/ajp connectors/jk/xdocs/generic_howto connectors/jk/xdocs/miscellaneous connectors/jk/xdocs/news connectors/jk/xdocs/reference connectors/jk/xdocs/webserver_howto connectors/jk3 connectors/jni connectors/jni/java/org/apache/tomcat/jni connectors/jni/native connectors/jni/native/build connectors/jni/native/build/rpm connectors/jni/native/include connectors/jni/native/os/unix connectors/jni/native/os/win32 connectors/jni/native/src connectors/jni/native/srclib connectors/procrun/bin connectors/procrun/bin/amd64 connectors/procrun/bin/ia64 connectors/util connectors/util/java/org/apache/tomcat/util/buf connectors/util/java/org/apache/tomcat/util/http connectors/util/java/org/apache/tomcat/util/net/jsse connectors/util/java/org/apache/tomcat/util/threads container container/catalina container/catalina/src/bin container/catalina/src/conf container/catalina/src/share/org/apache/catalina/authenticator container/catalina/src/share/org/apache/catalina/connector container/catalina/src/share/org/apache/catalina/core container/catalina/src/share/org/apache/catalina/deploy container/catalina/src/share/org/apache/catalina/loader container/catalina/src/share/org/apache/catalina/mbeans container/catalina/src/share/org/apache/catalina/realm container/catalina/src/share/org/apache/catalina/security container/catalina/src/share/org/apache/catalina/servlets container/catalina/src/share/org/apache/catalina/session container/catalina/src/share/org/apache/catalina/ssi container/catalina/src/share/org/apache/catalina/startup container/catalina/src/share/org/apache/catalina/users container/catalina/src/share/org/apache/catalina/util container/catalina/src/share/org/apache/catalina/valves container/modules container/modules/cluster container/modules/cluster/etc container/modules/cluster/src/share/org/apache/catalina/cluster container/modules/cluster/src/share/org/apache/catalina/cluster/authenticator container/modules/cluster/src/share/org/apache/catalina/cluster/mcast container/modules/cluster/src/share/org/apache/catalina/cluster/session container/modules/cluster/src/share/org/apache/catalina/cluster/tcp container/modules/cluster/test container/modules/cluster/test/conf container/modules/cluster/test/src/share/org/apache/catalina/cluster/io container/modules/cluster/test/src/share/org/apache/catalina/cluster/mcast container/modules/cluster/test/src/share/org/apache/catalina/cluster/session container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp container/modules/groupcom container/modules/groupcom/doc container/modules/groupcom/etc container/modules/groupcom/src/share/org/apache/catalina/tribes container/modules/groupcom/src/share/org/apache/catalina/tribes/group container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors container/modules/groupcom/src/share/org/apache/catalina/tribes/membership container/modules/groupcom/src/share/org/apache/catalina/tribes/transport container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio container/modules/groupcom/test/java/org/apache/catalina/tribes/demos container/modules/groupcom/test/java/org/apache/catalina/tribes/test container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport container/modules/ha container/modules/ha/etc container/modules/ha/src/share/org/apache/catalina/ha container/modules/ha/src/share/org/apache/catalina/ha/session container/modules/ha/src/share/org/apache/catalina/ha/tcp container/modules/storeconfig container/modules/storeconfig/docs container/modules/storeconfig/src/share/org/apache/catalina/storeconfig container/modules/storeconfig/test container/modules/storeconfig/test/conf container/modules/storeconfig/test/src/share/org/apache/catalina/storeconfig container/modules/storeconfig-ha container/modules/storeconfig-ha/docs container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig container/modules/storeconfig-ha/test container/modules/storeconfig-ha/test/conf container/modules/storeconfig-ha/test/src/share/org/apache/catalina/storeconfig container/tester container/tester/src/bin container/tester/src/conf container/tester/src/tester/org/apache/tester container/tester/src/tester/org/apache/tester/shared container/tester/src/tester/org/apache/tester/unpshared container/tester/src/tester/org/apache/tester/unshared container/tester/web container/tester/web/WEB-INF container/tester/web/WEB-INF/cgi container/webapps container/webapps/ROOT container/webapps/ROOT/admin container/webapps/admin container/webapps/admin/WEB-INF container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector container/webapps/admin/connector container/webapps/admin/context container/webapps/admin/host container/webapps/admin/realm container/webapps/admin/resources container/webapps/admin/server container/webapps/admin/service container/webapps/admin/users container/webapps/admin/valve container/webapps/balancer container/webapps/balancer/META-INF container/webapps/balancer/WEB-INF container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/rules container/webapps/balancer/WEB-INF/config container/webapps/docs container/webapps/docs/META-INF container/webapps/docs/WEB-INF container/webapps/docs/appdev container/webapps/docs/appdev/sample container/webapps/docs/appdev/sample/docs container/webapps/docs/appdev/sample/src/mypackage container/webapps/docs/appdev/sample/web container/webapps/docs/appdev/sample/web/WEB-INF container/webapps/docs/architecture container/webapps/docs/architecture/startup container/webapps/docs/catalina/docs/api container/webapps/docs/config container/webapps/docs/funcspecs container/webapps/docs/jasper/docs/api container/webapps/host-manager container/webapps/host-manager/WEB-INF container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager container/webapps/jmxremote container/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote container/webapps/manager container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager container/webapps/webdav debian jasper jasper/doc jasper/src/bin jasper/src/share/org/apache/jasper jasper/src/share/org/apache/jasper/compiler jasper/src/share/org/apache/jasper/resources jasper/src/share/org/apache/jasper/runtime jasper/src/share/org/apache/jasper/servlet jasper/src/share/org/apache/jasper/tagplugins/jstl servletapi/jsr152 servletapi/jsr152/examples servletapi/jsr152/examples/WEB-INF/classes/sessions servletapi/jsr152/examples/forward servletapi/jsr152/examples/jsp2/el servletapi/jsr152/examples/jsp2/jspx servletapi/jsr152/examples/jsp2/misc servletapi/jsr152/examples/jsp2/tagfiles servletapi/jsr152/examples/security/protected servletapi/jsr152/examples/sessions servletapi/jsr152/examples/snp servletapi/jsr152/src/share/javax/servlet/jsp servletapi/jsr152/src/share/javax/servlet/jsp/el servletapi/jsr152/src/share/javax/servlet/jsp/tagext servletapi/jsr154 servletapi/jsr154/src/share/dtd

mkoch at alioth.debian.org mkoch at alioth.debian.org
Wed Oct 3 19:12:03 UTC 2007


Author: mkoch
Date: 2007-10-03 19:12:01 +0000 (Wed, 03 Oct 2007)
New Revision: 4300

Added:
   trunk/tomcat5.5/connectors/TomcatUTF8.war
   trunk/tomcat5.5/connectors/jk/jkstatus/example/show.txt
   trunk/tomcat5.5/connectors/jk/native/apache-2.0/bldjk54.qclsrc
   trunk/tomcat5.5/connectors/jk/native/common/ap_snprintf.c
   trunk/tomcat5.5/connectors/jk/native/common/ap_snprintf.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_url.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_url.h
   trunk/tomcat5.5/connectors/jk/native/iis/Makefile.x86
   trunk/tomcat5.5/connectors/jk/native/iis/installer/conf/rewrite.properties
   trunk/tomcat5.5/connectors/jk/native/iis/pcre/dftables.x86
   trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.amd64
   trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.ia64
   trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.x86
   trunk/tomcat5.5/connectors/jk/native/scripts/build/jk_common.m4
   trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/timeouts.xml
   trunk/tomcat5.5/connectors/jk3/
   trunk/tomcat5.5/connectors/jk3/ROADMAP
   trunk/tomcat5.5/connectors/jni/native/srclib/
   trunk/tomcat5.5/connectors/jni/native/srclib/VERSIONS
   trunk/tomcat5.5/connectors/patch.txt
   trunk/tomcat5.5/connectors/procrun/bin/amd64/
   trunk/tomcat5.5/connectors/procrun/bin/amd64/tomcat5.exe
   trunk/tomcat5.5/connectors/procrun/bin/amd64/tomcat5w.exe
   trunk/tomcat5.5/connectors/procrun/bin/ia64/
   trunk/tomcat5.5/connectors/procrun/bin/ia64/tomcat5.exe
   trunk/tomcat5.5/connectors/procrun/bin/ia64/tomcat5w.exe
   trunk/tomcat5.5/connectors/testdata.rtf
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/deploy/SecurityRoleRef.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/mbeans/JMXAdaptorLifecycleListener.java
Removed:
   trunk/tomcat5.5/connectors/jk/jkstatus/build/
Modified:
   trunk/tomcat5.5/build.xml
   trunk/tomcat5.5/build/.classpath
   trunk/tomcat5.5/build/.project
   trunk/tomcat5.5/build/BENCHMARKS.txt
   trunk/tomcat5.5/build/BUILDING.txt
   trunk/tomcat5.5/build/RELEASE-NOTES
   trunk/tomcat5.5/build/RUNNING.txt
   trunk/tomcat5.5/build/build.properties.default
   trunk/tomcat5.5/build/build.xml
   trunk/tomcat5.5/build/resources/build.xml
   trunk/tomcat5.5/build/resources/confinstall/server_1.xml
   trunk/tomcat5.5/build/resources/confinstall/tomcat-users_1.xml
   trunk/tomcat5.5/build/resources/deployer/build.xml
   trunk/tomcat5.5/build/resources/logging.properties
   trunk/tomcat5.5/build/resources/mbeans/tomcat5-ant.xml
   trunk/tomcat5.5/build/resources/tomcat.spec
   trunk/tomcat5.5/build/resources/welcome.main.html
   trunk/tomcat5.5/build/sign.bat
   trunk/tomcat5.5/build/tag.bat
   trunk/tomcat5.5/build/tomcat.nsi
   trunk/tomcat5.5/connectors/coyote/src/java/org/apache/coyote/RequestInfo.java
   trunk/tomcat5.5/connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteAdapter.java
   trunk/tomcat5.5/connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java
   trunk/tomcat5.5/connectors/http11/src/java/org/apache/coyote/http11/InternalAprInputBuffer.java
   trunk/tomcat5.5/connectors/jk/HOWTO-RELEASE
   trunk/tomcat5.5/connectors/jk/build.xml
   trunk/tomcat5.5/connectors/jk/conf/uriworkermap.properties
   trunk/tomcat5.5/connectors/jk/java/org/apache/ajp/RequestHandler.java
   trunk/tomcat5.5/connectors/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java
   trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/HandlerRequest.java
   trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/JkInputStream.java
   trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/MsgAjp.java
   trunk/tomcat5.5/connectors/jk/java/org/apache/jk/server/JkMain.java
   trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java
   trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkResult.java
   trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkSoftware.java
   trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusParser.java
   trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java
   trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusUpdateLoadbalancerTask.java
   trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusUpdateWorkerTask.java
   trunk/tomcat5.5/connectors/jk/jkstatus/test/src/share/org/apache/jk/status/JkStatusParserTest.java
   trunk/tomcat5.5/connectors/jk/native/STATUS.txt
   trunk/tomcat5.5/connectors/jk/native/apache-1.3/Makefile.netware
   trunk/tomcat5.5/connectors/jk/native/apache-1.3/Makefile.vc
   trunk/tomcat5.5/connectors/jk/native/apache-1.3/NWGNUmakefile.mak
   trunk/tomcat5.5/connectors/jk/native/apache-1.3/mod_jk.c
   trunk/tomcat5.5/connectors/jk/native/apache-1.3/mod_jk.dsp
   trunk/tomcat5.5/connectors/jk/native/apache-2.0/Makefile.vc
   trunk/tomcat5.5/connectors/jk/native/apache-2.0/NWGNUmakefile
   trunk/tomcat5.5/connectors/jk/native/apache-2.0/bldjk.qclsrc
   trunk/tomcat5.5/connectors/jk/native/apache-2.0/mod_jk.c
   trunk/tomcat5.5/connectors/jk/native/apache-2.0/mod_jk.dsp
   trunk/tomcat5.5/connectors/jk/native/common/jk_ajp12_worker.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_ajp13.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_ajp_common.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_ajp_common.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_connect.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_connect.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_global.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_jni_worker.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_lb_worker.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_lb_worker.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_logger.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_map.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_map.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_msg_buff.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_msg_buff.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_mt.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_service.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_shm.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_shm.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_status.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_types.h.in
   trunk/tomcat5.5/connectors/jk/native/common/jk_uri_worker_map.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_uri_worker_map.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_util.c
   trunk/tomcat5.5/connectors/jk/native/common/jk_util.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_version.h
   trunk/tomcat5.5/connectors/jk/native/common/jk_worker.c
   trunk/tomcat5.5/connectors/jk/native/common/list.mk.in
   trunk/tomcat5.5/connectors/jk/native/common/portable.h.sample
   trunk/tomcat5.5/connectors/jk/native/configure.in
   trunk/tomcat5.5/connectors/jk/native/iis/Makefile.amd64
   trunk/tomcat5.5/connectors/jk/native/iis/Makefile.ia64
   trunk/tomcat5.5/connectors/jk/native/iis/README
   trunk/tomcat5.5/connectors/jk/native/iis/installer/conf/uriworkermap.properties
   trunk/tomcat5.5/connectors/jk/native/iis/installer/isapi-redirector-win32-msi.ism
   trunk/tomcat5.5/connectors/jk/native/iis/isapi.dsp
   trunk/tomcat5.5/connectors/jk/native/iis/isapi_redirect.rc
   trunk/tomcat5.5/connectors/jk/native/iis/jk_isapi_plugin.c
   trunk/tomcat5.5/connectors/jk/native/jni/Makefile.netware
   trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.linux
   trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.netware
   trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.solaris
   trunk/tomcat5.5/connectors/jk/native/netscape/README
   trunk/tomcat5.5/connectors/jk/native/netscape/jk_nsapi_plugin.c
   trunk/tomcat5.5/connectors/jk/native/netscape/nsapi.dsp
   trunk/tomcat5.5/connectors/jk/native/nt_service/jk_nt_service.c
   trunk/tomcat5.5/connectors/jk/tools/jkrelease.sh
   trunk/tomcat5.5/connectors/jk/xdocs/ajp/ajpv13a.xml
   trunk/tomcat5.5/connectors/jk/xdocs/ajp/project.xml
   trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/loadbalancers.xml
   trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/project.xml
   trunk/tomcat5.5/connectors/jk/xdocs/index.xml
   trunk/tomcat5.5/connectors/jk/xdocs/miscellaneous/changelog.xml
   trunk/tomcat5.5/connectors/jk/xdocs/miscellaneous/project.xml
   trunk/tomcat5.5/connectors/jk/xdocs/news/20041100.xml
   trunk/tomcat5.5/connectors/jk/xdocs/news/20050101.xml
   trunk/tomcat5.5/connectors/jk/xdocs/news/20060101.xml
   trunk/tomcat5.5/connectors/jk/xdocs/news/20070301.xml
   trunk/tomcat5.5/connectors/jk/xdocs/news/project.xml
   trunk/tomcat5.5/connectors/jk/xdocs/project.xml
   trunk/tomcat5.5/connectors/jk/xdocs/reference/apache.xml
   trunk/tomcat5.5/connectors/jk/xdocs/reference/iis.xml
   trunk/tomcat5.5/connectors/jk/xdocs/reference/project.xml
   trunk/tomcat5.5/connectors/jk/xdocs/reference/status.xml
   trunk/tomcat5.5/connectors/jk/xdocs/reference/workers.xml
   trunk/tomcat5.5/connectors/jk/xdocs/style.xsl
   trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/apache.xml
   trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/iis.xml
   trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/nes.xml
   trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/project.xml
   trunk/tomcat5.5/connectors/jni/java/org/apache/tomcat/jni/Socket.java
   trunk/tomcat5.5/connectors/jni/jnirelease.sh
   trunk/tomcat5.5/connectors/jni/native/BUILDING
   trunk/tomcat5.5/connectors/jni/native/Makefile.in
   trunk/tomcat5.5/connectors/jni/native/build.conf
   trunk/tomcat5.5/connectors/jni/native/build/buildcheck.sh
   trunk/tomcat5.5/connectors/jni/native/build/get-version.sh
   trunk/tomcat5.5/connectors/jni/native/build/lineends.pl
   trunk/tomcat5.5/connectors/jni/native/build/mkdir.sh
   trunk/tomcat5.5/connectors/jni/native/build/rpm/tcnative.spec.in
   trunk/tomcat5.5/connectors/jni/native/build/tcnative.m4
   trunk/tomcat5.5/connectors/jni/native/buildconf
   trunk/tomcat5.5/connectors/jni/native/config.layout
   trunk/tomcat5.5/connectors/jni/native/configure.in
   trunk/tomcat5.5/connectors/jni/native/include/tcn_version.h
   trunk/tomcat5.5/connectors/jni/native/os/unix/system.c
   trunk/tomcat5.5/connectors/jni/native/os/win32/libtcnative.rc
   trunk/tomcat5.5/connectors/jni/native/os/win32/system.c
   trunk/tomcat5.5/connectors/jni/native/src/jnilib.c
   trunk/tomcat5.5/connectors/jni/native/src/multicast.c
   trunk/tomcat5.5/connectors/jni/native/src/network.c
   trunk/tomcat5.5/connectors/jni/native/src/proc.c
   trunk/tomcat5.5/connectors/jni/native/src/ssl.c
   trunk/tomcat5.5/connectors/jni/native/src/sslcontext.c
   trunk/tomcat5.5/connectors/jni/native/tcnative.pc.in
   trunk/tomcat5.5/connectors/procrun/bin/tomcat5.exe
   trunk/tomcat5.5/connectors/procrun/bin/tomcat5w.exe
   trunk/tomcat5.5/connectors/util/build.xml
   trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/buf/B2CConverter.java
   trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/buf/UDecoder.java
   trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/ContentType.java
   trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/Cookies.java
   trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/ServerCookie.java
   trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java
   trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/threads/ThreadPool.java
   trunk/tomcat5.5/container/.classpath
   trunk/tomcat5.5/container/catalina/build.xml
   trunk/tomcat5.5/container/catalina/src/bin/catalina-tasks.xml
   trunk/tomcat5.5/container/catalina/src/bin/catalina.bat
   trunk/tomcat5.5/container/catalina/src/bin/catalina.sh
   trunk/tomcat5.5/container/catalina/src/bin/catalina.xml
   trunk/tomcat5.5/container/catalina/src/bin/jmxaccessor-tasks.xml
   trunk/tomcat5.5/container/catalina/src/conf/catalina.policy
   trunk/tomcat5.5/container/catalina/src/conf/context.xml
   trunk/tomcat5.5/container/catalina/src/conf/server-minimal.xml
   trunk/tomcat5.5/container/catalina/src/conf/server.xml
   trunk/tomcat5.5/container/catalina/src/conf/tomcat-users.xml
   trunk/tomcat5.5/container/catalina/src/conf/web.xml
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/authenticator/FormAuthenticator.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/authenticator/SavedRequest.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/Response.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/StandardContext.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/deploy/NamingResources.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/JAASRealm.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/JNDIRealm.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/MemoryRealm.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/RealmBase.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/security/SecurityClassLoad.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/JDBCStore.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/ManagerBase.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/mbeans-descriptors.xml
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/ExpressionParseTree.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/ExpressionTokenizer.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSICommand.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConditional.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConditionalState.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConfig.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIEcho.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIExec.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIExternalResolver.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFilter.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFlastmod.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFsize.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIInclude.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIMediator.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIPrintenv.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIProcessor.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServlet.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServletRequestUtil.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSISet.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIStopProcessingException.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/LocalStrings_ja.properties
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/TldConfig.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/WebRuleSet.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/users/mbeans-descriptors.xml
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/util/RequestUtil.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java
   trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java
   trunk/tomcat5.5/container/modules/build.properties
   trunk/tomcat5.5/container/modules/build.xml
   trunk/tomcat5.5/container/modules/cluster/build.xml
   trunk/tomcat5.5/container/modules/cluster/etc/cluster-server.xml
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/LocalStrings.properties
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/LocalStrings.properties
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastService.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/package.html
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaManager.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaRequest.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/LocalStrings.properties
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/AsyncSocketSender.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ClusterReceiverBase.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSenders.properties
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/FastAsyncSocketSender.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationTransmitter.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SendMessageData.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationListener.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java
   trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/cluster/test/build.xml
   trunk/tomcat5.5/container/modules/cluster/test/conf/log4j.xml
   trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/io/XByteBufferTest.java
   trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/mcast/McastMemberTest.java
   trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/session/DeltaManagerTest.java
   trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/session/DeltaSessionTest.java
   trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/DataSenderTest.java
   trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/ReplicationTransmitterTest.java
   trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/ReplicationValveTest.java
   trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/SimpleTcpClusterTest.java
   trunk/tomcat5.5/container/modules/cluster/to-do.txt
   trunk/tomcat5.5/container/modules/groupcom/build.xml
   trunk/tomcat5.5/container/modules/groupcom/doc/faq.xml
   trunk/tomcat5.5/container/modules/groupcom/doc/introduction.xml
   trunk/tomcat5.5/container/modules/groupcom/doc/project.xml
   trunk/tomcat5.5/container/modules/groupcom/doc/setup.xml
   trunk/tomcat5.5/container/modules/groupcom/doc/tomcat-docs.xsl
   trunk/tomcat5.5/container/modules/groupcom/etc/cluster-server.xml
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/LocalStrings.properties
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/RemoteProcessException.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/AbsoluteOrder.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/RpcMessage.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/membership/LocalStrings.properties
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/membership/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/package.html
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/DataSender.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/LocalStrings.properties
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/PooledSender.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/ReceiverBase.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/ReplicationTransmitter.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/BioReceiver.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/BioSender.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/MultipointBioSender.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
   trunk/tomcat5.5/container/modules/groupcom/test-cases.txt
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/CoordinationDemo.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/EchoRpcTest.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/MapDemo.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/TestNioSender.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/TribesTestSuite.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestChannelOptionFlag.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors/TestNonBlockingCoordinator.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors/TestTwoPhaseCommit.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io/TestSenderConnections.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io/TestSerialization.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/MemberSerialization.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestDomainFilter.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestMemberArrival.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestTcpFailureDetector.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioReceive.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioSend.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioValidateSend.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketReceive.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketSend.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketTribesReceive.java
   trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketValidateReceive.java
   trunk/tomcat5.5/container/modules/groupcom/to-do.txt
   trunk/tomcat5.5/container/modules/ha/build.xml
   trunk/tomcat5.5/container/modules/ha/etc/cluster-server.xml
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/ClusterMessageBase.java
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/LocalStrings.properties
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/package.html
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/session/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/LocalStrings.properties
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/SendMessageData.java
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
   trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/build.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/docs/Readme.txt
   trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/LocalStrings.properties
   trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/server-registry.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/test/build.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/context.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/log4j.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/server-registry-test.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/server.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/test/genstore.xml
   trunk/tomcat5.5/container/modules/storeconfig-ha/test/src/share/org/apache/catalina/storeconfig/StoreContextAppenderTest.java
   trunk/tomcat5.5/container/modules/storeconfig-ha/to-do.txt
   trunk/tomcat5.5/container/modules/storeconfig/build.xml
   trunk/tomcat5.5/container/modules/storeconfig/docs/Readme.txt
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/CatalinaClusterSF.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/ConnectorSF.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/IDynamicPropertyStoreAppender.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/LocalStrings.properties
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/PersistentManagerSF.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardContextSF.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardEngineSF.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardHostSF.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardServerSF.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardServiceSF.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/mbeans-descriptors.xml
   trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml
   trunk/tomcat5.5/container/modules/storeconfig/test/build.xml
   trunk/tomcat5.5/container/modules/storeconfig/test/conf/context.xml
   trunk/tomcat5.5/container/modules/storeconfig/test/conf/log4j.xml
   trunk/tomcat5.5/container/modules/storeconfig/test/conf/server-registry-test.xml
   trunk/tomcat5.5/container/modules/storeconfig/test/conf/server.xml
   trunk/tomcat5.5/container/modules/storeconfig/test/genstore.xml
   trunk/tomcat5.5/container/modules/storeconfig/test/src/share/org/apache/catalina/storeconfig/StoreContextAppenderTest.java
   trunk/tomcat5.5/container/modules/storeconfig/to-do.txt
   trunk/tomcat5.5/container/tester/build.xml
   trunk/tomcat5.5/container/tester/src/bin/tester.xml
   trunk/tomcat5.5/container/tester/src/conf/tomcat-users.xml
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Aggregate01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Aggregate02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication03.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication05.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication06.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/CharArrayResponse.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/CharArrayWriterUpperCase.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context00.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextBean.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextListener01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextListener02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/DatePropertyEditor.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Decoding01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage03.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage04.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage05.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage06.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage07.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest02a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse04.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse04a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00d.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward03.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward03a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04b.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05b.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06b.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07b.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08b.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward09.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetHeaders01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetInputStream01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetLocales01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetLocales02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetParameter01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetParameterMap00.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetQueryString01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Golden01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00d.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include02a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include03.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include03a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04b.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include06a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07b.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07c.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include09.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include10.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include10a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Jndi01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Jndi02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle03.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Redirect01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Redirect01a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Reflection01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Request01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/RequestListener01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Reset01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources03.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources04.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources05.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources06.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01a.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01c.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session03.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session04.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session05.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session06.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionBean.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener02.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener03.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SetBufferSize01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SetLocale01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/StaticFilter.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/StaticLogger.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TestClient.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterException.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterHttpServletRequestWrapper.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterHttpServletResponseWrapper.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterServletRequestWrapper.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterServletResponseWrapper.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseFilter.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseInputStream.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseOutputStream.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseReader.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseRequest.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseResponse.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseWriter.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/WrapperFilter.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Xerces01.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Xerces01Parser.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/shared/SharedSessionBean.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/unpshared/UnpSharedSessionBean.java
   trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/unshared/UnsharedSessionBean.java
   trunk/tomcat5.5/container/tester/web/Authentication04.jsp
   trunk/tomcat5.5/container/tester/web/Encoding01.jsp
   trunk/tomcat5.5/container/tester/web/Encoding02.jsp
   trunk/tomcat5.5/container/tester/web/Encoding03.jsp
   trunk/tomcat5.5/container/tester/web/ErrorPage06.html
   trunk/tomcat5.5/container/tester/web/ErrorPage06.jsp
   trunk/tomcat5.5/container/tester/web/ErrorPage08.jsp
   trunk/tomcat5.5/container/tester/web/ErrorPage09.jsp
   trunk/tomcat5.5/container/tester/web/ErrorPage10.jsp
   trunk/tomcat5.5/container/tester/web/FilterResponse02.jsp
   trunk/tomcat5.5/container/tester/web/Forward00b.jsp
   trunk/tomcat5.5/container/tester/web/Forward00c.jsp
   trunk/tomcat5.5/container/tester/web/Forward00e.jsp
   trunk/tomcat5.5/container/tester/web/Forward03b.jsp
   trunk/tomcat5.5/container/tester/web/Forward04.jsp
   trunk/tomcat5.5/container/tester/web/Forward04a.jsp
   trunk/tomcat5.5/container/tester/web/Forward04b.jsp
   trunk/tomcat5.5/container/tester/web/Forward05.jsp
   trunk/tomcat5.5/container/tester/web/Forward05a.jsp
   trunk/tomcat5.5/container/tester/web/Forward05b.jsp
   trunk/tomcat5.5/container/tester/web/Forward06.jsp
   trunk/tomcat5.5/container/tester/web/Forward06a.jsp
   trunk/tomcat5.5/container/tester/web/Forward06b.jsp
   trunk/tomcat5.5/container/tester/web/Include00b.jsp
   trunk/tomcat5.5/container/tester/web/Include00c.jsp
   trunk/tomcat5.5/container/tester/web/Include00e.jsp
   trunk/tomcat5.5/container/tester/web/Include03b.jsp
   trunk/tomcat5.5/container/tester/web/Include03c.jsp
   trunk/tomcat5.5/container/tester/web/Include05.jsp
   trunk/tomcat5.5/container/tester/web/Include05a.jsp
   trunk/tomcat5.5/container/tester/web/Include05b.jsp
   trunk/tomcat5.5/container/tester/web/Include06.jsp
   trunk/tomcat5.5/container/tester/web/Include06b.jsp
   trunk/tomcat5.5/container/tester/web/JspBeans01.jsp
   trunk/tomcat5.5/container/tester/web/JspBeans02.jsp
   trunk/tomcat5.5/container/tester/web/JspBeans03.jsp
   trunk/tomcat5.5/container/tester/web/JspDoc01.jsp
   trunk/tomcat5.5/container/tester/web/JspDoc02.jsp
   trunk/tomcat5.5/container/tester/web/JspForward01.jsp
   trunk/tomcat5.5/container/tester/web/JspForward01a.jsp
   trunk/tomcat5.5/container/tester/web/JspInclude01.jsp
   trunk/tomcat5.5/container/tester/web/JspInclude01a.jsp
   trunk/tomcat5.5/container/tester/web/JspInclude02.jsp
   trunk/tomcat5.5/container/tester/web/JspInclude02a.jsp
   trunk/tomcat5.5/container/tester/web/JspParams01.jsp
   trunk/tomcat5.5/container/tester/web/JspParams02.jsp
   trunk/tomcat5.5/container/tester/web/Property01.jsp
   trunk/tomcat5.5/container/tester/web/Property02.jsp
   trunk/tomcat5.5/container/tester/web/Redirect02.jsp
   trunk/tomcat5.5/container/tester/web/Redirect02a.jsp
   trunk/tomcat5.5/container/tester/web/Redirect03.jsp
   trunk/tomcat5.5/container/tester/web/Redirect03a.jsp
   trunk/tomcat5.5/container/tester/web/ResponseWrap01b.jsp
   trunk/tomcat5.5/container/tester/web/ResponseWrap01d.jsp
   trunk/tomcat5.5/container/tester/web/SSIConditional01.shtml
   trunk/tomcat5.5/container/tester/web/SSIConditional02.shtml
   trunk/tomcat5.5/container/tester/web/SSIConditional03.shtml
   trunk/tomcat5.5/container/tester/web/SSIConditional04.shtml
   trunk/tomcat5.5/container/tester/web/SSIConditional05.shtml
   trunk/tomcat5.5/container/tester/web/SSIConditional06.shtml
   trunk/tomcat5.5/container/tester/web/SSIConditional07.shtml
   trunk/tomcat5.5/container/tester/web/SSIConditional08.shtml
   trunk/tomcat5.5/container/tester/web/SSIConfig01.shtml
   trunk/tomcat5.5/container/tester/web/SSIConfig03.shtml
   trunk/tomcat5.5/container/tester/web/SSIExecCGI.shtml
   trunk/tomcat5.5/container/tester/web/SSIExecCmd.shtml
   trunk/tomcat5.5/container/tester/web/SSIFsize01.shtml
   trunk/tomcat5.5/container/tester/web/SSIFsize02.shtml
   trunk/tomcat5.5/container/tester/web/SSIFsize03.shtml
   trunk/tomcat5.5/container/tester/web/SSIFsize04.shtml
   trunk/tomcat5.5/container/tester/web/SSIFsize05.shtml
   trunk/tomcat5.5/container/tester/web/SSIFsize06.shtml
   trunk/tomcat5.5/container/tester/web/SSIFsize07.shtml
   trunk/tomcat5.5/container/tester/web/SSIFsize08.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude01.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude02.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude03.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude04.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude05.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude06.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude07.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude08.shtml
   trunk/tomcat5.5/container/tester/web/SSIInclude09.shtml
   trunk/tomcat5.5/container/tester/web/SSIVarSub01.shtml
   trunk/tomcat5.5/container/tester/web/SSIVarSub02.shtml
   trunk/tomcat5.5/container/tester/web/SSIVarSub03.shtml
   trunk/tomcat5.5/container/tester/web/SSIVarSub04.shtml
   trunk/tomcat5.5/container/tester/web/SSIVarSub05.shtml
   trunk/tomcat5.5/container/tester/web/SSIVarSub06.shtml
   trunk/tomcat5.5/container/tester/web/Session07a.jsp
   trunk/tomcat5.5/container/tester/web/Session07b.jsp
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/array.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/binary.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/concat.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/days.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/dowhile.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/else.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/elsif.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/exponents.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/for.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/getday.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/helloperl.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/if.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/increment.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/modifyall.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/preference.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/subparseform.lib
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/subroutines.lib
   trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/test-cgi.pl
   trunk/tomcat5.5/container/tester/web/WEB-INF/web.xml
   trunk/tomcat5.5/container/tester/web/WrappedFilterResponse02.jsp
   trunk/tomcat5.5/container/tester/web/Xerces00.jsp
   trunk/tomcat5.5/container/tester/web/Xerces01.xml
   trunk/tomcat5.5/container/tester/web/Xerces02.jsp
   trunk/tomcat5.5/container/tester/web/includeme.shtml
   trunk/tomcat5.5/container/tester/web/index.shtml
   trunk/tomcat5.5/container/webapps/ROOT/admin/index.html
   trunk/tomcat5.5/container/webapps/ROOT/build.xml
   trunk/tomcat5.5/container/webapps/ROOT/index.jsp
   trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources.properties
   trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties
   trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_ja.properties
   trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/EditConnectorAction.java
   trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/SaveConnectorAction.java
   trunk/tomcat5.5/container/webapps/admin/WEB-INF/controls.tld
   trunk/tomcat5.5/container/webapps/admin/WEB-INF/struts-config.xml
   trunk/tomcat5.5/container/webapps/admin/WEB-INF/web.xml
   trunk/tomcat5.5/container/webapps/admin/admin.css
   trunk/tomcat5.5/container/webapps/admin/admin.xml
   trunk/tomcat5.5/container/webapps/admin/banner.jsp
   trunk/tomcat5.5/container/webapps/admin/blank.jsp
   trunk/tomcat5.5/container/webapps/admin/build.xml
   trunk/tomcat5.5/container/webapps/admin/buttons.jsp
   trunk/tomcat5.5/container/webapps/admin/connector/connector.jsp
   trunk/tomcat5.5/container/webapps/admin/connector/connectors.jsp
   trunk/tomcat5.5/container/webapps/admin/context/context.jsp
   trunk/tomcat5.5/container/webapps/admin/context/contexts.jsp
   trunk/tomcat5.5/container/webapps/admin/dumpRegistry.jsp
   trunk/tomcat5.5/container/webapps/admin/dumpServer.jsp
   trunk/tomcat5.5/container/webapps/admin/error.jsp
   trunk/tomcat5.5/container/webapps/admin/footer.jsp
   trunk/tomcat5.5/container/webapps/admin/frameset.jsp
   trunk/tomcat5.5/container/webapps/admin/header.jsp
   trunk/tomcat5.5/container/webapps/admin/host/alias.jsp
   trunk/tomcat5.5/container/webapps/admin/host/aliases.jsp
   trunk/tomcat5.5/container/webapps/admin/host/host.jsp
   trunk/tomcat5.5/container/webapps/admin/host/hosts.jsp
   trunk/tomcat5.5/container/webapps/admin/index.jsp
   trunk/tomcat5.5/container/webapps/admin/login.jsp
   trunk/tomcat5.5/container/webapps/admin/realm/dataSourceRealm.jsp
   trunk/tomcat5.5/container/webapps/admin/realm/jdbcRealm.jsp
   trunk/tomcat5.5/container/webapps/admin/realm/jndiRealm.jsp
   trunk/tomcat5.5/container/webapps/admin/realm/memoryRealm.jsp
   trunk/tomcat5.5/container/webapps/admin/realm/realms.jsp
   trunk/tomcat5.5/container/webapps/admin/realm/userDatabaseRealm.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/dataSource.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/dataSources.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/deleteDataSources.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/deleteEnvEntries.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/deleteMailSessions.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/deleteResourceLinks.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/deleteUserDatabases.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/envEntries.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/envEntry.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/listDataSources.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/listDataSources.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/listEnvEntries.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/listEnvEntries.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/listMailSessions.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/listMailSessions.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/listResourceLinks.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/listResourceLinks.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/listUserDatabases.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/listUserDatabases.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/mailSession.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/mailSessions.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/resourceLink.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/resourceLinks.jspf
   trunk/tomcat5.5/container/webapps/admin/resources/userDatabase.jsp
   trunk/tomcat5.5/container/webapps/admin/resources/userDatabases.jspf
   trunk/tomcat5.5/container/webapps/admin/saved.jsp
   trunk/tomcat5.5/container/webapps/admin/savefail.jsp
   trunk/tomcat5.5/container/webapps/admin/server/server.jsp
   trunk/tomcat5.5/container/webapps/admin/service/service.jsp
   trunk/tomcat5.5/container/webapps/admin/service/services.jsp
   trunk/tomcat5.5/container/webapps/admin/tree-control-test.css
   trunk/tomcat5.5/container/webapps/admin/tree-control-test.jsp
   trunk/tomcat5.5/container/webapps/admin/users/deleteGroups.jsp
   trunk/tomcat5.5/container/webapps/admin/users/deleteRoles.jsp
   trunk/tomcat5.5/container/webapps/admin/users/deleteUsers.jsp
   trunk/tomcat5.5/container/webapps/admin/users/footer.jsp
   trunk/tomcat5.5/container/webapps/admin/users/group.jsp
   trunk/tomcat5.5/container/webapps/admin/users/groups.jspf
   trunk/tomcat5.5/container/webapps/admin/users/header.jsp
   trunk/tomcat5.5/container/webapps/admin/users/listGroups.jsp
   trunk/tomcat5.5/container/webapps/admin/users/listGroups.jspf
   trunk/tomcat5.5/container/webapps/admin/users/listRoles.jsp
   trunk/tomcat5.5/container/webapps/admin/users/listRoles.jspf
   trunk/tomcat5.5/container/webapps/admin/users/listUsers.jsp
   trunk/tomcat5.5/container/webapps/admin/users/listUsers.jspf
   trunk/tomcat5.5/container/webapps/admin/users/role.jsp
   trunk/tomcat5.5/container/webapps/admin/users/roles.jspf
   trunk/tomcat5.5/container/webapps/admin/users/user.jsp
   trunk/tomcat5.5/container/webapps/admin/users/users.jspf
   trunk/tomcat5.5/container/webapps/admin/valve/accessLogValve.jsp
   trunk/tomcat5.5/container/webapps/admin/valve/remoteAddrValve.jsp
   trunk/tomcat5.5/container/webapps/admin/valve/remoteHostValve.jsp
   trunk/tomcat5.5/container/webapps/admin/valve/requestDumperValve.jsp
   trunk/tomcat5.5/container/webapps/admin/valve/singleSignOnValve.jsp
   trunk/tomcat5.5/container/webapps/admin/valve/valves.jsp
   trunk/tomcat5.5/container/webapps/balancer/META-INF/context.xml
   trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/overview.html
   trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/package.html
   trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/rules/CharacterEncodingRule.java
   trunk/tomcat5.5/container/webapps/balancer/WEB-INF/config/rules.xml
   trunk/tomcat5.5/container/webapps/balancer/WEB-INF/web.xml
   trunk/tomcat5.5/container/webapps/balancer/build.xml
   trunk/tomcat5.5/container/webapps/build.xml
   trunk/tomcat5.5/container/webapps/docs/META-INF/context.xml
   trunk/tomcat5.5/container/webapps/docs/WEB-INF/web.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/build.xml.txt
   trunk/tomcat5.5/container/webapps/docs/appdev/deployment.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/index.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/installation.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/introduction.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/processes.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/project.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/sample/docs/README.txt
   trunk/tomcat5.5/container/webapps/docs/appdev/sample/index.html
   trunk/tomcat5.5/container/webapps/docs/appdev/sample/sample.war
   trunk/tomcat5.5/container/webapps/docs/appdev/sample/src/mypackage/Hello.java
   trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/WEB-INF/web.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/hello.jsp
   trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/index.html
   trunk/tomcat5.5/container/webapps/docs/appdev/source.xml
   trunk/tomcat5.5/container/webapps/docs/appdev/web.xml.txt
   trunk/tomcat5.5/container/webapps/docs/apr.xml
   trunk/tomcat5.5/container/webapps/docs/architecture/index.xml
   trunk/tomcat5.5/container/webapps/docs/architecture/overview.xml
   trunk/tomcat5.5/container/webapps/docs/architecture/project.xml
   trunk/tomcat5.5/container/webapps/docs/architecture/requestProcess.xml
   trunk/tomcat5.5/container/webapps/docs/architecture/startup.xml
   trunk/tomcat5.5/container/webapps/docs/architecture/startup/serverStartup.txt
   trunk/tomcat5.5/container/webapps/docs/balancer-howto.xml
   trunk/tomcat5.5/container/webapps/docs/build.xml
   trunk/tomcat5.5/container/webapps/docs/building.xml
   trunk/tomcat5.5/container/webapps/docs/catalina/docs/api/index.html
   trunk/tomcat5.5/container/webapps/docs/cgi-howto.xml
   trunk/tomcat5.5/container/webapps/docs/changelog.xml
   trunk/tomcat5.5/container/webapps/docs/class-loader-howto.xml
   trunk/tomcat5.5/container/webapps/docs/cluster-howto.xml
   trunk/tomcat5.5/container/webapps/docs/config/ajp.xml
   trunk/tomcat5.5/container/webapps/docs/config/context.xml
   trunk/tomcat5.5/container/webapps/docs/config/engine.xml
   trunk/tomcat5.5/container/webapps/docs/config/globalresources.xml
   trunk/tomcat5.5/container/webapps/docs/config/host.xml
   trunk/tomcat5.5/container/webapps/docs/config/http.xml
   trunk/tomcat5.5/container/webapps/docs/config/index.xml
   trunk/tomcat5.5/container/webapps/docs/config/loader.xml
   trunk/tomcat5.5/container/webapps/docs/config/manager.xml
   trunk/tomcat5.5/container/webapps/docs/config/project.xml
   trunk/tomcat5.5/container/webapps/docs/config/realm.xml
   trunk/tomcat5.5/container/webapps/docs/config/resources.xml
   trunk/tomcat5.5/container/webapps/docs/config/server.xml
   trunk/tomcat5.5/container/webapps/docs/config/service.xml
   trunk/tomcat5.5/container/webapps/docs/config/valve.xml
   trunk/tomcat5.5/container/webapps/docs/connectors.xml
   trunk/tomcat5.5/container/webapps/docs/default-servlet.xml
   trunk/tomcat5.5/container/webapps/docs/deployer-howto.xml
   trunk/tomcat5.5/container/webapps/docs/developers.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-apps.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-objects.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-opers.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-default.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-invoker.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-jdbc-realm.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-jndi-realm.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-memory-realm.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/index.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/mbean-names.xml
   trunk/tomcat5.5/container/webapps/docs/funcspecs/project.xml
   trunk/tomcat5.5/container/webapps/docs/html-manager-howto.xml
   trunk/tomcat5.5/container/webapps/docs/index.xml
   trunk/tomcat5.5/container/webapps/docs/introduction.xml
   trunk/tomcat5.5/container/webapps/docs/jasper-howto.xml
   trunk/tomcat5.5/container/webapps/docs/jasper/docs/api/index.html
   trunk/tomcat5.5/container/webapps/docs/jndi-datasource-examples-howto.xml
   trunk/tomcat5.5/container/webapps/docs/jndi-resources-howto.xml
   trunk/tomcat5.5/container/webapps/docs/logging.xml
   trunk/tomcat5.5/container/webapps/docs/manager-howto.xml
   trunk/tomcat5.5/container/webapps/docs/mbeans-descriptor-howto.xml
   trunk/tomcat5.5/container/webapps/docs/monitoring.xml
   trunk/tomcat5.5/container/webapps/docs/project.xml
   trunk/tomcat5.5/container/webapps/docs/proxy-howto.xml
   trunk/tomcat5.5/container/webapps/docs/realm-howto.xml
   trunk/tomcat5.5/container/webapps/docs/security-manager-howto.xml
   trunk/tomcat5.5/container/webapps/docs/setup.xml
   trunk/tomcat5.5/container/webapps/docs/ssi-howto.xml
   trunk/tomcat5.5/container/webapps/docs/ssl-howto.xml
   trunk/tomcat5.5/container/webapps/docs/status.xml
   trunk/tomcat5.5/container/webapps/docs/tomcat-docs.xsl
   trunk/tomcat5.5/container/webapps/docs/virtual-hosting-howto.xml
   trunk/tomcat5.5/container/webapps/docs/windows-service-howto.xml
   trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager/HTMLHostManagerServlet.java
   trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager/LocalStrings.properties
   trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/web.xml
   trunk/tomcat5.5/container/webapps/host-manager/build.xml
   trunk/tomcat5.5/container/webapps/host-manager/host-manager.xml
   trunk/tomcat5.5/container/webapps/host-manager/manager.xml
   trunk/tomcat5.5/container/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote/JmxRemoteServlet.java
   trunk/tomcat5.5/container/webapps/jmxremote/build.xml
   trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/HTMLManagerServlet.java
   trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/JMXProxyServlet.java
   trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings.properties
   trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_de.properties
   trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_es.properties
   trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_fr.properties
   trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_ja.properties
   trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/ManagerServlet.java
   trunk/tomcat5.5/container/webapps/manager/build.xml
   trunk/tomcat5.5/container/webapps/manager/manager.xml
   trunk/tomcat5.5/container/webapps/manager/status.xsd
   trunk/tomcat5.5/container/webapps/manager/xform.xsl
   trunk/tomcat5.5/container/webapps/webdav/build.xml
   trunk/tomcat5.5/container/webapps/webdav/index.html
   trunk/tomcat5.5/debian/changelog
   trunk/tomcat5.5/debian/rules
   trunk/tomcat5.5/jasper/.classpath
   trunk/tomcat5.5/jasper/.project
   trunk/tomcat5.5/jasper/BUILDING.txt
   trunk/tomcat5.5/jasper/build.properties.sample
   trunk/tomcat5.5/jasper/build.xml
   trunk/tomcat5.5/jasper/doc/jspc.html
   trunk/tomcat5.5/jasper/src/bin/jasper.bat
   trunk/tomcat5.5/jasper/src/bin/jasper.sh
   trunk/tomcat5.5/jasper/src/bin/jasper.xml
   trunk/tomcat5.5/jasper/src/bin/jspc-using-launcher.bat
   trunk/tomcat5.5/jasper/src/bin/jspc-using-launcher.sh
   trunk/tomcat5.5/jasper/src/bin/jspc.bat
   trunk/tomcat5.5/jasper/src/bin/jspc.sh
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/JspC.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/DefaultErrorHandler.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/ELFunctionMapper.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/JavacErrorDetail.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/JspConfig.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/Node.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/Validator.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings.properties
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_es.properties
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_fr.properties
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_ja.properties
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/runtime/PageContextImpl.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JasperLoader.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JspServlet.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JspServletWrapper.java
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/mbeans-descriptors.xml
   trunk/tomcat5.5/jasper/src/share/org/apache/jasper/tagplugins/jstl/tagPlugins.xml
   trunk/tomcat5.5/servletapi/jsr152/BUILDING.txt
   trunk/tomcat5.5/servletapi/jsr152/README.txt
   trunk/tomcat5.5/servletapi/jsr152/build.xml
   trunk/tomcat5.5/servletapi/jsr152/examples/WEB-INF/classes/sessions/DummyCart.java
   trunk/tomcat5.5/servletapi/jsr152/examples/forward/forward.jsp
   trunk/tomcat5.5/servletapi/jsr152/examples/forward/fwd.html
   trunk/tomcat5.5/servletapi/jsr152/examples/forward/one.jsp
   trunk/tomcat5.5/servletapi/jsr152/examples/forward/two.html
   trunk/tomcat5.5/servletapi/jsr152/examples/index.html
   trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/el/implicit-objects.html
   trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/jspx/basic.jspx
   trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/jspx/textRotate.jspx
   trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/misc/coda.jspf
   trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/misc/prelude.jspf
   trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/tagfiles/products.html
   trunk/tomcat5.5/servletapi/jsr152/examples/security/protected/index.jsp
   trunk/tomcat5.5/servletapi/jsr152/examples/sessions/carts.jsp
   trunk/tomcat5.5/servletapi/jsr152/examples/snp/snoop.html
   trunk/tomcat5.5/servletapi/jsr152/examples/snp/snoop.jsp
   trunk/tomcat5.5/servletapi/jsr152/examples/source.jsp
   trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/el/package.html
   trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/package.html
   trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/tagext/package.html
   trunk/tomcat5.5/servletapi/jsr154/BUILDING.txt
   trunk/tomcat5.5/servletapi/jsr154/README.txt
   trunk/tomcat5.5/servletapi/jsr154/build.xml
   trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/j2ee_1_4.xsd
   trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/jsp_2_0.xsd
   trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-app_2_3.dtd
   trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-app_2_4.xsd
   trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd
Log:
* New upstream release. Setting usrgency to high.
  - Fixes XSS issues. CVE-2007-1355, CVS-2007-2449 and CVE-2007-2450.


Modified: trunk/tomcat5.5/build/.classpath
===================================================================
--- trunk/tomcat5.5/build/.classpath	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/.classpath	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <classpath>
 	<classpathentry kind="src" path="resources"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

Modified: trunk/tomcat5.5/build/.project
===================================================================
--- trunk/tomcat5.5/build/.project	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/.project	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <projectDescription>
 	<name>build</name>
 	<comment></comment>

Modified: trunk/tomcat5.5/build/BENCHMARKS.txt
===================================================================
--- trunk/tomcat5.5/build/BENCHMARKS.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/BENCHMARKS.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,19 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+
 Benchmarking Tomcat
 -------------------
 

Modified: trunk/tomcat5.5/build/BUILDING.txt
===================================================================
--- trunk/tomcat5.5/build/BUILDING.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/BUILDING.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,20 @@
-$Id: BUILDING.txt 490052 2006-12-24 17:41:23Z yoavs $
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+$Id: BUILDING.txt 567301 2007-08-18 17:26:53Z markt $
+
                  =============================================
                  Building The Tomcat 5.5 Servlet/JSP Container
                  =============================================

Modified: trunk/tomcat5.5/build/RELEASE-NOTES
===================================================================
--- trunk/tomcat5.5/build/RELEASE-NOTES	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/RELEASE-NOTES	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,26 @@
+================================================================================
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
 
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+================================================================================
+
+
                      Apache Tomcat Version @VERSION@
                             Release Notes
 
 
-$Id: RELEASE-NOTES 439327 2006-09-01 14:06:34Z fhanik $
+$Id: RELEASE-NOTES 567301 2007-08-18 17:26:53Z markt $
 
 
 =============================

Modified: trunk/tomcat5.5/build/RUNNING.txt
===================================================================
--- trunk/tomcat5.5/build/RUNNING.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/RUNNING.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,20 @@
-$Id: RUNNING.txt 354430 2005-12-06 13:44:26Z yoavs $
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+$Id: RUNNING.txt 567301 2007-08-18 17:26:53Z markt $
+
                  ============================================
                  Running The Tomcat 5.5 Servlet/JSP Container
                  ============================================
@@ -20,8 +35,13 @@
 (1.2) Install the JRE according to the instructions included with the
       release.
 
-(1.3) Set an environment variable named JAVA_HOME to the pathname of
-      the directory into which you installed the JRE, e.g. c:\j2sdk5.0
+(1.3) Set an environment variable named JRE_HOME to the pathname of
+      the directory into which you installed the JRE, e.g. c:\jre5.0
+      or /usr/local/java/jre5.0.
+
+NOTE: You may also use the full JDK rather than just the JRE. In this
+      case set the JAVA_HOME environment variable to the pathname of
+      the directory into which you installed the JDK, e.g. c:\j2sdk5.0
       or /usr/local/java/j2sdk5.0.
 
 

Modified: trunk/tomcat5.5/build/build.properties.default
===================================================================
--- trunk/tomcat5.5/build/build.properties.default	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/build.properties.default	2007-10-03 19:12:01 UTC (rev 4300)
@@ -6,23 +6,22 @@
 # modules that Tomcat depends on.  Copy this file to "build.properties"
 # in the top-level source directory, and customize it as needed.
 #
-# $Id: build.properties.default 490052 2006-12-24 17:41:23Z yoavs $
+# $Id: build.properties.default 569562 2007-08-24 22:59:19Z fhanik $
 # -----------------------------------------------------------------------------
 
 # ----- Vesion Control Flags -----
 version.major=5
 version.minor=5
-version.build=20
+version.build=25
 version.patch=0
 #Set the pretty version name
-version=5.5.20
+version=5.5.25
 
 # ----- Compile Control Flags -----
 compile.debug=on
 compile.deprecation=off
 compile.optimize=off
 
-
 # ----- Build Control Flags
 
 #Build all components
@@ -38,9 +37,6 @@
 #proxy.use=on
 
 
-# ----- CVS root for the jakarta repositories ------
-cvsroot=:pserver:anoncvs at cvs.apache.org:/home/cvspublic
-
 # ----- Default Base Path for Dependent Packages -----
 # Please note this path must be absolute, not relative,
 # as it is referenced with different working directory
@@ -121,10 +117,10 @@
 
 
 # ----- Commons Modeler, version 2.0 or later -----
-commons-modeler.home=${base.path}/commons-modeler-2.0
+commons-modeler.home=${base.path}/commons-modeler-2.0.1
 commons-modeler.lib=${commons-modeler.home}
-commons-modeler.jar=${commons-modeler.lib}/commons-modeler-2.0.jar
-commons-modeler.loc=${base-jakarta.loc}/commons/modeler/binaries/commons-modeler-2.0.tar.gz
+commons-modeler.jar=${commons-modeler.lib}/commons-modeler-2.0.1.jar
+commons-modeler.loc=${base-jakarta.loc}/commons/modeler/binaries/commons-modeler-2.0.1.tar.gz
 
 # ----- Xerces XML Parser, version 2.8.0 -----
 xerces.home=${base.path}/xerces-2_8_0
@@ -152,17 +148,10 @@
 # --------------------------------------------------
 
 
-# ----- Log4j, version 1.2 or later -----
-log4j.home=${base.path}/logging-log4j-1.2.12
-log4j.lib=${log4j.home}
-log4j.jar=${log4j.lib}/dist/lib/log4j-1.2.12.jar
-log4j.loc=${base-logging.loc}/log4j/1.2.12/logging-log4j-1.2.12.tar.gz
-
-
 # ----- Commons DBCP, version 1.1 or later -----
-commons-dbcp.version=1.2.1
-commons-dbcp.home=${base.path}/commons-dbcp-1.2.1
-commons-dbcp-src.loc=${base-jakarta.loc}/commons/dbcp/source/commons-dbcp-1.2.1-src.tar.gz
+commons-dbcp.version=1.2.2
+commons-dbcp.home=${base.path}/commons-dbcp-1.2.2-src
+commons-dbcp-src.loc=${base-jakarta.loc}/commons/dbcp/source/commons-dbcp-1.2.2-src.tar.gz
 
 
 # ----- Commons HttpClient, version 2.0 or later -----
@@ -173,8 +162,8 @@
 
 
 # ----- Commons Pool, version 1.1 or later -----
-commons-pool.home=${base.path}/commons-pool-1.2
-commons-pool-src.loc=${base-jakarta.loc}/commons/pool/source/commons-pool-1.2-src.tar.gz
+commons-pool.home=${base.path}/commons-pool-1.3-src
+commons-pool-src.loc=${base-jakarta.loc}/commons/pool/source/commons-pool-1.3-src.tar.gz
 
 
 # ----- Commons Collections, version 2.0 or later -----
@@ -255,11 +244,6 @@
 mail.lib=${mail.home}
 mail.jar=${mail.lib}/mail.jar
 
-# ----- Java Activation Framework, version 1.0.1 or later -----
-activation.home=${base.path}/jaf-1.0.2
-activation.lib=${activation.home}
-activation.jar=${activation.lib}/activation.jar
-
 # ----- PureTLS Extension, version 0.9 or later -----
 puretls.home=${base.path}/puretls-0.9b4
 puretls.lib=${puretls.home}/build

Modified: trunk/tomcat5.5/build/build.xml
===================================================================
--- trunk/tomcat5.5/build/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- This is the main Tomcat 5.5 build file: it invokes most of the others. -->
 <project name="Tomcat 5.5" default="deploy" basedir=".">
 
@@ -9,6 +25,7 @@
   <property file="${user.home}/build.properties"/>
   <property file="build.properties"/>
 
+
   <property file="build.properties.default"/>
 
   <!-- Project Properties -->
@@ -667,12 +684,13 @@
 
   <target name="-build-tomcat-dbcp">
     <copy todir="${tomcat-dbcp.home}">
-        <fileset dir="${commons-collections.home}" >
+   <!-- <fileset dir="${commons-collections.home}" >
             <include name="**/collections/CursorableLinkedList.java" />
             <include name="**/collections/KeyValue.java" />
             <include name="**/collections/LRUMap.java" />
             <include name="**/collections/SequencedHashMap.java" />
         </fileset>
+       -->
         <fileset dir="${commons-pool.home}">
             <include name="**/*.java" />
             <exclude name="**/test/**" />
@@ -682,12 +700,13 @@
             <exclude name="**/test/**" />
         </fileset>
     </copy>
-    <replace dir="${tomcat-dbcp.home}/src/java/org/apache/commons">
+ <!--   <replace dir="${tomcat-dbcp.home}/src/java/org/apache/commons">
         <replacefilter token="return UnmodifiableList.decorate(l);"
             value="return l;" />
         <replacefilter token="import org.apache.commons.collections.list.UnmodifiableList;"
             value=" " />
     </replace>
+    -->
     <replace dir="${tomcat-dbcp.home}/src/java/org/apache/commons" >
         <replacefilter token="org.apache.commons"
             value="org.apache.tomcat.dbcp" />
@@ -715,7 +734,7 @@
     </jar>
   </target>
 
-      <target name="build-jasper-compiler-jdt">
+  <target name="build-jasper-compiler-jdt">
        <mkdir dir="${jasper-compiler-jdt.home}"/>
        <antcall target="-build-jasper-compiler-jdt">
           <param name="basedir" value="${jasper-compiler-jdt.home}" />
@@ -731,7 +750,7 @@
                 <include name="org/eclipse/jdt/internal/core/util/CommentRecorder*"/>
             </fileset>
         </jar>
-      </target>
+  </target>
 
   <target name="build-webapps" depends="init"
           description="build  webapps">
@@ -1083,6 +1102,13 @@
 
 
   <!-- ====================== COMBO: Clean All Directories ================ -->
+  
+  <target name="clean-depend"
+   description="Clean depend src components">
+    <delete dir="${tomcat-dbcp.home}"/>    
+    <delete dir="${jasper-compiler-jdt.home}"/>
+  </target>
+  
   <target name="clean"
    description="Clean all components">
 
@@ -1411,6 +1437,8 @@
         <exclude name="coyote/build/**"/>
         <exclude name="http11/build/**"/>
         <exclude name="jk/build/**"/>
+        <exclude name="jk/jkstatus/build/**"/>
+        <exclude name="jk/jkstatus/dist/**"/>
         <exclude name="util/build/**"/>
         <exclude name="webapp/**"/>
         <exclude name="lib/**"/>
@@ -1881,11 +1909,6 @@
     </antcall>
 
     <antcall target="downloadgz">
-      <param name="sourcefile" value="${log4j.loc}"/>
-      <param name="destfile" value="${log4j.jar}"/>
-    </antcall>
-
-    <antcall target="downloadgz">
       <param name="sourcefile" value="${commons-digester.loc}"/>
       <param name="destfile" value="${commons-digester.jar}"/>
     </antcall>
@@ -1957,7 +1980,7 @@
     </condition>
   </target>
 
-  <target name="setproxy"  if="useproxy">
+  <target name="setproxy" depends="proxyflags" if="useproxy">
     <taskdef name="setproxy"
       classname="org.apache.tools.ant.taskdefs.optional.net.SetProxy" />
     <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"/>

Modified: trunk/tomcat5.5/build/resources/build.xml
===================================================================
--- trunk/tomcat5.5/build/resources/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/resources/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- This file is the Tomcat 5.x net build file.  It's what users run to build Tomcat -->
 <!-- from scratch.  See BUILDING.txt for the full instructions.                       -->
 <project name="Tomcat 5 Netbuild" default="build" basedir=".">

Modified: trunk/tomcat5.5/build/resources/confinstall/server_1.xml
===================================================================
--- trunk/tomcat5.5/build/resources/confinstall/server_1.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/resources/confinstall/server_1.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Example Server Configuration File -->
 <!-- Note that component elements are nested corresponding to their
      parent-child relationships with each other -->

Modified: trunk/tomcat5.5/build/resources/confinstall/tomcat-users_1.xml
===================================================================
--- trunk/tomcat5.5/build/resources/confinstall/tomcat-users_1.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/resources/confinstall/tomcat-users_1.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,21 @@
+<?xml version="1.0"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
   NOTE:  By default, no user is included in the "manager" role required
   to operate the "/manager" web application.  If you wish to use this app,
   you must define such a user - the username and password are arbitrary.

Modified: trunk/tomcat5.5/build/resources/deployer/build.xml
===================================================================
--- trunk/tomcat5.5/build/resources/deployer/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/resources/deployer/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Deployer" default="compile" basedir=".">
 
   <property file="deployer.properties"/>

Modified: trunk/tomcat5.5/build/resources/logging.properties
===================================================================
--- trunk/tomcat5.5/build/resources/logging.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/resources/logging.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
 
 .handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

Modified: trunk/tomcat5.5/build/resources/mbeans/tomcat5-ant.xml
===================================================================
--- trunk/tomcat5.5/build/resources/mbeans/tomcat5-ant.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/resources/mbeans/tomcat5-ant.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="tomcat-embed" default="start" basedir=".">
 
   <property file="${user.home}/build.properties"/>
@@ -17,8 +34,6 @@
       <!-- Just include everything for now -->
       <fileset dir="${tomcat.home}/lib" includes="*.jar"/>
       <pathelement  path="${tomcat.home}/conf"/>
-      <!-- my log4j.properties -->
-      <pathelement  path="/ws/log4j"/>
     </path>
 
     <taskdef resource="org/apache/commons/modeler/ant/ant.properties"

Modified: trunk/tomcat5.5/build/resources/tomcat.spec
===================================================================
--- trunk/tomcat5.5/build/resources/tomcat.spec	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/resources/tomcat.spec	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 %define version 5.0.25
 %define base /opt/jakarta-tomcat-%{version}
 

Modified: trunk/tomcat5.5/build/resources/welcome.main.html
===================================================================
--- trunk/tomcat5.5/build/resources/welcome.main.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/resources/welcome.main.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 <HTML><HEAD><TITLE>Apache Tomcat @VERSION@</TITLE>
 <META http-equiv=Content-Type content="text/html">

Modified: trunk/tomcat5.5/build/sign.bat
===================================================================
--- trunk/tomcat5.5/build/sign.bat	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/sign.bat	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
+ at echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem     http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
 
+
 rem Example script to sign the entire release
 rem pass in your password as the first argument, then this script will
 rem sign all the files in the release directory

Modified: trunk/tomcat5.5/build/tag.bat
===================================================================
--- trunk/tomcat5.5/build/tag.bat	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/tag.bat	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 @echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem     http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+
+ at echo off
 rem  Expects one argument, the tag name (no quotes needed, e.g. TOMCAT_5_5_13)
 
 rem  Build

Modified: trunk/tomcat5.5/build/tomcat.nsi
===================================================================
--- trunk/tomcat5.5/build/tomcat.nsi	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build/tomcat.nsi	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,6 +1,20 @@
+; Licensed to the Apache Software Foundation (ASF) under one or more
+; contributor license agreements.  See the NOTICE file distributed with
+; this work for additional information regarding copyright ownership.
+; The ASF licenses this file to You under the Apache License, Version 2.0
+; (the "License"); you may not use this file except in compliance with
+; the License.  You may obtain a copy of the License at
+;
+;     http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
 
 ; Tomcat script for Nullsoft Installer
-; $Id: tomcat.nsi 451508 2006-09-30 00:49:37Z markt $
+; $Id: tomcat.nsi 567301 2007-08-18 17:26:53Z markt $
 
   ;Compression options
   CRCCheck on

Modified: trunk/tomcat5.5/build.xml
===================================================================
--- trunk/tomcat5.5/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- This file is the Tomcat 5.x net build file.  It's what users run to build Tomcat -->
 <!-- from scratch.  See BUILDING.txt for the full instructions.                       -->
 <project name="Tomcat 5 Netbuild" default="build" basedir=".">

Added: trunk/tomcat5.5/connectors/TomcatUTF8.war
===================================================================
(Binary files differ)


Property changes on: trunk/tomcat5.5/connectors/TomcatUTF8.war
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/tomcat5.5/connectors/coyote/src/java/org/apache/coyote/RequestInfo.java
===================================================================
--- trunk/tomcat5.5/connectors/coyote/src/java/org/apache/coyote/RequestInfo.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/coyote/src/java/org/apache/coyote/RequestInfo.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -44,14 +44,14 @@
     public RequestGroupInfo getGlobalProcessor() {
         return global;
     }
-    
+
     public void setGlobalProcessor(RequestGroupInfo global) {
         if( global != null) {
             this.global=global;
             global.addRequestProcessor( this );
         } else {
         	if (this.global != null) {
-                this.global.removeRequestProcessor( this ); 
+                this.global.removeRequestProcessor( this );
                 this.global = null;
             }
         }
@@ -62,6 +62,7 @@
     Request req;
     Response res;
     int stage = Constants.STAGE_NEW;
+    String workerThreadName;
 
     // -------------------- Information about the current request  -----------
     // This is usefull for long-running requests only
@@ -212,5 +213,11 @@
         this.errorCount = errorCount;
     }
 
+    public String getWorkerThreadName() {
+        return workerThreadName;
+    }
 
+    public void setWorkerThreadName(String workerThreadName) {
+        this.workerThreadName = workerThreadName;
+    }
 }

Modified: trunk/tomcat5.5/connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteAdapter.java
===================================================================
--- trunk/tomcat5.5/connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteAdapter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteAdapter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -45,12 +45,16 @@
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @version $Revision: 466585 $ $Date: 2006-10-21 16:16:34 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 519369 $ $Date: 2007-03-17 18:00:55 +0100 (Sat, 17 Mar 2007) $
  */
 
 final class CoyoteAdapter
     implements Adapter {
 
+    protected static final boolean ALLOW_BACKSLASH = Boolean.valueOf(
+            System.getProperty(
+                    "org.apache.coyote.tomcat4.CoyoteAdapter.ALLOW_BACKSLASH",
+                    "false")).booleanValue();
 
     // -------------------------------------------------------------- Constants
 
@@ -440,8 +444,12 @@
             return "/";
 
         // Normalize the slashes and add leading slash if necessary
-        if (normalized.indexOf('\\') >= 0)
-            normalized = normalized.replace('\\', '/');
+        if (normalized.indexOf('\\') >= 0) {
+            if ( ALLOW_BACKSLASH )
+                normalized = normalized.replace('\\', '/');
+            else 
+                return null;
+        }
         if (!normalized.startsWith("/"))
             normalized = "/" + normalized;
 
@@ -564,8 +572,12 @@
         // Replace '\' with '/'
         // Check for null byte
         for (pos = start; pos < end; pos++) {
-            if (b[pos] == (byte) '\\')
-                b[pos] = (byte) '/';
+            if (b[pos] == (byte) '\\') {
+                if (ALLOW_BACKSLASH)
+                    b[pos] = (byte) '/';
+                else 
+                    return false;
+            }
             if (b[pos] == (byte) 0)
                 return false;
         }

Modified: trunk/tomcat5.5/connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java
===================================================================
--- trunk/tomcat5.5/connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -841,6 +841,10 @@
                     log.debug(sm.getString("http11processor.header.parse"), t);
                 }
                 // 400 - Bad Request
+                if (log.isDebugEnabled()) {
+                    log.debug(sm.getString("http11processor.request.prepare")+
+                              " host header missing");
+                }
                 response.setStatus(400);
                 error = true;
             }
@@ -1203,6 +1207,10 @@
             http11 = false;
             error = true;
             // Send 505; Unsupported HTTP version
+            if (log.isDebugEnabled()) {
+                log.debug(sm.getString("http11processor.request.prepare")+
+                          " Unsupported HTTP version \""+protocolMB+"\"");
+            }
             response.setStatus(505);
         }
 
@@ -1311,6 +1319,10 @@
                 // Unsupported transfer encoding
                 error = true;
                 // 501 - Unimplemented
+                if (log.isDebugEnabled()) {
+                    log.debug(sm.getString("http11processor.request.prepare")+
+                              " Unsupported transfer encoding \""+encodingName+"\"");
+                }
                 response.setStatus(501);
             }
         }

Modified: trunk/tomcat5.5/connectors/http11/src/java/org/apache/coyote/http11/InternalAprInputBuffer.java
===================================================================
--- trunk/tomcat5.5/connectors/http11/src/java/org/apache/coyote/http11/InternalAprInputBuffer.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/http11/src/java/org/apache/coyote/http11/InternalAprInputBuffer.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,6 +20,7 @@
 
 import java.io.IOException;
 import java.io.EOFException;
+import java.net.SocketTimeoutException;
 import java.nio.ByteBuffer;
 
 import org.apache.tomcat.jni.Socket;
@@ -822,7 +823,11 @@
                 bbuf.get(buf, 0, nRead);
                 lastValid = nRead;
             } else {
-                throw new IOException(sm.getString("iib.failedread"));
+                if ((-nRead) == Status.ETIMEDOUT || (-nRead) == Status.TIMEUP) {
+                    throw new SocketTimeoutException(sm.getString("iib.failedread"));
+                } else {
+                    throw new IOException(sm.getString("iib.failedread"));
+                }
             }
 
         }

Modified: trunk/tomcat5.5/connectors/jk/HOWTO-RELEASE
===================================================================
--- trunk/tomcat5.5/connectors/jk/HOWTO-RELEASE	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/HOWTO-RELEASE	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,6 @@
 xdocs/index.xml
 xdocs/news/<THISYEAR0101>.xml
 native/STATUS.txt
-tools/jkrelease.sh (check that all  ../docs/news/printer/*html are in the list).
 
 Update the JK_VERISRELEASE define in jk/native/common/jk_version.h, here is
 a svn diff that shows what I changed:
@@ -124,7 +123,7 @@
 native/common/portable.h.sample: Update VERSION define.
 native/iis/isapi_redirect.rc: Update JK_VERSION_STR, FILEVERSION, and PRODUCTVERSION
 native/iis/installer/isapi-redirector-win32-msi.ism: Update ProductVersion.
-xdocs/changelog.xml: Start a new section for the new version.
+xdocs/miscellaneous/changelog.xml: Start a new section for the new version.
 
 Remove old release distributions from www.apache.org
 ----------------------------------------------------

Modified: trunk/tomcat5.5/connectors/jk/build.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -205,7 +205,7 @@
             <include name="org/apache/jk/**"/>
             <include name="org/apache/coyote/ajp/**" />
             <exclude name="org/apache/coyote/ajp/*Apr*" unless="jdk.1.4.present" />
-	    <exclude name="org/apache/jk/common/ChannelNioSocket.java" unless="jdk.1.4.present"/>
+	    <exclude name="org/apache/jk/common/ChannelNioSocket.java" unless="jdk14.detect"/>
 	    <exclude name="org/apache/jk/common/JkMX.java" unless="jmx.detect"/>
 	    <exclude name="org/apache/jk/common/ModJkMX.java" unless="jmx.detect"/>
 	    <exclude name="org/apache/jk/common/Shm14.java" unless="jdk14.detect"/>

Modified: trunk/tomcat5.5/connectors/jk/conf/uriworkermap.properties
===================================================================
--- trunk/tomcat5.5/connectors/jk/conf/uriworkermap.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/conf/uriworkermap.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -9,6 +9,7 @@
 /manager/*=wlb
 /jsp-examples/*=wlb
 /servlets-examples/*=wlb
+/examples/*=wlb
 
 # Optionally filter out all .jpeg files inside that context
 # For no mapping the url has to start with exclamation (!)

Modified: trunk/tomcat5.5/connectors/jk/java/org/apache/ajp/RequestHandler.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/java/org/apache/ajp/RequestHandler.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/java/org/apache/ajp/RequestHandler.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -428,20 +428,25 @@
         // set cookies on request now that we have all headers
         req.cookies().setHeaders(req.headers());
 
-	// Check to see if there should be a body packet coming along
-	// immediately after
-    	if(req.getContentLength() > 0) {
+        // Check to see if there should be a body packet coming along
+        // immediately after
+        if(req.getContentLength() > 0) {
 
-	    /* Read present data */
-	    int err = ch.receive(ch.inBuf);
-            if(err < 0) {
-            	return 500;
-	    }
-	    
-	    ch.blen = ch.inBuf.peekInt();
-	    ch.pos = 0;
-	    ch.inBuf.getBytes(ch.bodyBuff);
-    	}
+            /* Read present data */
+            int bytesRead = ch.receive(ch.inBuf);
+            if(bytesRead < 0) {
+                return 500;
+            }
+
+            // First two bytes are length, rest is real data
+            if (bytesRead < 2) {
+                ch.blen = 0;
+            } else {
+                ch.blen = bytesRead - 2;
+            }
+            ch.pos = 0;
+            ch.inBuf.getBytes(ch.bodyBuff);
+        }
     
         if (debug > 5) {
             log(req.toString());

Modified: trunk/tomcat5.5/connectors/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -705,7 +705,9 @@
             if (hId == Constants.SC_REQ_CONTENT_LENGTH ||
                     (hId == -1 && tmpMB.equalsIgnoreCase("Content-Length"))) {
                 // just read the content-length header, so set it
-                request.setContentLength( vMB.getInt() );
+                long cl = vMB.getLong();
+                if(cl < Integer.MAX_VALUE)
+                    request.setContentLength( (int)cl );
             } else if (hId == Constants.SC_REQ_CONTENT_TYPE ||
                     (hId == -1 && tmpMB.equalsIgnoreCase("Content-Type"))) {
                 // just read the content-type header, so set it
@@ -959,9 +961,9 @@
         if (contentLanguage != null) {
             headers.setValue("Content-Language").setString(contentLanguage);
         }
-        int contentLength = response.getContentLength();
+        long contentLength = response.getContentLengthLong();
         if (contentLength >= 0) {
-            headers.setValue("Content-Length").setInt(contentLength);
+            headers.setValue("Content-Length").setLong(contentLength);
         }
 
         // Other headers
@@ -1221,7 +1223,7 @@
             if (endOfStream) {
                 return -1;
             }
-            if (first && req.getContentLength() > 0) {
+            if (first && req.getContentLengthLong() > 0) {
                 // Handle special first-body-chunk
                 if (!receive()) {
                     return 0;

Modified: trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/HandlerRequest.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/HandlerRequest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/HandlerRequest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -407,7 +407,7 @@
 
         // Check to see if there should be a body packet coming along
         // immediately after
-        int cl=req.getContentLength();
+        long cl=req.getContentLengthLong();
         if(cl > 0) {
             JkInputStream jkIS = ep.getInputStream();
             jkIS.setIsReadRequired(true);
@@ -577,7 +577,9 @@
             if (hId == AjpConstants.SC_REQ_CONTENT_LENGTH ||
                 (hId == -1 && tmpMB.equalsIgnoreCase("Content-Length"))) {
                 // just read the content-length header, so set it
-                req.setContentLength( vMB.getInt() );
+                long cl = vMB.getLong();
+                if(cl < Integer.MAX_VALUE)
+                    req.setContentLength( (int)cl );
             } else if (hId == AjpConstants.SC_REQ_CONTENT_TYPE ||
                 (hId == -1 && tmpMB.equalsIgnoreCase("Content-Type"))) {
                 // just read the content-type header, so set it

Modified: trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/JkInputStream.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/JkInputStream.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/JkInputStream.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -300,9 +300,9 @@
         if( contentLanguage != null ) {
             headers.setValue("Content-Language").setString(contentLanguage);
         }
-        int contentLength = res.getContentLength();
+        long contentLength = res.getContentLengthLong();
         if( contentLength >= 0 ) {
-            headers.setValue("Content-Length").setInt(contentLength);
+            headers.setValue("Content-Length").setLong(contentLength);
         }
         int numHeaders = headers.size();
         outputMsg.appendInt(numHeaders);

Modified: trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/MsgAjp.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/MsgAjp.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/java/org/apache/jk/common/MsgAjp.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -241,6 +241,7 @@
             return;
         }
         mb.setBytes( buf, pos, length );
+        mb.getCharChunk().recycle();
         pos += length;
         pos++; // Skip the terminating \0
     }

Modified: trunk/tomcat5.5/connectors/jk/java/org/apache/jk/server/JkMain.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/java/org/apache/jk/server/JkMain.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/java/org/apache/jk/server/JkMain.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -283,7 +283,7 @@
                 try {
                     wEnv.getHandler(i).destroy();
                 } catch( IOException ex) {
-                    log.error("Error stoping " + wEnv.getHandler(i).getName(), ex);
+                    log.error("Error stopping " + wEnv.getHandler(i).getName(), ex);
                 }
             }
         }

Added: trunk/tomcat5.5/connectors/jk/jkstatus/example/show.txt
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/example/show.txt	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/example/show.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,10 @@
+How to use the show example:
+ant -f show.xml
+Configure mod_jk (httpd.conf and workers.properties):
+JkMount /jkstatus jkstatus
+
+worker.list=jkstatus
+worker.jkstatus.type=status
+
+Adjust jkstatus.properties.default:
+jkstatus.port (for example).

Modified: trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/AbstractJkStatusTask.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -36,7 +36,7 @@
  * Ant task that implements mod_jk 1.2.20 result message string
  * 
  * @author Peter Rossbach
- * @version $Revision:$
+ * @version $Revision: 526825 $
  * @since mod_jk 1.2.20
  */
 public abstract class AbstractJkStatusTask extends AbstractCatalinaTask {

Modified: trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkResult.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkResult.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkResult.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,7 +20,7 @@
 
 /**
  * @author Peter Rossbach
- * @version $Revision:$ $Date:$
+ * @version $Revision: 526825 $ $Date: 2007-04-09 18:56:01 +0200 (Mon, 09 Apr 2007) $
  * @see org.apache.jk.status.JkStatusParser
  */
 public class JkResult implements Serializable {

Modified: trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkSoftware.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkSoftware.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkSoftware.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,7 +20,7 @@
 
 /**
  * @author Peter Rossbach
- * @version $Revision:$ $Date:$
+ * @version $Revision: 526825 $ $Date: 2007-04-09 18:56:01 +0200 (Mon, 09 Apr 2007) $
  * @see org.apache.jk.status.JkStatusParser
  */
 public class JkSoftware implements Serializable {

Modified: trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusParser.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusParser.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusParser.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -127,8 +127,13 @@
  *
  *
  * </code>
+ * <br/>
+ * mod_jk 1.2.24 runtime state N/A changed to OK/IDLE:<br/>
+ * <code>
+ *        state="OK/IDLE"
+ * </code>
  * @author Peter Rossbach
- * @version $Revision: 485242 $ $Date: 2006-12-10 12:45:39 -0700 (Sun, 10 Dec 2006) $
+ * @version $Revision: 550245 $ $Date: 2007-06-24 09:05:54 -0600 (Sun, 24 Jun 2007) $
  * @since 5.5.10
  */
 public class JkStatusParser {

Modified: trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusTask.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -30,7 +30,7 @@
  * by the mod_jk status (1.2.13) application.
  * 
  * @author Peter Rossbach
- * @version $Revision: 502062 $
+ * @version $Revision: 550245 $
  * @since 5.5.10
  */
 public class JkStatusTask extends BaseRedirectorHelperTask {
@@ -258,7 +258,10 @@
                                         + " status=" + member.getStatus()
                                         + " host=" + member.getAddress());
                             }
-                            if (member.getState() != null && !("OK".equals(member.getState()) || "N/A".equals(member.getState())) ){
+                            if (member.getState() != null &&
+                                !("OK".equals(member.getState()) ||
+                                  "N/A".equals(member.getState()) ||
+                                  "OK/IDLE".equals(member.getState())) ){
                                 error.append(" worker name=" + member.getName()
                                         + " state=" + member.getState()
                                         + " host=" + member.getAddress());

Modified: trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusUpdateLoadbalancerTask.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusUpdateLoadbalancerTask.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusUpdateLoadbalancerTask.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -28,7 +28,7 @@
  * 
  * 
  * @author Peter Rossbach
- * @version $Revision:$
+ * @version $Revision: 550273 $
  * @since mod_jk 1.2.20
  */
 public class JkStatusUpdateLoadbalancerTask extends AbstractJkStatusTask {
@@ -51,6 +51,7 @@
    
     protected int lockCode = -1;
     protected String lock;
+    protected int maxReplyTimeouts = -1;
 
     /**
      * Return descriptive information about this implementation and the
@@ -199,9 +200,23 @@
 	}
 
 	/**
+	 * @return the maxReplyTimeouts
+	 */
+	public int getMaxReplyTimeouts() {
+		return maxReplyTimeouts;
+	}
+
+	/**
+	 * @param maxReplyTimeouts the maxReplyTimeouts to set
+	 */
+	public void setMaxReplyTimeouts(int maxReplyTimeouts) {
+		this.maxReplyTimeouts = maxReplyTimeouts;
+	}
+
+	/**
      * Create JkStatus worker update link
      * <ul>
-     * </b>http://localhost/jkstatus?cmd=update&mime=txt&w=loadbalancer&lm=1&ll=1&lr=2&lt=60&ls=true&lf=false
+     * </b>http://localhost/jkstatus?cmd=update&mime=txt&w=loadbalancer&lm=1&ll=1&lr=2&lt=60&ls=true&lf=false&lx=0
      * <br/>
      *
      * 
@@ -215,6 +230,7 @@
      * <li><b>lt:<b/> recover wait timeout</li>
      * <li><b>ls:<b/> sticky session</li>
      * <li><b>lf:<b/> force sticky session</li>
+     * <li><b>lx:<b/> max reply timeouts</li>
      * </ul>
      * <ul>
      * <li>lm=1 or Requests</li>
@@ -268,6 +284,10 @@
  				sb.append("&ll=");
  				sb.append(lock);
  			}
+			if (maxReplyTimeouts >= 0) {
+				sb.append("&lx=");
+				sb.append(maxReplyTimeouts);
+			}
             
         } catch (UnsupportedEncodingException e) {
             throw new BuildException("Invalid 'charset' attribute: "

Modified: trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusUpdateWorkerTask.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusUpdateWorkerTask.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/src/share/org/apache/jk/status/JkStatusUpdateWorkerTask.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -28,7 +28,7 @@
  * 
  * 
  * @author Peter Rossbach
- * @version $Revision:$
+ * @version $Revision: 526825 $
  * @since mod_jk 1.2.20
  */
 public class JkStatusUpdateWorkerTask extends AbstractJkStatusTask {

Modified: trunk/tomcat5.5/connectors/jk/jkstatus/test/src/share/org/apache/jk/status/JkStatusParserTest.java
===================================================================
--- trunk/tomcat5.5/connectors/jk/jkstatus/test/src/share/org/apache/jk/status/JkStatusParserTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/jkstatus/test/src/share/org/apache/jk/status/JkStatusParserTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -36,8 +36,8 @@
          +   "<jk:server name=\"localhost\" port=\"80\" software=\"Apache/2.0.58 (Unix) mod_jk/1.2.19\" version=\"1.2.19\" />"
          +   "<jk:balancers>"
          +   "<jk:balancer id=\"0\" name=\"loadbalancer\" type=\"lb\" sticky=\"True\" stickyforce=\"False\" retries=\"2\" recover=\"60\" >"
-         +   "<jk:member id=\"0\" name=\"node1\" type=\"ajp13\" host=\"localhost\" port=\"9012\" address=\"127.0.0.1:9012\" activation=\"ACT\" state=\"N/A\" distance=\"0\" lbfactor=\"1\" lbmult=\"1\" lbvalue=\"0\" elected=\"0\" errors=\"0\" transferred=\"0\" readed=\"0\" busy=\"0\" maxbusy=\"0\" jvm_route=\"node1\" />"
-         +   "<jk:member id=\"0\" name=\"node2\" type=\"ajp13\" host=\"localhost\" port=\"9022\" address=\"127.0.0.1:9022\" activation=\"ACT\" state=\"N/A\" distance=\"0\" lbfactor=\"1\" lbmult=\"1\" lbvalue=\"0\" elected=\"0\" errors=\"0\" transferred=\"0\" readed=\"0\" busy=\"0\" maxbusy=\"0\" jvm_route=\"node2\" />"
+         +   "<jk:member id=\"0\" name=\"node1\" type=\"ajp13\" host=\"localhost\" port=\"9012\" address=\"127.0.0.1:9012\" activation=\"ACT\" state=\"OK/IDLE\" distance=\"0\" lbfactor=\"1\" lbmult=\"1\" lbvalue=\"0\" elected=\"0\" errors=\"0\" transferred=\"0\" readed=\"0\" busy=\"0\" maxbusy=\"0\" jvm_route=\"node1\" />"
+         +   "<jk:member id=\"0\" name=\"node2\" type=\"ajp13\" host=\"localhost\" port=\"9022\" address=\"127.0.0.1:9022\" activation=\"ACT\" state=\"OK/IDLE\" distance=\"0\" lbfactor=\"1\" lbmult=\"1\" lbvalue=\"0\" elected=\"0\" errors=\"0\" transferred=\"0\" readed=\"0\" busy=\"0\" maxbusy=\"0\" jvm_route=\"node2\" />"
          +   "<jk:map type=\"Wildchar\" uri=\"/ClusterTest/*\" context=\"/ClusterTest/*\" />"
          +   "<jk:map type=\"Exact\" uri=\"/ClusterTest\" context=\"/ClusterTest\" />"
          +   "<jk:map type=\"Wildchar\" uri=\"/myapps/*\" context=\"/myapps/*\" />"

Modified: trunk/tomcat5.5/connectors/jk/native/STATUS.txt
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/STATUS.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/STATUS.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,9 +1,12 @@
 TOMCAT CONNECTORS (JK) STATUS:			-*-text-*-
-Last modified at [$Date: 2007-03-02 07:25:46 -0700 (Fri, 02 Mar 2007) $]
+Last modified at [$Date: 2007-08-07 02:41:26 -0600 (Tue, 07 Aug 2007) $]
 
 Release:
 
-    1.2.22  : in development
+    1.2.25  : released August 7, 2007
+    1.2.24  : released July 27, 2007, withdrawn August 2, 2007
+    1.2.23  : released May 18, 2007
+    1.2.22  : released April 17, 2007
     1.2.21  : released March 1, 2007
     1.2.20  : released December 10, 2006
     1.2.19  : released September 17, 2006

Modified: trunk/tomcat5.5/connectors/jk/native/apache-1.3/Makefile.netware
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-1.3/Makefile.netware	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-1.3/Makefile.netware	2007-10-03 19:12:01 UTC (rev 4300)
@@ -5,11 +5,11 @@
 
 # Edit the path below to point to the base of your Apache 1.3 includes.
 ifndef AP_HOME
-AP_HOME	= c:/projects/cw/apache_1.3.33
+AP_HOME	= c:/projects/cw/apache_1.3.37
 endif
 # Edit the path below to point to the base of your NetWare Java SDK.
-ifndef JAVA_HOME
-JAVA_HOME	= c:/projects/sdks/java-nw
+ifndef NW_JDK
+NW_JDK	= c:/projects/sdks/java-nw
 endif
 # Edit the path below to point to the base of your Novell NDK.
 ifndef NDKBASE
@@ -18,15 +18,17 @@
 INSTDIR	= s:/apache/modules
 
 # Edit the vars below to change NLM target settings.
-TARGET  = mod_jk
+TARGET	= mod_jk
 VERSION	= $(JK_VERSION)
-COPYR	= Copyright (c) 2000-2004 The Apache Software Foundation. All rights reserved.
+#COPYR	= Copyright (c) 2000-2007 The Apache Software Foundation. All rights reserved.
+COPYR	= Licensed under the Apache License, Version 2.0
 DESCR	= Apache $(AP_VERSION_STR) plugin for Tomcat $(JK_VERSION_STR)
 MTSAFE	= NO
-STACK	= 49152
+STACK	= 65536
 #SCREEN	= NONE
 EXPORTS	= jk_module
 #AP_PRE	= YES
+#MODULES	=
 
 # Edit the var below to point to your lib architecture.
 ifndef LIBARCH
@@ -54,16 +56,18 @@
 	CC = mwccnlm
 else
 	CC = gcc
+	GCC_ROOT = $(MINGNLM)
 endif
 # RM	= rm -f
 #CP	= cp -fv
+AWK	= awk
 
 # Global flags for all compilers
 CFLAGS	= $(OPT) -D$(DB) -DNETWARE -nostdinc
 
 ifeq ($(CC),mwccnlm)
 LD	= mwldnlm
-LDFLAGS	= -nostdlib $(PRELUDE) $(OBJDIR)/*.o -o $(OBJDIR)/$(TARGET).nlm -commandfile
+LDFLAGS	= -nostdlib $(OBJS) $(PRELUDE) $(LDLIBS) -o $@ -commandfile
 CFLAGS	+= -gccinc -inline off -opt nointrinsics
 #CFLAGS	+= -w on
 ifeq ($(LIBARCH),LIBC)
@@ -73,6 +77,7 @@
 else
 #	PRELUDE = $(SDK_CLIB)/imports/clibpre.obj
 	PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
+	LDLIBS = "$(METROWERKS)/Novell Support/libraries/runtime/mwcrtl.lib"
 #	CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
 	CFLAGS += -align 1 -proc 586
 endif
@@ -87,6 +92,8 @@
 #	CFLAGS += -D__ANSIC__
 else
 #	PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o
+	PRELUDE = $(NDK_ROOT)/pre/prelude.o
+	LDLIBS = $(GCC_ROOT)/lib/gcc-lib/i586-netware/3.2.3/libgcc.a
 	CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
 endif
 endif
@@ -103,15 +110,17 @@
 JKCOMMON = ../common
 
 INCLUDES = -I$(AP_HOME)/src/include -I$(AP_HOME)/src/os/netware
-INCLUDES += -I$(JKCOMMON) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/netware 
+INCLUDES += -I$(JKCOMMON) -I$(NW_JDK)/include -I$(NW_JDK)/include/netware 
 
 ifeq ($(LIBARCH),LIBC)
-	INCLUDES += -I$(SDK_LIBC)/include -I$(SDK_LIBC)/include/nks
+	INCLUDES += -I$(SDK_LIBC)/include
 	INCLUDES += -I$(SDK_LIBC)/include/winsock
 else
 	INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
 	INCLUDES += -I$(NDKBASE)/ws295sdk/include
 	CFLAGS += -DNETDB_USE_INTERNET
+	CFLAGS += -DNO_GETTIMEOFDAY
+	CFLAGS += -DJK_PREFORK
 endif
 CFLAGS	+= $(INCLUDES)
 
@@ -119,12 +128,13 @@
 	XDCDATA = $(AP_HOME)/src/os/netware/apache.xdc
 endif
 
-ifeq ($(OSTYPE),linux)
+ifeq ($(findstring linux,$(OSTYPE)),linux)
 DL	= '
--include $(NDKBASE)/nlmconv/ncpfs.inc
+#-include $(NDKBASE)/nlmconv/ncpfs.inc
 endif
 
 OBJS	= \
+	$(OBJDIR)/$(TARGET).o \
 	$(OBJDIR)/jk_nwmain.o \
 	$(OBJDIR)/jk_ajp12_worker.o \
 	$(OBJDIR)/jk_ajp13.o \
@@ -144,28 +154,24 @@
 	$(OBJDIR)/jk_sockbuf.o \
 	$(OBJDIR)/jk_status.o \
 	$(OBJDIR)/jk_uri_worker_map.o \
+	$(OBJDIR)/jk_url.o \
 	$(OBJDIR)/jk_util.o \
-	$(OBJDIR)/jk_worker.o \
-	$(OBJDIR)/$(TARGET).o
+	$(OBJDIR)/jk_worker.o
 
+#OBJS	+= $(OBJDIR)/ap_snprintf.o
 
+vpath %.c . $(JKCOMMON) $(AP_HOME)/src/os/netware
+
+
 all: $(OBJDIR) $(OBJDIR)/version.inc $(OBJDIR)/$(TARGET).nlm 
 
 $(OBJDIR)/%.o: %.c
 	@echo Compiling $<
 	@$(CC) $(CFLAGS) -c $< -o $@
 
-$(OBJDIR)/%.o: $(JKCOMMON)/%.c
-	@echo Compiling $<
-	@$(CC) $(CFLAGS) -c $< -o $@
-
-$(OBJDIR)/%.o: $(AP_HOME)/src/os/netware/%.c
-	@echo Compiling $<
-	@$(CC) $(CFLAGS) -c $< -o $@
-
 $(OBJDIR)/version.inc: $(JKCOMMON)/jk_version.h $(AP_HOME)/src/include/httpd.h $(OBJDIR)
 	@echo Creating $@
-	@awk -f ../../support/get_ver.awk $< $(AP_HOME)/src/include/httpd.h > $@
+	@$(AWK) -f ../../support/get_ver.awk $< $(AP_HOME)/src/include/httpd.h > $@
 
 dist: all
 	-$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv
@@ -182,6 +188,7 @@
 $(OBJDIR):
 	@mkdir $(OBJDIR)
 
+#$(OBJDIR)/$(TARGET).nlm: $(OBJS) $(OBJDIR)/$(TARGET).def $(XDCDATA) $(PRELUDE)
 $(OBJDIR)/$(TARGET).nlm: $(OBJS) $(OBJDIR)/$(TARGET).def $(XDCDATA)
 	@echo Linking $@
 	@-$(RM) $@
@@ -213,7 +220,7 @@
 ifeq ($(DB),DEBUG)
 	@echo $(DL)debug$(DL) >> $@
 endif
-	@echo $(DL)threadname "$(TARGET)"$(DL) >> $@
+	@echo $(DL)threadname "$*"$(DL) >> $@
 ifdef XDCDATA
 	@echo $(DL)xdcdata $(XDCDATA)$(DL) >> $@
 endif
@@ -233,11 +240,7 @@
 	@echo $(DL)import @$(AP_HOME)/src/os/netware/apachecore.imp$(DL) >> $@
 	@echo $(DL)module clib$(DL) >> $@
 else
-ifeq ($(LD),nlmconv)
 	@echo $(DL)flag_on 64$(DL) >> $@
-else
-	@echo $(DL)autounload$(DL) >> $@
-endif
 	@echo $(DL)pseudopreemption$(DL) >> $@
 	@echo $(DL)start _LibCPrelude$(DL) >> $@
 	@echo $(DL)exit _LibCPostlude$(DL) >> $@
@@ -260,6 +263,9 @@
 ifeq ($(LD),nlmconv)
 	@echo $(DL)input $(OBJS)$(DL) >> $@
 	@echo $(DL)input $(PRELUDE)$(DL) >> $@
-	@echo $(DL)output $(TARGET).nlm$(DL) >> $@
+ifdef LDLIBS
+	@echo $(DL)input $(LDLIBS)$(DL) >> $@
 endif
+	@echo $(DL)output $*.nlm$(DL) >> $@
+endif
 

Modified: trunk/tomcat5.5/connectors/jk/native/apache-1.3/Makefile.vc
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-1.3/Makefile.vc	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-1.3/Makefile.vc	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,37 +1,23 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_jk.dsp
-!IF "$(CFG)" == ""
-CFG=mod_jk - Win32 Release
-!MESSAGE No configuration specified. Defaulting to mod_jk - Win32 Release.
-!ENDIF 
-
-!IF "$(CFG)" != "mod_jk - Win32 Release"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "Makefile.vc" CFG="mod_jk - Win32 Release"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "mod_jk - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE 
-!ERROR An invalid configuration is specified.
-!ENDIF 
-
 !IF "$(OS)" == "Windows_NT"
 NULL=
 !ELSE 
 NULL=nul
 !ENDIF 
 
+!IFDEF EAPI
+OUTDIR=.\ReleaseSSL
+INTDIR=.\ReleaseSSL
+DEF_EAPI=/D "EAPI"
+!ELSE
+OUTDIR=.\Release
+INTDIR=.\Release
+DEF_EAPI=
+!ENDIF
+
+
 CPP=cl.exe
 MTL=midl.exe
 RSC=rc.exe
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
 
 ALL : "$(OUTDIR)\mod_jk.so"
 
@@ -55,6 +41,7 @@
 	- at erase "$(INTDIR)\jk_sockbuf.obj"
 	- at erase "$(INTDIR)\jk_status.obj"
 	- at erase "$(INTDIR)\jk_uri_worker_map.obj"
+	- at erase "$(INTDIR)\jk_url.obj"
 	- at erase "$(INTDIR)\jk_util.obj"
 	- at erase "$(INTDIR)\jk_worker.obj"
 	- at erase "$(INTDIR)\mod_jk.obj"
@@ -93,6 +80,7 @@
 	"$(INTDIR)\jk_sockbuf.obj" \
 	"$(INTDIR)\jk_status.obj" \
 	"$(INTDIR)\jk_uri_worker_map.obj" \
+	"$(INTDIR)\jk_url.obj" \
 	"$(INTDIR)\jk_util.obj" \
 	"$(INTDIR)\jk_worker.obj" \
 	"$(INTDIR)\mod_jk.obj"
@@ -102,7 +90,7 @@
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
 
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\common" /I "$(APACHE1_HOME)\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_jk_src" /FD /c 
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\common" /I "$(APACHE1_HOME)\include" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" $(DEF_EAPI) /D "MOD_JK_EXPORTS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\mod_jk_src" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -136,16 +124,7 @@
 
 MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
 
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_jk.dep")
-!INCLUDE "mod_jk.dep"
-!ELSE 
-!MESSAGE Warning: cannot find "mod_jk.dep"
-!ENDIF 
-!ENDIF 
 
-
-!IF "$(CFG)" == "mod_jk - Win32 Release"
 SOURCE=..\common\jk_ajp12_worker.c
 
 "$(INTDIR)\jk_ajp12_worker.obj" : $(SOURCE) "$(INTDIR)"
@@ -254,6 +233,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\common\jk_url.c
+
+"$(INTDIR)\jk_url.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\common\jk_util.c
 
 "$(INTDIR)\jk_util.obj" : $(SOURCE) "$(INTDIR)"
@@ -269,8 +254,3 @@
 SOURCE=.\mod_jk.c
 
 "$(INTDIR)\mod_jk.obj" : $(SOURCE) "$(INTDIR)"
-
-
-
-!ENDIF 
-

Modified: trunk/tomcat5.5/connectors/jk/native/apache-1.3/NWGNUmakefile.mak
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-1.3/NWGNUmakefile.mak	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-1.3/NWGNUmakefile.mak	2007-10-03 19:12:01 UTC (rev 4300)
@@ -12,6 +12,8 @@
 JAVA_HOME = c:/projects/sdks/java-nw
 endif
 
+LDLIBS = -l"$(METROWERKS)/Novell Support/libraries/runtime/mwcrtl.lib"
+
 JKCOMMON = ../common
 
 #
@@ -39,6 +41,8 @@
 # These flags will come after CFLAGS
 #
 XCFLAGS		+= \
+			-DNO_GETTIMEOFDAY \
+			-DJK_PREFORK \
 			$(EOLIST)
 
 #
@@ -51,6 +55,7 @@
 # These flags will be added to the link.opt file
 #
 XLFLAGS		+= \
+			$(LDLIBS) \
 			$(EOLIST)
 
 #
@@ -113,6 +118,12 @@
 NLM_DESCRIPTION	= Apache $(AP_VERSION_STR) plugin for Tomcat $(JK_VERSION_STR)
 
 #
+# This is used by the link '-copy ' directive.
+# If left blank, the ASF copyright defined in NWGNUtail.inc will be used.
+#
+NLM_COPYRIGHT = Licensed under the Apache License Version 2.0
+
+#
 # This is used by the '-threadname' directive.  If left blank,
 # NLM_NAME Thread will be used.
 #
@@ -127,7 +138,7 @@
 #
 # If this is specified, it will override the default of 64K
 #
-NLM_STACK_SIZE	= 49152
+NLM_STACK_SIZE	= 65536
 
 #
 # If this is specified it will be used by the link '-entry' directive
@@ -168,6 +179,7 @@
 # Paths must all use the '/' character
 #
 FILES_nlm_objs = \
+	$(OBJDIR)/$(NLM_NAME).o \
 	$(OBJDIR)/jk_nwmain.o \
 	$(OBJDIR)/jk_ajp12_worker.o \
 	$(OBJDIR)/jk_ajp13.o \
@@ -187,9 +199,9 @@
 	$(OBJDIR)/jk_sockbuf.o \
 	$(OBJDIR)/jk_status.o \
 	$(OBJDIR)/jk_uri_worker_map.o \
+	$(OBJDIR)/jk_url.o \
 	$(OBJDIR)/jk_util.o \
 	$(OBJDIR)/jk_worker.o \
-	$(OBJDIR)/$(NLM_NAME).o \
 	$(EOLIST)
 
 #
@@ -222,10 +234,8 @@
 #
 # If this is specified, it will override $(NWOS)\copyright.txt.
 #
-#FILE_nlm_copyright = 'Copyright (c) 2000-2005 The Apache Software Foundation. All rights reserved.'
 FILE_nlm_copyright =
 
-
 #
 # Any additional imports go here
 #
@@ -269,7 +279,7 @@
 #
 # Any specialized rules here
 #
-vpath %.c . $(JKCOMMON)
+vpath %.c . $(JKCOMMON) $(SNPRINTF)
 
 $(OBJDIR)/version.inc: $(JKCOMMON)/jk_version.h $(SRC)/include/httpd.h $(OBJDIR)
 	@echo Creating $@

Modified: trunk/tomcat5.5/connectors/jk/native/apache-1.3/mod_jk.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-1.3/mod_jk.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-1.3/mod_jk.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -21,7 +21,7 @@
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  *              Dan Milstein <danmil at shore.net>                            *
  *              Henri Gomez <hgomez at apache.org>                            *
- * Version:     $Revision: 511952 $                                          *
+ * Version:     $Revision: 562090 $                                          *
  ***************************************************************************/
 
 /*
@@ -60,6 +60,7 @@
 #include "jk_uri_worker_map.h"
 #include "jk_ajp13.h"
 #include "jk_shm.h"
+#include "jk_url.h"
 
 #define JK_LOG_DEF_FILE             ("logs/mod_jk.log")
 #define JK_SHM_DEF_FILE             ("logs/jk-runtime-status")
@@ -68,6 +69,7 @@
 #define JK_ENV_CIPHER               ("SSL_CIPHER")
 #define JK_ENV_SESSION              ("SSL_SESSION_ID")
 #define JK_ENV_KEY_SIZE             ("SSL_CIPHER_USEKEYSIZE")
+#define JK_ENV_CERTCHAIN_PREFIX     ("SSL_CLIENT_CERT_CHAIN_")
 #define JK_ENV_WORKER_NAME          ("JK_WORKER_NAME")
 #define JK_NOTE_WORKER_NAME         ("JK_WORKER_NAME")
 #define JK_NOTE_WORKER_TYPE         ("JK_WORKER_TYPE")
@@ -167,6 +169,7 @@
     char *cipher_indicator;
     char *session_indicator;
     char *key_size_indicator;
+    char *certchain_prefix;     /* Client certificate chain prefix */
 
     /*
      * Jk Options
@@ -417,8 +420,12 @@
                 }
 
             }
-            if (p->r->connection->aborted)
+            if (len && p->r->connection->aborted) {
+                /* Fail if there is something left to send and
+                 * the connection was aborted by the client
+                 */
                 return JK_FALSE;
+            }
         }
 
         return JK_TRUE;
@@ -461,23 +468,26 @@
     va_end(ap);
 
     ap_log_error(file, line, level, s, res);
+    if ( s ) {
+        ap_log_error(file, line, level, NULL, res);
+    }
 
     /* Exit process */
     exit(1);
 }
 
 /* Return the content length associated with an Apache request structure */
-static int get_content_length(request_rec * r)
+static jk_uint64_t get_content_length(request_rec * r)
 {
     if (r->clength > 0) {
-        return r->clength;
+        return (jk_uint64_t)r->clength;
     }
     else {
         char *lenp = (char *)ap_table_get(r->headers_in, "Content-Length");
 
         if (lenp) {
-            int rc = atoi(lenp);
-            if (rc > 0) {
+            jk_uint64_t rc = 0;
+            if (sscanf(lenp, "%" JK_UINT64_T_FMT, &rc) > 0 && rc > 0) {
                 return rc;
             }
         }
@@ -507,6 +517,7 @@
 static int init_ws_service(apache_private_data_t * private_data,
                            jk_ws_service_t *s, jk_server_conf_t * conf)
 {
+    int size;
     request_rec *r = private_data->r;
     char *ssl_temp = NULL;
     s->route = NULL;        /* Used for sticky session routing */
@@ -567,24 +578,6 @@
     s->no_more_chunks = 0;
     s->query_string = r->args;
 
-    /* Dump all connection param so we can trace what's going to
-     * the remote tomcat
-     */
-    if (JK_IS_DEBUG_LEVEL(conf->log)) {
-        jk_log(conf->log, JK_LOG_DEBUG,
-               "Service protocol=%s method=%s host=%s addr=%s name=%s port=%d auth=%s user=%s laddr=%s raddr=%s",
-               STRNULL_FOR_NULL(s->protocol),
-               STRNULL_FOR_NULL(s->method),
-               STRNULL_FOR_NULL(s->remote_host),
-               STRNULL_FOR_NULL(s->remote_addr),
-               STRNULL_FOR_NULL(s->server_name),
-               s->server_port,
-               STRNULL_FOR_NULL(s->auth_type),
-               STRNULL_FOR_NULL(s->remote_user),
-               STRNULL_FOR_NULL(r->connection->local_ip),
-               STRNULL_FOR_NULL(r->connection->remote_ip));
-    }
-
     /*
      * The 2.2 servlet spec errata says the uri from
      * HttpServletRequest.getRequestURI() should remain encoded.
@@ -618,6 +611,12 @@
         s->req_uri = r->uri;
         break;
 
+    case JK_OPT_FWDURIPROXY:
+        size = 3 * strlen(r->uri) + 1;
+        s->req_uri = ap_palloc(r->pool, size);
+        jk_canonenc(r->uri, s->req_uri, size);
+        break;
+
     case JK_OPT_FWDURIESCAPED:
         s->req_uri = ap_escape_uri(r->pool, r->uri);
         break;
@@ -645,8 +644,34 @@
                 s->ssl_cert =
                     (char *)ap_table_get(r->subprocess_env,
                                          conf->certs_indicator);
+
+                if (conf->options & JK_OPT_FWDCERTCHAIN) {
+                    array_header *t = ap_table_elts(r->subprocess_env);
+                    if (t && t->nelts) {
+                        int i;
+                        table_entry *elts = (table_entry *) t->elts;
+                        array_header *certs = ap_make_array(r->pool, 1,
+                                                            sizeof(char *));
+                        *(const char **)ap_push_array(certs) = s->ssl_cert;
+                        for (i = 0; i < t->nelts; i++) {
+                            if (!elts[i].key)
+                                continue;
+                            if (!strncasecmp(elts[i].key,
+                                             conf->certchain_prefix,
+                                             strlen(conf->certchain_prefix)))
+                            *(const char **)ap_push_array(certs) = elts[i].val;
+                        }
+                        s->ssl_cert = ap_array_pstrcat(r->pool, certs, '\0');
+                     }
+                }
+
                 if (s->ssl_cert) {
                     s->ssl_cert_len = strlen(s->ssl_cert);
+                    if (JK_IS_DEBUG_LEVEL(conf->log)) {
+                        jk_log(conf->log, JK_LOG_DEBUG,
+                               "SSL client certificate (%d bytes): %s",
+                               s->ssl_cert_len, s->ssl_cert);
+                    }
                 }
                 /* Servlet 2.3 API */
                 s->ssl_cipher =
@@ -749,6 +774,26 @@
         }
     }
     s->uw_map = conf->uw_map;
+
+    /* Dump all connection param so we can trace what's going to
+     * the remote tomcat
+     */
+    if (JK_IS_DEBUG_LEVEL(conf->log)) {
+        jk_log(conf->log, JK_LOG_DEBUG,
+               "Service protocol=%s method=%s host=%s addr=%s name=%s port=%d auth=%s user=%s laddr=%s raddr=%s uri=%s",
+               STRNULL_FOR_NULL(s->protocol),
+               STRNULL_FOR_NULL(s->method),
+               STRNULL_FOR_NULL(s->remote_host),
+               STRNULL_FOR_NULL(s->remote_addr),
+               STRNULL_FOR_NULL(s->server_name),
+               s->server_port,
+               STRNULL_FOR_NULL(s->auth_type),
+               STRNULL_FOR_NULL(s->remote_user),
+               STRNULL_FOR_NULL(r->connection->local_ip),
+               STRNULL_FOR_NULL(r->connection->remote_ip),
+               STRNULL_FOR_NULL(s->req_uri));
+    }
+
     return JK_TRUE;
 }
 
@@ -1583,6 +1628,25 @@
 }
 
 /*
+ * JkCERTCHAINPrefix Directive Handling
+ *
+ * JkCERTCHAINPrefix SSL_CLIENT_CERT_CHAIN_
+ */
+
+static const char *jk_set_certchain_prefix(cmd_parms * cmd,
+                                           void *dummy, const char *prefix)
+{
+    server_rec *s = cmd->server;
+    jk_server_conf_t *conf =
+        (jk_server_conf_t *) ap_get_module_config(s->module_config,
+                                                  &jk_module);
+
+    conf->certchain_prefix = ap_pstrdup(cmd->pool, prefix);
+
+    return NULL;
+}
+
+/*
  * JkSESSIONIndicator Directive Handling
  *
  * JkSESSIONIndicator SSL_SESSION_ID
@@ -1628,6 +1692,8 @@
  *  ForwardURICompatUnparsed => Forward URI as unparsed, spec compliant but broke mod_rewrite (old TC)
  *  ForwardURIEscaped        => Forward URI escaped and Tomcat (3.3 rc2) stuff will do the decoding part
  *  ForwardDirectories       => Forward all directory requests with no index files to Tomcat
+ * +ForwardSSLCertChain      => Forward SSL certificate chain
+ * -ForwardSSLCertChain      => Don't forward SSL certificate chain
  */
 
 const char *jk_set_options(cmd_parms * cmd, void *dummy, const char *line)
@@ -1656,10 +1722,7 @@
             return ap_pstrcat(cmd->pool, "JkOptions: Illegal option '-", w,
                                "': ForwardURI* options can not be disabled", NULL);
 
-        if (!strcasecmp(w, "ForwardKeySize")) {
-            opt = JK_OPT_FWDKEYSIZE;
-        }
-        else if (!strcasecmp(w, "ForwardURICompat")) {
+        if (!strcasecmp(w, "ForwardURICompat")) {
             opt = JK_OPT_FWDURICOMPAT;
             mask = JK_OPT_FWDURIMASK;
         }
@@ -1671,6 +1734,10 @@
             opt = JK_OPT_FWDURIESCAPED;
             mask = JK_OPT_FWDURIMASK;
         }
+        else if (!strcasecmp(w, "ForwardURIProxy")) {
+            opt = JK_OPT_FWDURIPROXY;
+            mask = JK_OPT_FWDURIMASK;
+        }
         else if (!strcasecmp(w, "ForwardDirectories")) {
             opt = JK_OPT_FWDDIRS;
         }
@@ -1686,6 +1753,15 @@
         else if (!strcasecmp(w, "DisableReuse")) {
             opt = JK_OPT_DISABLEREUSE;
         }
+        else if (!strcasecmp(w, "ForwardSSLCertChain")) {
+            opt = JK_OPT_FWDCERTCHAIN;
+        }
+        else if (!strcasecmp(w, "ForwardKeySize")) {
+            opt = JK_OPT_FWDKEYSIZE;
+        }
+        else if (!strcasecmp(w, "RejectUnsafeURI")) {
+            opt = JK_OPT_REJECTUNSAFE;
+        }
         else
             return ap_pstrcat(cmd->pool, "JkOptions: Illegal option '", w,
                               "'", NULL);
@@ -1720,6 +1796,7 @@
         (jk_server_conf_t *) ap_get_module_config(s->module_config,
                                                   &jk_module);
 
+    conf->envvars_in_use = JK_TRUE;
 
     /* env_name is mandatory, default_value is optional.
      * No value means send the attribute only, if the env var is set during runtime.
@@ -1744,8 +1821,9 @@
     jk_server_conf_t *conf =
         (jk_server_conf_t *) ap_get_module_config(s->module_config,
                                                   &jk_module);
- 
-    if (jk_map_read_property(conf->worker_properties, line, 1, conf->log) == JK_FALSE)
+
+    if (jk_map_read_property(conf->worker_properties, line,
+                             JK_MAP_HANDLE_DUPLICATES, conf->log) == JK_FALSE)
         return ap_pstrcat(cmd->temp_pool, "Invalid JkWorkerProperty ", line, NULL);
 
     return NULL;
@@ -1783,7 +1861,6 @@
 
     /*
      * JkAutoMount specifies that the list of handled URLs must be
-     * JkAutoMount specifies that the list of handled URLs must be
      * asked to the servlet engine (autoconf feature)
      */
     {"JkAutoMount", jk_automount_context, NULL, RSRC_CONF, TAKE12,
@@ -1831,7 +1908,7 @@
     {"JkLogLevel", jk_set_log_level, NULL, RSRC_CONF, TAKE1,
      "The mod_jk module log level, can be debug, info, request, error, or emerg"},
     {"JkLogStampFormat", jk_set_log_fmt, NULL, RSRC_CONF, TAKE1,
-     "The mod_jk module log format, follow strftime synthax"},
+     "The mod_jk module log format, follow strftime syntax"},
     {"JkRequestLogFormat", jk_set_request_log_format, NULL, RSRC_CONF, TAKE1,
      "The mod_jk module request log format string"},
 
@@ -1871,6 +1948,8 @@
      "Name of the Apache environment that contains SSL client certificates"},
     {"JkCIPHERIndicator", jk_set_cipher_indicator, NULL, RSRC_CONF, TAKE1,
      "Name of the Apache environment that contains SSL client cipher"},
+    {"JkCERTCHAINPrefix", jk_set_certchain_prefix, NULL, RSRC_CONF, TAKE1,
+     "Name of the Apache environment (prefix) that contains SSL client chain certificates"},
     {"JkSESSIONIndicator", jk_set_session_indicator, NULL, RSRC_CONF, TAKE1,
      "Name of the Apache environment that contains SSL session"},
     {"JkKEYSIZEIndicator", jk_set_key_size_indicator, NULL, RSRC_CONF, TAKE1,
@@ -1886,6 +1965,8 @@
      *  ForwardURICompat         => Forward URI normally, less spec compliant but mod_rewrite compatible (old TC)
      *  ForwardURICompatUnparsed => Forward URI as unparsed, spec compliant but broke mod_rewrite (old TC)
      *  ForwardURIEscaped        => Forward URI escaped and Tomcat (3.3 rc2) stuff will do the decoding part
+     * +ForwardSSLCertChain      => Forward SSL certificate chain
+     * -ForwardSSLCertChain      => Don't forward SSL certificate chain
      */
     {"JkOptions", jk_set_options, NULL, RSRC_CONF, RAW_ARGS,
      "Set one of more options to configure the mod_jk module"},
@@ -2153,6 +2234,7 @@
         c->https_indicator = NULL;
         c->certs_indicator = NULL;
         c->cipher_indicator = NULL;
+        c->certchain_prefix = NULL;
         c->session_indicator = NULL;
         c->key_size_indicator = NULL;
         c->strip_session = JK_UNSET;
@@ -2173,6 +2255,7 @@
         c->https_indicator = JK_ENV_HTTPS;
         c->certs_indicator = JK_ENV_CERTS;
         c->cipher_indicator = JK_ENV_CIPHER;
+        c->certchain_prefix = JK_ENV_CERTCHAIN_PREFIX;
         c->session_indicator = JK_ENV_SESSION;
         c->key_size_indicator = JK_ENV_KEY_SIZE;
         c->strip_session = JK_FALSE;
@@ -2242,6 +2325,8 @@
         overrides->certs_indicator = base->certs_indicator;
     if (!overrides->cipher_indicator)
         overrides->cipher_indicator = base->cipher_indicator;
+    if (!overrides->certchain_prefix)
+        overrides->certchain_prefix = base->certchain_prefix;
     if (!overrides->session_indicator)
         overrides->session_indicator = base->session_indicator;
     if (!overrides->key_size_indicator)
@@ -2296,20 +2381,21 @@
     return overrides;
 }
 
-static int JK_METHOD jk_log_to_file(jk_logger_t *l,
-                                    int level, const char *what)
+static int JK_METHOD jk_log_to_file(jk_logger_t *l, int level,
+                                    int used, char *what)
 {
     if (l &&
         (l->level <= level || level == JK_LOG_REQUEST_LEVEL) &&
-         l->logger_private && what) {
-        file_logger_t *flp = l->logger_private;
+         l->logger_private && what && used > 0) {
+        jk_file_logger_t *flp = l->logger_private;
         int log_fd = flp->log_fd;
-        size_t sz = strlen(what);
-        if (log_fd >= 0 && sz) {
-            if ( write(log_fd, what, sz) < 0 )
-            {
-                ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO,
-                             NULL,
+        if (log_fd >= 0) {
+#if defined(WIN32)
+            what[used++] = '\r';
+#endif
+            what[used++] = '\n';
+            if (write(log_fd, what, used) < 0 ) {
+                ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, NULL,
                              "mod_jk: jk_log_to_file %s failed",
                              what);
             }
@@ -2342,7 +2428,7 @@
     int jklogfd;
     piped_log *pl;
     jk_logger_t *jkl;
-    file_logger_t *flp;
+    jk_file_logger_t *flp;
     jk_server_conf_t *conf =
         (jk_server_conf_t *) ap_get_module_config(s->module_config,
                                                   &jk_module);
@@ -2350,7 +2436,7 @@
     if (!s->is_virtual && !conf->log_file) {
         conf->log_file = ap_server_root_relative(p, JK_LOG_DEF_FILE);
         if (conf->log_file)
-            ap_log_error(APLOG_MARK, APLOG_INFO | APLOG_NOERRNO, s,
+            ap_log_error(APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, s,
                          "No JkLogFile defined in httpd.conf. "
                          "Using default %s", conf->log_file);
     }
@@ -2406,16 +2492,18 @@
     }
     conf->log_fd = jklogfd;
     jkl = (jk_logger_t *)ap_palloc(p, sizeof(jk_logger_t));
-    flp = (file_logger_t *)ap_palloc(p, sizeof(file_logger_t));
+    flp = (jk_file_logger_t *)ap_palloc(p, sizeof(jk_file_logger_t));
     if (jkl && flp) {
         jkl->log = jk_log_to_file;
         jkl->level = conf->log_level;
-        jkl->log_fmt = conf->stamp_format_string;
+        jk_set_time_fmt(jkl, conf->stamp_format_string);
         jkl->logger_private = flp;
         flp->log_fd = conf->log_fd;
         conf->log = jkl;
         if (main_log == NULL)
             main_log = conf->log;
+        jk_log(conf->log, JK_LOG_DEBUG, "log time stamp format is '%s'",
+               conf->log->log_fmt);
         return;
     }
 
@@ -2442,10 +2530,15 @@
                                                                            &jk_module);
         open_jk_log(srv, p);
         if (sconf) {
+            sconf->options &= ~sconf->exclude_options;
             if (!uri_worker_map_alloc(&(sconf->uw_map),
                                       sconf->uri_to_context, sconf->log))
                 jk_error_exit(APLOG_MARK, APLOG_EMERG, srv,
                               p, "Memory error");
+            if (sconf->options & JK_OPT_REJECTUNSAFE)
+                sconf->uw_map->reject_unsafe = 1;
+            else
+                sconf->uw_map->reject_unsafe = 0;
             if (sconf->mount_file) {
                 sconf->uw_map->fname = sconf->mount_file;
                 sconf->uw_map->reload = sconf->mount_file_reload;
@@ -2458,7 +2551,6 @@
                     ap_log_error(APLOG_MARK, APLOG_ERR, srv,
                                  "JkRequestLogFormat format array NULL");
             }
-            sconf->options &= ~sconf->exclude_options;
             if (sconf->envvars_in_use) {
                 int i;
                 const array_header *arr;
@@ -2499,7 +2591,7 @@
 #endif
 
         if (jk_shm_file)
-            ap_log_error(APLOG_MARK, APLOG_INFO | APLOG_NOERRNO, s,
+            ap_log_error(APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, s,
                          "No JkShmFile defined in httpd.conf. "
                          "Using default %s", jk_shm_file);
     }
@@ -2511,14 +2603,9 @@
                    jk_shm_name(), rc);
     }
     else
-        jk_log(conf->log, JK_LOG_ERROR, "Initializing shm:%s errno=%d",
+        jk_log(conf->log, JK_LOG_ERROR,
+               "Initializing shm:%s errno=%d. Load balancing workers will not function properly.",
                jk_shm_name(), rc);
-#if !defined(WIN32) && !defined(NETWARE)
-    if (!jk_shm_file)
-        ap_log_error(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s,
-                     "No JkShmFile defined in httpd.conf. "
-                     "LoadBalancer will not function properly!");
-#endif
 
     /* SREVILAK -- register cleanup handler to clear resources on restart,
      * to make sure log file gets closed in the parent process  */
@@ -2537,34 +2624,40 @@
 }
 */
 
-    if (!jk_map_read_properties(init_map, conf->worker_file, NULL, 1, conf->log)) {
-
-        if (jk_map_size(init_map) == 0) {
-            ap_log_error(APLOG_MARK, APLOG_EMERG, s,
-                         "No worker file and no worker options in httpd.conf "
-                         "use JkWorkerFile to set workers");
-        }
-        jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p, "Error in reading worker properties");
-
+    if ((conf->worker_file != NULL) &&
+        !jk_map_read_properties(init_map, conf->worker_file, NULL,
+                                JK_MAP_HANDLE_DUPLICATES, conf->log)) {
+        jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
+                      "Error in reading worker properties from '%s'",
+                      conf->worker_file);
     }
-#if MODULE_MAGIC_NUMBER >= 19980527
-        /* Tell apache we're here */
-    ap_add_version_component(JK_EXPOSED_VERSION);
-#endif
 
     if (jk_map_resolve_references(init_map, "worker.", 1, 1, conf->log) == JK_FALSE) {
-        jk_error_exit(APLOG_MARK, APLOG_EMERG, s, p, "Error in resolving configuration references");
+        jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
+                      "Error in resolving configuration references");
     }
 
     /* we add the URI->WORKER MAP since workers using AJP14 will feed it */
     worker_env.uri_to_worker = conf->uw_map;
     worker_env.virtual = "*";       /* for now */
     worker_env.server_name = (char *)ap_get_server_version();
-    if (wc_open(init_map, &worker_env, conf->log))
+
+    if (wc_open(init_map, &worker_env, conf->log)) {
+#if MODULE_MAGIC_NUMBER >= 19980527
+        /* Tell apache we're here */
+        ap_add_version_component(JK_EXPOSED_VERSION);
+#endif
+        jk_log(conf->log, JK_LOG_INFO,
+               "%s initialized",
+               JK_EXPOSED_VERSION);
         return;
+    }
+    else {
+        jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
+                      "Error in creating the workers."
+                      " Please consult your mod_jk log file '%s'.", conf->log_file);
+    }
 
-    ap_log_error(APLOG_MARK, APLOG_ERR, s,
-                 "Error while opening the workers, jk will not work");
 }
 
 /*
@@ -2788,13 +2881,36 @@
     return DECLINED;
 }
 
-static void exit_handler(server_rec * s, ap_pool * p)
+static void child_exit_handler(server_rec * s, ap_pool * p)
 {
     /* srevilak - refactor cleanup body to jk_generic_cleanup() */
     jk_generic_cleanup(s);
+    jk_shm_close();
 }
 
+static void child_init_handler(server_rec * s, ap_pool * p)
+{
+    int rc;
+    jk_server_conf_t *conf =
+        (jk_server_conf_t *) ap_get_module_config(s->module_config,
+                                                  &jk_module);
 
+    JK_TRACE_ENTER(conf->log);
+
+    if ((rc = jk_shm_attach(jk_shm_file, jk_shm_size, conf->log)) == 0) {
+        if (JK_IS_DEBUG_LEVEL(conf->log))
+            jk_log(conf->log, JK_LOG_DEBUG, "Attached shm:%s",
+                   jk_shm_name());
+    }
+    else
+        jk_log(conf->log, JK_LOG_ERROR, "Attaching shm:%s errno=%d",
+               jk_shm_name(), rc);
+
+    JK_TRACE_EXIT(conf->log);
+
+}
+
+
 /** srevilak -- registered as a cleanup handler in jk_init */
 static void jk_server_cleanup(void *data)
 {
@@ -2856,8 +2972,8 @@
     jk_fixups,                  /* [8] fixups */
     NULL,                       /* [10] logger */
     NULL,                       /* [3] header parser */
-    NULL,                       /* apache child process initializer */
-    exit_handler,               /* apache child process exit/cleanup */
+    child_init_handler,         /* apache child process initializer */
+    child_exit_handler,         /* apache child process exit/cleanup */
     NULL                        /* [1] post read_request handling */
 #ifdef EAPI
         /*

Modified: trunk/tomcat5.5/connectors/jk/native/apache-1.3/mod_jk.dsp
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-1.3/mod_jk.dsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-1.3/mod_jk.dsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -42,8 +42,8 @@
 # PROP Intermediate_Dir "Release"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Oy- /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "..\common" /I "$(APACHE1_HOME)\include" /I "$(APACHE1_HOME)\src\include" /I "$(APACHE1_HOME)\src\os\win32" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /Fd"Release\mod_jk_src" /FD /c
+# ADD BASE CPP /nologo /MD /W3 /Zi /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /FD /c
+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "..\common" /I "$(APACHE1_HOME)\include" /I "$(APACHE1_HOME)\src\include" /I "$(APACHE1_HOME)\src\os\win32" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_JK_EXPORTS" /Fd"Release\mod_jk_src" /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -164,6 +164,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\common\jk_url.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\common\jk_util.c
 # End Source File
 # Begin Source File
@@ -268,6 +272,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\common\jk_url.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\common\jk_util.h
 # End Source File
 # Begin Source File

Modified: trunk/tomcat5.5/connectors/jk/native/apache-2.0/Makefile.vc
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-2.0/Makefile.vc	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-2.0/Makefile.vc	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,37 +1,26 @@
-# Microsoft Developer Studio Generated NMAKE File, Based on mod_jk.dsp
-!IF "$(CFG)" == ""
-CFG=apache - Win32 Release
-!MESSAGE No configuration specified. Defaulting to apache - Win32 Release.
-!ENDIF 
+!IFDEF APACHE22
+APACHE2_HOME=$(APACHE22_HOME)
+APR_LIB=libapr-1.lib
+APU_LIB=libaprutil-1.lib
+OUTDIR=.\Release22
+INTDIR=.\Release22
+!ELSE
+APR_LIB=libapr.lib
+APU_LIB=libaprutil.lib
+OUTDIR=.\Release20
+INTDIR=.\Release20
+!IFDEF APACHE20_HOME
+APACHE2_HOME=$(APACHE20_HOME)
+!ENDIF
+!ENDIF
 
-!IF "$(CFG)" != "apache - Win32 Release"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "Makefile.vc" CFG="apache - Win32 Release"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "apache - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE 
-!ERROR An invalid configuration is specified.
-!ENDIF 
+!IFNDEF APACHE2_HOME
+!ERROR Missing APACHE2_HOME environment variable.
+!ENDIF
 
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE 
-NULL=nul
-!ENDIF 
-
 CPP=cl.exe
 MTL=midl.exe
 RSC=rc.exe
-OUTDIR=.\Release
-INTDIR=.\Release
-# Begin Custom Macros
-OutDir=.\Release
-# End Custom Macros
 
 ALL : "$(OUTDIR)\mod_jk.so"
 
@@ -55,6 +44,7 @@
 	- at erase "$(INTDIR)\jk_sockbuf.obj"
 	- at erase "$(INTDIR)\jk_status.obj"
 	- at erase "$(INTDIR)\jk_uri_worker_map.obj"
+	- at erase "$(INTDIR)\jk_url.obj"
 	- at erase "$(INTDIR)\jk_util.obj"
 	- at erase "$(INTDIR)\jk_worker.obj"
 	- at erase "$(INTDIR)\mod_jk.obj"
@@ -73,7 +63,7 @@
 BSC32_SBRS= \
 	
 LINK32=link.exe
-LINK32_FLAGS=libhttpd.lib libapr.lib libaprutil.lib kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /base:"0x6A6B0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_jk.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_jk.so" /implib:"$(OUTDIR)\mod_jk.lib" /libpath:"$(APACHE2_HOME)\lib" /opt:ref 
+LINK32_FLAGS=libhttpd.lib $(APR_LIB) $(APU_LIB) kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /base:"0x6A6B0000" /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\mod_jk.pdb" /debug /machine:I386 /out:"$(OUTDIR)\mod_jk.so" /implib:"$(OUTDIR)\mod_jk.lib" /libpath:"$(APACHE2_HOME)\lib" /opt:ref 
 LINK32_OBJS= \
 	"$(INTDIR)\jk_ajp12_worker.obj" \
 	"$(INTDIR)\jk_ajp13.obj" \
@@ -93,6 +83,7 @@
 	"$(INTDIR)\jk_sockbuf.obj" \
 	"$(INTDIR)\jk_status.obj" \
 	"$(INTDIR)\jk_uri_worker_map.obj" \
+	"$(INTDIR)\jk_url.obj" \
 	"$(INTDIR)\jk_util.obj" \
 	"$(INTDIR)\jk_worker.obj" \
 	"$(INTDIR)\mod_jk.obj"
@@ -136,16 +127,6 @@
 
 MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
 
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("mod_jk.dep")
-!INCLUDE "mod_jk.dep"
-!ELSE 
-!MESSAGE Warning: cannot find "mod_jk.dep"
-!ENDIF 
-!ENDIF 
-
-
-!IF "$(CFG)" == "apache - Win32 Release"
 SOURCE=..\common\jk_ajp12_worker.c
 
 "$(INTDIR)\jk_ajp12_worker.obj" : $(SOURCE) "$(INTDIR)"
@@ -254,6 +235,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\common\jk_url.c
+
+"$(INTDIR)\jk_url.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\common\jk_util.c
 
 "$(INTDIR)\jk_util.obj" : $(SOURCE) "$(INTDIR)"
@@ -270,7 +257,3 @@
 
 "$(INTDIR)\mod_jk.obj" : $(SOURCE) "$(INTDIR)"
 
-
-
-!ENDIF 
-

Modified: trunk/tomcat5.5/connectors/jk/native/apache-2.0/NWGNUmakefile
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-2.0/NWGNUmakefile	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-2.0/NWGNUmakefile	2007-10-03 19:12:01 UTC (rev 4300)
@@ -81,7 +81,7 @@
 			$(EOLIST)
 
 XLFLAGS		+= \
-		   	$(EOLIST)
+			$(EOLIST)
 endif
 
 ifeq "$(RELEASE)" "noopt"
@@ -95,7 +95,7 @@
 			$(EOLIST)
 
 XLFLAGS		+= \
-		   	$(EOLIST)
+			$(EOLIST)
 endif
 
 ifeq "$(RELEASE)" "release"
@@ -117,7 +117,7 @@
 # This is used by the link 'name' directive to name the nlm.  If left blank
 # TARGET_nlm (see below) will be used.
 #
-NLM_NAME		= mod_jk
+NLM_NAME	= mod_jk
 
 #
 # This is used by the link '-desc ' directive.
@@ -167,14 +167,14 @@
 #
 # If these are specified it will be used by the link '-flags' directive
 #
-NLM_FLAGS		=  AUTOUNLOAD, PSEUDOPREEMPTION
+NLM_FLAGS	= AUTOUNLOAD, PSEUDOPREEMPTION
 
 #
 # If this is specified it will be linked in with the XDCData option in the def
 # file instead of the default of $(NWOS)/apache.xdc.  XDCData can be disabled
 # by setting APACHE_UNIPROC in the environment
 #
-XDCDATA         =
+XDCDATA		=
 
 #
 # If there is an NLM target, put it here
@@ -213,6 +213,7 @@
 	$(OBJDIR)/jk_sockbuf.o \
 	$(OBJDIR)/jk_status.o \
 	$(OBJDIR)/jk_uri_worker_map.o \
+	$(OBJDIR)/jk_url.o \
 	$(OBJDIR)/jk_util.o \
 	$(OBJDIR)/jk_worker.o \
 	$(OBJDIR)/mod_jk.o \
@@ -223,7 +224,7 @@
 # These will be added as a library command in the link.opt file.
 #
 FILES_nlm_libs = \
-   	libcpre.o \
+	libcpre.o \
 	$(EOLIST)
 
 #

Modified: trunk/tomcat5.5/connectors/jk/native/apache-2.0/bldjk.qclsrc
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-2.0/bldjk.qclsrc	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-2.0/bldjk.qclsrc	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,269 +1,244 @@
 PGM
 CRTCMOD MODULE(MOD_JK/MOD_JK) +
-	SRCSTMF('/home/apache/jk/native/apache-2.0/mod_jk.c') +
-	DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' + 
-	       'USE_APACHE_MD5' '_REENTRANT') +
-	TEXT('mod_jk.c') +
-	OPTIMIZE(40) +
-	SYSIFCOPT(*IFSIO) +
-	TGTCCSID(*JOB) +
-	OPTION(*LOGMSG) +
-	TERASPACE(*YES *TSIFC) +
-	STGMDL(*INHERIT) +
+    SRCSTMF('/home/apache/jk/native/apache-2.0/mod_jk.c') +
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
+         'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('mod_jk.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_AJP_COM) +
     SRCSTMF('/home/apache/jk/native/common/jk_ajp_common.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_ajp_common.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_AJP12_W) +
     SRCSTMF('/home/apache/jk/native/common/jk_ajp12_worker.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_ajp12_worker.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_AJP13) +
     SRCSTMF('/home/apache/jk/native/common/jk_ajp13.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +   
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_ajp13.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_AJP13_W) +
     SRCSTMF('/home/apache/jk/native/common/jk_ajp13_worker.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_ajp13_worker.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_AJP14) +
     SRCSTMF('/home/apache/jk/native/common/jk_ajp14.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_ajp14.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_AJP14_W) +
     SRCSTMF('/home/apache/jk/native/common/jk_ajp14_worker.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_ajp14_worker.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_CONNECT) +
     SRCSTMF('/home/apache/jk/native/common/jk_connect.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT' 'USE_SO_RCVTIMEO' +
            'USE_SO_SNDTIMEO' ) +
     TEXT('jk_connect.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_CONTEXT) +
     SRCSTMF('/home/apache/jk/native/common/jk_context.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_context.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_JNI_WOR) +
     SRCSTMF('/home/apache/jk/native/common/jk_jni_worker.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' 'OS400_JVM_12' + 
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' 'OS400_JVM_12' +
            '_XOPEN_SOURCE=520' +  'USE_APACHE_MD5' +
     '_REENTRANT') +
     TEXT('jk_jni_worker.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG ) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_LB_WORK) +
     SRCSTMF('/home/apache/jk/native/common/jk_lb_worker.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_lb_worker.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_MAP) +
     SRCSTMF('/home/apache/jk/native/common/jk_map.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_map.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_MD5) +
     SRCSTMF('/home/apache/jk/native/common/jk_md5.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_md5.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_MSG_BUF) +
     SRCSTMF('/home/apache/jk/native/common/jk_msg_buff.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_msg_buff.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_POOL) +
     SRCSTMF('/home/apache/jk/native/common/jk_pool.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_pool.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_SOCKBUF) +
     SRCSTMF('/home/apache/jk/native/common/jk_sockbuf.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_sockbuf.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_URI_W_M) +
     SRCSTMF('/home/apache/jk/native/common/jk_uri_worker_map.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_uri_worker_map.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
+CRTCMOD MODULE(MOD_JK/JK_URL) +
+    SRCSTMF('/home/apache/jk/native/common/jk_url.c') +
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
+           'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_url.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
 CRTCMOD MODULE(MOD_JK/JK_UTIL) +
     SRCSTMF('/home/apache/jk/native/common/jk_util.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_util.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_WORKER) +
     SRCSTMF('/home/apache/jk/native/common/jk_worker.c') +
-    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +  
+    DEFINE('AS400' 'HAVE_JNI' 'HAVE_APR' '_XOPEN_SOURCE=520' +
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_worker.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_STATUS) +
@@ -272,12 +247,10 @@
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_status.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTCMOD MODULE(MOD_JK/JK_SHM) +
@@ -286,12 +259,10 @@
            'USE_APACHE_MD5' '_REENTRANT') +
     TEXT('jk_shm.c') +
     OPTIMIZE(40) +
+    LOCALETYPE(*LOCALE) +
     SYSIFCOPT(*IFSIO) +
-    LANGLVL(*ANSI) +
-    TGTCCSID(*JOB) +
-    OPTION(*LOGMSG) +
-    TERASPACE(*YES *TSIFC) +
-    STGMDL(*INHERIT) +
+    LANGLVL(*EXTENDED) +
+    TGTRLS(*CURRENT) +
     INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
 
 CRTSRVPGM SRVPGM(MOD_JK/MOD_JK) +
@@ -304,17 +275,17 @@
              MOD_JK/JK_MAP MOD_JK/JK_MD5 +
              MOD_JK/JK_MSG_BUF MOD_JK/JK_POOL +
              MOD_JK/JK_SOCKBUF MOD_JK/JK_URI_W_M +
+             MOD_JK/JK_URL +
              MOD_JK/JK_UTIL MOD_JK/JK_WORKER +
              MOD_JK/JK_STATUS MOD_JK/JK_SHM) +
       EXPORT(*SRCFILE) +
       BNDDIR() +
+      TGTRLS(*CURRENT) +
       SRCFILE(MOD_JK/QSRVSRC) +
       SRCMBR(MOD_JK) +
-      DETAIL(*BASIC) +
-      STGMDL(*INHERIT) +
-      ACTGRP(*CALLER) +
+      USRPRF(*USER) +
       BNDSRVPGM(QHTTPSVR/QZSRAPR QHTTPSVR/QZSRCORE +
                 QHTTPSVR/QZSRXMLP QHTTPSVR/QZSRSDBM) +
-      TEXT('Apache mod_jk tomcat connector module')
+      TEXT('Apache Tomcat mod_jk connector module')
 
 ENDPGM

Added: trunk/tomcat5.5/connectors/jk/native/apache-2.0/bldjk54.qclsrc
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-2.0/bldjk54.qclsrc	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/apache-2.0/bldjk54.qclsrc	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,313 @@
+PGM
+CRTCMOD MODULE(MOD_JK/MOD_JK) +
+    SRCSTMF('/home/apache/jk/native/apache-2.0/mod_jk.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+          '_XOPEN_SOURCE=520' + 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('mod_jk.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_AJP_COM) +
+    SRCSTMF('/home/apache/jk/native/common/jk_ajp_common.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' + 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_ajp_common.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_AJP12_W) +
+    SRCSTMF('/home/apache/jk/native/common/jk_ajp12_worker.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' + 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_ajp12_worker.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_AJP13) +
+    SRCSTMF('/home/apache/jk/native/common/jk_ajp13.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' + 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_ajp13.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_AJP13_W) +
+    SRCSTMF('/home/apache/jk/native/common/jk_ajp13_worker.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_ajp13_worker.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_AJP14) +
+    SRCSTMF('/home/apache/jk/native/common/jk_ajp14.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_ajp14.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_AJP14_W) +
+    SRCSTMF('/home/apache/jk/native/common/jk_ajp14_worker.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_ajp14_worker.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_CONNECT) +
+    SRCSTMF('/home/apache/jk/native/common/jk_connect.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT' +
+           'USE_SO_RCVTIMEO' + 'USE_SO_SNDTIMEO' ) +
+    TEXT('jk_connect.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_CONTEXT) +
+    SRCSTMF('/home/apache/jk/native/common/jk_context.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_context.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_JNI_WOR) +
+    SRCSTMF('/home/apache/jk/native/common/jk_jni_worker.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' 'OS400_JVM_12' +
+           '_XOPEN_SOURCE=520' + 'USE_APACHE_MD5' +
+    '_REENTRANT') +
+    TEXT('jk_jni_worker.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_LB_WORK) +
+    SRCSTMF('/home/apache/jk/native/common/jk_lb_worker.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_lb_worker.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_MAP) +
+    SRCSTMF('/home/apache/jk/native/common/jk_map.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_map.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_MD5) +
+    SRCSTMF('/home/apache/jk/native/common/jk_md5.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_md5.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_MSG_BUF) +
+    SRCSTMF('/home/apache/jk/native/common/jk_msg_buff.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_msg_buff.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_POOL) +
+    SRCSTMF('/home/apache/jk/native/common/jk_pool.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_pool.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_SOCKBUF) +
+    SRCSTMF('/home/apache/jk/native/common/jk_sockbuf.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_sockbuf.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_URI_W_M) +
+    SRCSTMF('/home/apache/jk/native/common/jk_uri_worker_map.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_uri_worker_map.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_URL) +
+    SRCSTMF('/home/apache/jk/native/common/jk_url.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_url.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_UTIL) +
+    SRCSTMF('/home/apache/jk/native/common/jk_util.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_util.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_WORKER) +
+    SRCSTMF('/home/apache/jk/native/common/jk_worker.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_worker.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_STATUS) +
+    SRCSTMF('/home/apache/jk/native/common/jk_status.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_status.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTCMOD MODULE(MOD_JK/JK_SHM) +
+    SRCSTMF('/home/apache/jk/native/common/jk_shm.c') +
+    DEFINE('AS400' 'AS400_UTF8' 'HAVE_JNI' 'HAVE_APR' +
+           '_XOPEN_SOURCE=520' 'USE_APACHE_MD5' '_REENTRANT') +
+    TEXT('jk_shm.c') +
+    OPTIMIZE(40) +
+    LOCALETYPE(*LOCALEUTF) +
+    SYSIFCOPT(*IFSIO) +
+    LANGLVL(*EXTENDED) +
+    TERASPACE(*YES) +
+    TGTRLS(*CURRENT) +
+    INCDIR('/home/apache/jk/native/common' '/QIBM/ProdData/HTTPA/Include')
+
+CRTSRVPGM SRVPGM(MOD_JK/MOD_JK) +
+      MODULE(MOD_JK/MOD_JK +
+             MOD_JK/JK_AJP_COM MOD_JK/JK_AJP12_W +
+             MOD_JK/JK_AJP13 MOD_JK/JK_AJP13_W +
+             MOD_JK/JK_AJP14 MOD_JK/JK_AJP14_W +
+             MOD_JK/JK_CONNECT MOD_JK/JK_CONTEXT +
+             MOD_JK/JK_JNI_WOR MOD_JK/JK_LB_WORK +
+             MOD_JK/JK_MAP MOD_JK/JK_MD5 +
+             MOD_JK/JK_MSG_BUF MOD_JK/JK_POOL +
+             MOD_JK/JK_SOCKBUF MOD_JK/JK_URI_W_M +
+             MOD_JK/JK_URL +
+             MOD_JK/JK_UTIL MOD_JK/JK_WORKER +
+             MOD_JK/JK_STATUS MOD_JK/JK_SHM) +
+      EXPORT(*SRCFILE) +
+      BNDDIR() +
+      TGTRLS(*CURRENT) +
+      SRCFILE(MOD_JK/QSRVSRC) +
+      SRCMBR(MOD_JK) +
+      USRPRF(*USER) +
+      BNDSRVPGM(QHTTPSVR/QZSRAPR QHTTPSVR/QZSRCORE +
+                QHTTPSVR/QZSRXMLP QHTTPSVR/QZSRSDBM) +
+      TEXT('Apache Tomcat mod_jk connector module')
+
+ENDPGM

Modified: trunk/tomcat5.5/connectors/jk/native/apache-2.0/mod_jk.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-2.0/mod_jk.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-2.0/mod_jk.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: Apache 2 plugin for Tomcat                                 *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  *              Henri Gomez <hgomez at apache.org>                            *
- * Version:     $Revision: 511951 $                                          *
+ * Version:     $Revision: 567689 $                                          *
  ***************************************************************************/
 
 /*
@@ -41,7 +41,7 @@
 #include "util_script.h"
 #include "ap_mpm.h"
 
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 #include "ap_charset.h"
 #include "util_charset.h"       /* ap_hdrs_from_ascii */
 #endif
@@ -54,16 +54,10 @@
 
 /* deprecated with apr 0.9.3 */
 
-/*
-   The latest Apache 2.0.47 for iSeries didn't export apr_filepath_name_get
-   but apr_filename_of_pathname, even if includes seems right and the APR
-   in use is 0.9.4
-*/
-
 #include "apr_version.h"
 #if (APR_MAJOR_VERSION == 0) && \
     (APR_MINOR_VERSION <= 9) && \
-    (APR_PATCH_VERSION < 3) || defined(AS400)
+    (APR_PATCH_VERSION < 3)
 #define apr_filepath_name_get apr_filename_of_pathname
 #endif
 
@@ -108,6 +102,7 @@
 #include "jk_util.h"
 #include "jk_worker.h"
 #include "jk_shm.h"
+#include "jk_url.h"
 
 #define JK_LOG_DEF_FILE             ("logs/mod_jk.log")
 #define JK_SHM_DEF_FILE             ("logs/jk-runtime-status")
@@ -116,6 +111,7 @@
 #define JK_ENV_CIPHER               ("SSL_CIPHER")
 #define JK_ENV_SESSION              ("SSL_SESSION_ID")
 #define JK_ENV_KEY_SIZE             ("SSL_CIPHER_USEKEYSIZE")
+#define JK_ENV_CERTCHAIN_PREFIX     ("SSL_CLIENT_CERT_CHAIN_")
 #define JK_ENV_WORKER_NAME          ("JK_WORKER_NAME")
 #define JK_NOTE_WORKER_NAME         ("JK_WORKER_NAME")
 #define JK_NOTE_WORKER_TYPE         ("JK_WORKER_TYPE")
@@ -204,6 +200,7 @@
     char *cipher_indicator;
     char *session_indicator;    /* Servlet API 2.3 requirement */
     char *key_size_indicator;   /* Servlet API 2.3 requirement */
+    char *certchain_prefix;     /* Client certificate chain prefix */
 
     /*
      * Jk Options
@@ -292,7 +289,7 @@
             ap_set_content_type(r, tmp);
         }
         else if (!strcasecmp(header_names[h], "Location")) {
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
             /* Fix escapes in Location Header URL */
             ap_fixup_escapes((char *)header_values[h],
                              strlen(header_values[h]), ap_hdrs_from_ascii);
@@ -346,11 +343,10 @@
         }
 
         if (p->read_body_started) {
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
             int long rv = OK;
             if (rv = ap_change_request_body_xlate(p->r, 65535, 65535)) {        /* turn off request body translation */
-                ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_CRIT, 0,
-                             NULL,
+                ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_CRIT, 0, NULL,
                              "mod_jk: Error on ap_change_request_body_xlate, rc=%d",
                              rv);
                 return JK_FALSE;
@@ -373,7 +369,7 @@
 
 static void JK_METHOD ws_flush(jk_ws_service_t *s)
 {
-#ifndef AS400
+#if ! (defined(AS400) && !defined(AS400_UTF8))
     if (s && s->ws_private) {
         apache_private_data_t *p = s->ws_private;
         ap_rflush(p->r);
@@ -399,7 +395,7 @@
 
 static int JK_METHOD ws_write(jk_ws_service_t *s, const void *b, unsigned int l)
 {
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
     int rc;
 #endif
 
@@ -421,17 +417,16 @@
                 }
             }
             if (p->r->header_only) {
-#ifndef AS400
+#if ! (defined(AS400) && !defined(AS400_UTF8))
                 ap_rflush(p->r);
 #endif
                 return JK_TRUE;
             }
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
             /* turn off response body translation */
             rc = ap_change_response_body_xlate(p->r, 65535, 65535);
             if (rc) {
-                ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_CRIT, 0,
-                             NULL,
+                ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_CRIT, 0, NULL,
                              "mod_jk: Error on ap_change_response_body_xlate, rc=%d",
                              rc);
                 return JK_FALSE;
@@ -457,8 +452,12 @@
                 ll -= r;
                 bb += r;
             }
-            if (p->r->connection->aborted)
+            if (ll && p->r->connection->aborted) {
+                /* Fail if there is something left to send and
+                 * the connection was aborted by the client
+                 */
                 return JK_FALSE;
+            }
         }
 
         return JK_TRUE;
@@ -502,22 +501,25 @@
     va_end(ap);
 
     ap_log_error(file, line, level, 0, s, res);
+    if ( s ) {
+        ap_log_error(file, line, level, 0, NULL, res);
+    }
 
     /* Exit process */
     exit(1);
 }
 
-static int get_content_length(request_rec * r)
+static jk_uint64_t get_content_length(request_rec * r)
 {
     if (r->clength > 0) {
-        return (int)r->clength;
+        return (jk_uint64_t)r->clength;
     }
     else if (r->main == NULL || r->main == r) {
         char *lenp = (char *)apr_table_get(r->headers_in, "Content-Length");
 
         if (lenp) {
-            int rc = atoi(lenp);
-            if (rc > 0) {
+            jk_uint64_t rc = 0;
+            if (sscanf(lenp, "%" JK_UINT64_T_FMT, &rc) > 0 && rc > 0) {
                 return rc;
             }
         }
@@ -532,6 +534,7 @@
     request_rec *r = private_data->r;
 
     char *ssl_temp = NULL;
+    int size;
     s->route = NULL;        /* Used for sticky session routing */
 
     /* Copy in function pointers (which are really methods) */
@@ -581,8 +584,8 @@
      */
     s->server_port  = ap_get_server_port(r);
 
-#if (MODULE_MAGIC_NUMBER_MAJOR > 20060110)
-    s->server_software = (char *)ap_get_server_banner();
+#if (AP_MODULE_MAGIC_AT_LEAST(20060905,0))
+    s->server_software = (char *)ap_get_server_description();
 #else
     s->server_software = (char *)ap_get_server_version();
 #endif
@@ -590,31 +593,13 @@
     s->content_length = get_content_length(r);
     s->is_chunked = r->read_chunked;
     s->no_more_chunks = 0;
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
     /* Get the query string that is not translated to EBCDIC  */
     s->query_string = ap_get_original_query_string(r);
 #else
     s->query_string = r->args;
 #endif
 
-    /* Dump all connection param so we can trace what's going to
-     * the remote tomcat
-     */
-    if (JK_IS_DEBUG_LEVEL(conf->log)) {
-        jk_log(conf->log, JK_LOG_DEBUG,
-               "Service protocol=%s method=%s host=%s addr=%s name=%s port=%d auth=%s user=%s laddr=%s raddr=%s",
-               STRNULL_FOR_NULL(s->protocol),
-               STRNULL_FOR_NULL(s->method),
-               STRNULL_FOR_NULL(s->remote_host),
-               STRNULL_FOR_NULL(s->remote_addr),
-               STRNULL_FOR_NULL(s->server_name),
-               s->server_port,
-               STRNULL_FOR_NULL(s->auth_type),
-               STRNULL_FOR_NULL(s->remote_user),
-               STRNULL_FOR_NULL(r->connection->local_ip),
-               STRNULL_FOR_NULL(r->connection->remote_ip));
-    }
-
     /*
      * The 2.2 servlet spec errata says the uri from
      * HttpServletRequest.getRequestURI() should remain encoded.
@@ -648,6 +633,12 @@
         s->req_uri = r->uri;
         break;
 
+    case JK_OPT_FWDURIPROXY:
+        size = 3 * strlen(r->uri) + 1;
+        s->req_uri = apr_palloc(r->pool, size);
+        jk_canonenc(r->uri, s->req_uri, size);
+        break;
+
     case JK_OPT_FWDURIESCAPED:
         s->req_uri = ap_escape_uri(r->pool, r->uri);
         break;
@@ -676,8 +667,32 @@
                 s->ssl_cert =
                     (char *)apr_table_get(r->subprocess_env,
                                           conf->certs_indicator);
+
+                if (conf->options & JK_OPT_FWDCERTCHAIN) {
+                    const apr_array_header_t *t = apr_table_elts(r->subprocess_env);
+                    if (t && t->nelts) {
+                        int i;
+                        const apr_table_entry_t *elts = (const apr_table_entry_t *) t->elts;
+                        apr_array_header_t *certs = apr_array_make(r->pool, 1, sizeof(char *));
+                        *(const char **)apr_array_push(certs) = s->ssl_cert;
+                        for (i = 0; i < t->nelts; i++) {
+                            if (!elts[i].key)
+                                continue;
+                            if (!strncasecmp(elts[i].key, conf->certchain_prefix,
+                                             strlen(conf->certchain_prefix)))
+                                *(const char **)apr_array_push(certs) = elts[i].val;
+                        }
+                        s->ssl_cert = apr_array_pstrcat(r->pool, certs, '\0');
+                    }
+                }
+
                 if (s->ssl_cert) {
                     s->ssl_cert_len = strlen(s->ssl_cert);
+                    if (JK_IS_DEBUG_LEVEL(conf->log)) {
+                        jk_log(conf->log, JK_LOG_DEBUG,
+                               "SSL client certificate (%d bytes): %s",
+                               s->ssl_cert_len, s->ssl_cert);
+                    }
                 }
                 /* Servlet 2.3 API */
                 s->ssl_cipher =
@@ -695,6 +710,8 @@
                     if (ssl_temp)
                         s->ssl_key_size = atoi(ssl_temp);
                 }
+
+
             }
         }
 
@@ -780,6 +797,26 @@
         }
     }
     s->uw_map = conf->uw_map;
+
+    /* Dump all connection param so we can trace what's going to
+     * the remote tomcat
+     */
+    if (JK_IS_DEBUG_LEVEL(conf->log)) {
+        jk_log(conf->log, JK_LOG_DEBUG,
+               "Service protocol=%s method=%s host=%s addr=%s name=%s port=%d auth=%s user=%s laddr=%s raddr=%s uri=%s",
+               STRNULL_FOR_NULL(s->protocol),
+               STRNULL_FOR_NULL(s->method),
+               STRNULL_FOR_NULL(s->remote_host),
+               STRNULL_FOR_NULL(s->remote_addr),
+               STRNULL_FOR_NULL(s->server_name),
+               s->server_port,
+               STRNULL_FOR_NULL(s->auth_type),
+               STRNULL_FOR_NULL(s->remote_user),
+               STRNULL_FOR_NULL(r->connection->local_ip),
+               STRNULL_FOR_NULL(r->connection->remote_ip),
+               STRNULL_FOR_NULL(s->req_uri));
+    }
+
     return JK_TRUE;
 }
 
@@ -933,7 +970,6 @@
                                       void *dummy, const char *worker_file)
 {
     server_rec *s = cmd->server;
-    struct stat statbuf;
 
     jk_server_conf_t *conf =
         (jk_server_conf_t *) ap_get_module_config(s->module_config,
@@ -950,7 +986,7 @@
     if (conf->worker_file == NULL)
         return "JkWorkersFile file name invalid";
 
-    if (stat(conf->worker_file, &statbuf) == -1)
+    if (jk_file_exists(conf->worker_file) != JK_TRUE)
         return "Can't find the workers file specified";
 
     return NULL;
@@ -966,7 +1002,6 @@
                                      void *dummy, const char *mount_file)
 {
     server_rec *s = cmd->server;
-    struct stat statbuf;
 
     jk_server_conf_t *conf =
         (jk_server_conf_t *) ap_get_module_config(s->module_config,
@@ -978,7 +1013,7 @@
     if (conf->mount_file == NULL)
         return "JkMountFile file name invalid";
 
-    if (stat(conf->mount_file, &statbuf) == -1)
+    if (jk_file_exists(conf->mount_file) != JK_TRUE)
         return "Can't find the mount file specified";
 
     return NULL;
@@ -1613,6 +1648,25 @@
 }
 
 /*
+ * JkCERTCHAINPrefix Directive Handling
+ *
+ * JkCERTCHAINPrefix SSL_CLIENT_CERT_CHAIN_
+ */
+
+static const char *jk_set_certchain_prefix(cmd_parms * cmd,
+                                           void *dummy, const char *prefix)
+{
+    server_rec *s = cmd->server;
+    jk_server_conf_t *conf =
+        (jk_server_conf_t *) ap_get_module_config(s->module_config,
+                                                  &jk_module);
+
+    conf->certchain_prefix = apr_pstrdup(cmd->pool, prefix);
+
+    return NULL;
+}
+
+/*
  * JkSESSIONIndicator Directive Handling
  *
  * JkSESSIONIndicator SSL_SESSION_ID
@@ -1662,6 +1716,8 @@
  *  ForwardURICompatUnparsed => Forward URI as unparsed, spec compliant but broke mod_rewrite (old TC)
  *  ForwardURIEscaped        => Forward URI escaped and Tomcat (3.3 rc2) stuff will do the decoding part
  *  ForwardDirectories       => Forward all directory requests with no index files to Tomcat
+ * +ForwardSSLCertChain      => Forward SSL Cert Chain
+ * -ForwardSSLCertChain      => Don't Forward SSL Cert Chain (default)
  */
 
 static const char *jk_set_options(cmd_parms * cmd, void *dummy,
@@ -1691,10 +1747,7 @@
             return apr_pstrcat(cmd->pool, "JkOptions: Illegal option '-", w,
                                "': ForwardURI* options can not be disabled", NULL);
 
-        if (!strcasecmp(w, "ForwardKeySize")) {
-            opt = JK_OPT_FWDKEYSIZE;
-        }
-        else if (!strcasecmp(w, "ForwardURICompat")) {
+        if (!strcasecmp(w, "ForwardURICompat")) {
             opt = JK_OPT_FWDURICOMPAT;
             mask = JK_OPT_FWDURIMASK;
         }
@@ -1706,6 +1759,10 @@
             opt = JK_OPT_FWDURIESCAPED;
             mask = JK_OPT_FWDURIMASK;
         }
+        else if (!strcasecmp(w, "ForwardURIProxy")) {
+            opt = JK_OPT_FWDURIPROXY;
+            mask = JK_OPT_FWDURIMASK;
+        }
         else if (!strcasecmp(w, "ForwardDirectories")) {
             opt = JK_OPT_FWDDIRS;
         }
@@ -1721,6 +1778,15 @@
         else if (!strcasecmp(w, "DisableReuse")) {
             opt = JK_OPT_DISABLEREUSE;
         }
+        else if (!strcasecmp(w, "ForwardSSLCertChain")) {
+            opt = JK_OPT_FWDCERTCHAIN;
+        }
+        else if (!strcasecmp(w, "ForwardKeySize")) {
+            opt = JK_OPT_FWDKEYSIZE;
+        }
+        else if (!strcasecmp(w, "RejectUnsafeURI")) {
+            opt = JK_OPT_REJECTUNSAFE;
+        }
         else
             return apr_pstrcat(cmd->pool, "JkOptions: Illegal option '", w,
                                "'", NULL);
@@ -1787,7 +1853,8 @@
         return err_string;
     }
 
-    if (jk_map_read_property(conf->worker_properties, line, 1, conf->log) == JK_FALSE)
+    if (jk_map_read_property(conf->worker_properties, line,
+                             JK_MAP_HANDLE_DUPLICATES, conf->log) == JK_FALSE)
         return apr_pstrcat(cmd->temp_pool, "Invalid JkWorkerProperty ", line, NULL);
 
     return NULL;
@@ -1876,7 +1943,7 @@
                   "The Tomcat module log level, can be debug, "
                   "info, error or emerg"),
     AP_INIT_TAKE1("JkLogStampFormat", jk_set_log_fmt, NULL, RSRC_CONF,
-                  "The Tomcat module log format, follow strftime synthax"),
+                  "The Tomcat module log format, follow strftime syntax"),
     AP_INIT_TAKE1("JkRequestLogFormat", jk_set_request_log_format, NULL,
                   RSRC_CONF,
                   "The mod_jk module request log format string"),
@@ -1924,6 +1991,8 @@
     AP_INIT_TAKE1("JkKEYSIZEIndicator", jk_set_key_size_indicator, NULL,
                   RSRC_CONF,
                   "Name of the Apache environment that contains SSL key size in use"),
+    AP_INIT_TAKE1("JkCERTCHAINPrefix", jk_set_certchain_prefix, NULL, RSRC_CONF,
+                  "Name of the Apache environment (prefix) that contains SSL client chain certificates"),
     AP_INIT_FLAG("JkExtractSSL", jk_set_enable_ssl, NULL, RSRC_CONF,
                  "Turns on SSL processing and information gathering by mod_jk"),
 
@@ -1935,6 +2004,8 @@
      *  ForwardURICompat         => Forward URI normally, less spec compliant but mod_rewrite compatible (old TC)
      *  ForwardURICompatUnparsed => Forward URI as unparsed, spec compliant but broke mod_rewrite (old TC)
      *  ForwardURIEscaped        => Forward URI escaped and Tomcat (3.3 rc2) stuff will do the decoding part
+     * +ForwardSSLCertChain      => Forward SSL certificate chain
+     * -ForwardSSLCertChain      => Don't forward SSL certificate chain
      */
     AP_INIT_RAW_ARGS("JkOptions", jk_set_options, NULL, RSRC_CONF,
                      "Set one of more options to configure the mod_jk module"),
@@ -2170,6 +2241,7 @@
             if (rc > 0) {
                 /* If tomcat returned no body and the status is not OK,
                    let apache handle the error code */
+
                 if (!r->sent_bodyct && r->status >= HTTP_BAD_REQUEST) {
                     jk_log(xconf->log, JK_LOG_INFO, "No body with status=%d"
                            " for worker=%s",
@@ -2279,6 +2351,7 @@
         c->https_indicator = NULL;
         c->certs_indicator = NULL;
         c->cipher_indicator = NULL;
+        c->certchain_prefix = NULL;
         c->session_indicator = NULL;
         c->key_size_indicator = NULL;
         c->strip_session = JK_UNSET;
@@ -2299,6 +2372,7 @@
         c->https_indicator = JK_ENV_HTTPS;
         c->certs_indicator = JK_ENV_CERTS;
         c->cipher_indicator = JK_ENV_CIPHER;
+        c->certchain_prefix = JK_ENV_CERTCHAIN_PREFIX;
         c->session_indicator = JK_ENV_SESSION;
         c->key_size_indicator = JK_ENV_KEY_SIZE;
         c->strip_session = JK_FALSE;
@@ -2374,6 +2448,8 @@
         overrides->certs_indicator = base->certs_indicator;
     if (!overrides->cipher_indicator)
         overrides->cipher_indicator = base->cipher_indicator;
+    if (!overrides->certchain_prefix)
+        overrides->certchain_prefix = base->certchain_prefix;
     if (!overrides->session_indicator)
         overrides->session_indicator = base->session_indicator;
     if (!overrides->key_size_indicator)
@@ -2428,41 +2504,41 @@
     return overrides;
 }
 
-static int JK_METHOD jk_log_to_file(jk_logger_t *l,
-                                    int level, const char *what)
+static int JK_METHOD jk_log_to_file(jk_logger_t *l, int level,
+                                    int used, char *what)
 {
     if (l &&
         (l->level <= level || level == JK_LOG_REQUEST_LEVEL) &&
-        l->logger_private && what) {
-        unsigned sz = strlen(what);
-        apr_size_t wrote = sz;
-        char error[256];
-        if (sz) {
-            apr_status_t status;
-            file_logger_t *p = l->logger_private;
-            if (p->jklogfp) {
-                apr_status_t rv;
-                rv = apr_global_mutex_lock(jk_log_lock);
-                if (rv != APR_SUCCESS) {
-                    ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL,
-                                 "apr_global_mutex_lock(jk_log_lock) failed");
-                    /* XXX: Maybe this should be fatal? */
-                }
-                status = apr_file_write(p->jklogfp, what, &wrote);
-                if (status != APR_SUCCESS) {
-                    apr_strerror(status, error, 254);
-                    ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, 0,
-                                 NULL,
-                                 "mod_jk: jk_log_to_file %s failed: %s",
-                                 what, error);
-                }
-                rv = apr_global_mutex_unlock(jk_log_lock);
-                if (rv != APR_SUCCESS) {
-                    ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL,
-                                 "apr_global_mutex_unlock(jk_log_lock) failed");
-                    /* XXX: Maybe this should be fatal? */
-                }
+        l->logger_private && what && used > 0) {
+        jk_file_logger_t *p = l->logger_private;
+        if (p->jklogfp) {
+            apr_status_t rv;
+            apr_size_t wrote;
+#if defined(WIN32)
+            what[used++] = '\r';
+#endif
+            what[used++] = '\n';
+            wrote = used;
+            rv = apr_global_mutex_lock(jk_log_lock);
+            if (rv != APR_SUCCESS) {
+                ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL,
+                             "apr_global_mutex_lock(jk_log_lock) failed");
+                /* XXX: Maybe this should be fatal? */
             }
+            rv = apr_file_write(p->jklogfp, what, &wrote);
+            if (rv != APR_SUCCESS) {
+                char error[256];
+                apr_strerror(rv, error, 254);
+                ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL,
+                             "mod_jk: jk_log_to_file %s failed: %s",
+                             what, error);
+            }
+            rv = apr_global_mutex_unlock(jk_log_lock);
+            if (rv != APR_SUCCESS) {
+                ap_log_error(APLOG_MARK, APLOG_ERR, rv, NULL,
+                             "apr_global_mutex_unlock(jk_log_lock) failed");
+                /* XXX: Maybe this should be fatal? */
+            }
         }
 
         return JK_TRUE;
@@ -2481,8 +2557,11 @@
 
 static apr_status_t jklog_cleanup(void *d)
 {
-    /* set the main_log to NULL */
-    d = NULL;
+    /* hgomez at 20070425 */
+    /* Clean up pointer content */
+    if (d != NULL)
+        *(jk_logger_t **)d = NULL;
+
     return APR_SUCCESS;
 }
 
@@ -2494,7 +2573,7 @@
     apr_file_t *jklogfp;
     piped_log *pl;
     jk_logger_t *jkl;
-    file_logger_t *flp;
+    jk_file_logger_t *flp;
     int jklog_flags = (APR_WRITE | APR_APPEND | APR_CREATE);
     apr_fileperms_t jklog_mode =
         (APR_UREAD | APR_UWRITE | APR_GREAD | APR_WREAD);
@@ -2504,8 +2583,7 @@
     if (conf->log_file == NULL) {
         conf->log_file = ap_server_root_relative(p, JK_LOG_DEF_FILE);
         if (conf->log_file)
-            ap_log_error(APLOG_MARK, APLOG_INFO | APLOG_NOERRNO,
-                         0, s,
+            ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s,
                          "No JkLogFile defined in httpd.conf. "
                          "Using default %s", conf->log_file);
     }
@@ -2547,17 +2625,25 @@
     }
     conf->jklogfp = jklogfp;
     jkl = (jk_logger_t *)apr_palloc(p, sizeof(jk_logger_t));
-    flp = (file_logger_t *) apr_palloc(p, sizeof(file_logger_t));
+    flp = (jk_file_logger_t *) apr_palloc(p, sizeof(jk_file_logger_t));
     if (jkl && flp) {
         jkl->log = jk_log_to_file;
         jkl->level = conf->log_level;
-        jkl->log_fmt = conf->stamp_format_string;
+        jk_set_time_fmt(jkl, conf->stamp_format_string);
         jkl->logger_private = flp;
         flp->jklogfp = conf->jklogfp;
         conf->log = jkl;
-        if (main_log == NULL)
+        if (main_log == NULL) {
             main_log = conf->log;
-        apr_pool_cleanup_register(p, conf->log, jklog_cleanup, jklog_cleanup);
+
+            /* hgomez at 20070425 */
+            /* Shouldn't we clean both conf->log and main_log ?                   */
+            /* Also should we pass pointer (ie: main_log) or handle (*main_log) ? */
+            apr_pool_cleanup_register(p, &main_log, jklog_cleanup, jklog_cleanup);
+        }
+        jk_log(conf->log, JK_LOG_DEBUG, "log time stamp format is '%s'",
+               conf->log->log_fmt);
+
         return 0;
     }
 
@@ -2612,6 +2698,7 @@
                     server_rec * s)
 {
     int rc;
+    int is_threaded;
     int mpm_threads = 1;
 
     /*     jk_map_t *init_map = NULL; */
@@ -2621,8 +2708,7 @@
     if (!jk_shm_file) {
         jk_shm_file = ap_server_root_relative(pconf, JK_SHM_DEF_FILE);
         if (jk_shm_file)
-            ap_log_error(APLOG_MARK, APLOG_INFO | APLOG_NOERRNO,
-                         0, NULL,
+            ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s,
                          "No JkShmFile defined in httpd.conf. "
                          "Using default %s", jk_shm_file);
     }
@@ -2635,58 +2721,60 @@
                                       jk_cleanup_shmem);
     }
     else
-        jk_log(conf->log, JK_LOG_ERROR, "Initializing shm:%s errno=%d",
+        jk_log(conf->log, JK_LOG_ERROR,
+               "Initializing shm:%s errno=%d. Load balancing workers will not function properly.",
                jk_shm_name(), rc);
-#if !defined(WIN32) && !defined(NETWARE)
-    if (!jk_shm_file) {
-        ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_CRIT,
-                     0, NULL,
-                     "No JkShmFile defined in httpd.conf. "
-                     "LoadBalancer will not function properly!");
-        ap_log_error(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO,
-                     0, NULL,
-                     "No JkShmFile defined in httpd.conf. "
-                     "LoadBalancer will not function properly!");
+
+    /* Set default connection cache size for multi-threaded MPMs */
+    if (ap_mpm_query(AP_MPMQ_IS_THREADED, &is_threaded) == APR_SUCCESS &&
+        is_threaded != AP_MPMQ_NOT_SUPPORTED) {
+        if (ap_mpm_query(AP_MPMQ_MAX_THREADS, &mpm_threads) != APR_SUCCESS)
+            mpm_threads = 1;
     }
-#endif
-
-    /* Set default connection cache size for worker mpm */
-#if APR_HAS_THREADS
-    if (ap_mpm_query(AP_MPMQ_MAX_THREADS, &mpm_threads) != APR_SUCCESS)
-        mpm_threads = 1;
-#endif
+    if (JK_IS_DEBUG_LEVEL(conf->log))
+        jk_log(conf->log, JK_LOG_DEBUG,
+               "Setting default connection pool max size to %d",
+               mpm_threads);
     jk_set_worker_def_cache_size(mpm_threads);
 
-    /*     if(map_alloc(&init_map)) { */
-    if (!jk_map_read_properties(init_map, conf->worker_file, NULL, 1, conf->log)) {
-        if (jk_map_size(init_map) == 0) {
-            ap_log_error(APLOG_MARK, APLOG_STARTUP | APLOG_CRIT,
-                         0, NULL,
-                         "No worker file and no worker options in httpd.conf"
-                         "use JkWorkerFile to set workers");
-        }
-        ap_log_error(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, 0, NULL, "Error in reading worker properties");
-        return !OK;
+    if ((conf->worker_file != NULL) &&
+        !jk_map_read_properties(init_map, conf->worker_file, NULL,
+                                JK_MAP_HANDLE_DUPLICATES, conf->log)) {
+        ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s,
+                     "Error in reading worker properties from '%s'",
+                     conf->worker_file);
+        return JK_FALSE;
     }
 
     if (jk_map_resolve_references(init_map, "worker.", 1, 1, conf->log) == JK_FALSE) {
-        ap_log_error(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, 0, NULL, "Error in resolving configuration references");
-        return !OK;
+        ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s,
+                     "Error in resolving configuration references");
+        return JK_FALSE;
     }
 
     /* we add the URI->WORKER MAP since workers using AJP14
        will feed it */
     worker_env.uri_to_worker = conf->uw_map;
     worker_env.virtual = "*";   /* for now */
-#if (MODULE_MAGIC_NUMBER_MAJOR > 20060110)
-    worker_env.server_name = (char *)ap_get_server_banner();
+#if (AP_MODULE_MAGIC_AT_LEAST(20060905,0))
+    worker_env.server_name = (char *)ap_get_server_description();
 #else
     worker_env.server_name = (char *)ap_get_server_version();
 #endif
+
     if (wc_open(init_map, &worker_env, conf->log)) {
         ap_add_version_component(pconf, JK_EXPOSED_VERSION);
+        jk_log(conf->log, JK_LOG_INFO,
+               "%s initialized",
+               JK_EXPOSED_VERSION);
     }
-    return OK;
+    else {
+        ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s,
+                     "Error in creating the workers."
+                     " Please consult your mod_jk log file '%s'.", conf->log_file);
+        return JK_FALSE;
+    }
+    return JK_TRUE;
 }
 
 static int jk_post_config(apr_pool_t * pconf,
@@ -2733,10 +2821,15 @@
                 if (open_jklog(srv, pconf))
                     return HTTP_INTERNAL_SERVER_ERROR;
                 if (sconf) {
+                    sconf->options &= ~sconf->exclude_options;
                     if (!uri_worker_map_alloc(&(sconf->uw_map),
                                               sconf->uri_to_context, sconf->log))
                         jk_error_exit(APLOG_MARK, APLOG_EMERG, srv,
                                       srv->process->pool, "Memory error");
+                    if (sconf->options & JK_OPT_REJECTUNSAFE)
+                        sconf->uw_map->reject_unsafe = 1;
+                    else
+                        sconf->uw_map->reject_unsafe = 0;
                     if (sconf->mount_file) {
                         sconf->uw_map->fname = sconf->mount_file;
                         sconf->uw_map->reload = sconf->mount_file_reload;
@@ -2749,7 +2842,6 @@
                             ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
                                          "JkRequestLogFormat format array NULL");
                     }
-                    sconf->options &= ~sconf->exclude_options;
                     if (sconf->envvars_in_use) {
                         int i;
                         const apr_array_header_t *arr;
@@ -2779,7 +2871,7 @@
                     }
                 }
             }
-            if (init_jk(pconf, conf, s))
+            if (init_jk(pconf, conf, s) == JK_FALSE)
                 return HTTP_INTERNAL_SERVER_ERROR;
         }
     }
@@ -2799,7 +2891,7 @@
                                                       &jk_module);
 
         if (conf) {
-            const char *worker;            
+            const char *worker;
             if ((r->handler != NULL) && (!strcmp(r->handler, JK_HANDLER))) {
                 /* Somebody already set the handler, probably manual config
                  * or "native" configuration, no need for extra overhead

Modified: trunk/tomcat5.5/connectors/jk/native/apache-2.0/mod_jk.dsp
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/apache-2.0/mod_jk.dsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/apache-2.0/mod_jk.dsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -42,8 +42,8 @@
 # PROP Intermediate_Dir "Release"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /MD /W3 /O2 /Oy- /Zi /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
-# ADD CPP /nologo /MD /W3 /O2 /Oy- /Zi /I "..\common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "$(APACHE2_HOME)\include" /I "$(APACHE2_HOME)\srclib\apr\include" /I "$(APACHE2_HOME)\srclib\apr-util\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_APR" /Fd"Release/mod_jk_src" /FD /c
+# ADD BASE CPP /nologo /MD /W3 /Zi /O2 /Oy- /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c
+# ADD CPP /nologo /MD /W3 /Zi /O2 /Oy- /I "..\common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /I "$(APACHE2_HOME)\include" /I "$(APACHE2_HOME)\srclib\apr\include" /I "$(APACHE2_HOME)\srclib\apr-util\include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "HAVE_APR" /Fd"Release/mod_jk_src" /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -164,6 +164,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\common\jk_url.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\common\jk_util.c
 # End Source File
 # Begin Source File
@@ -272,6 +276,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\common\jk_url.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\common\jk_util.h
 # End Source File
 # Begin Source File

Added: trunk/tomcat5.5/connectors/jk/native/common/ap_snprintf.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/ap_snprintf.c	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/common/ap_snprintf.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,1178 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * This code is based on, and used with the permission of, the
+ * SIO stdio-replacement strx_* functions by Panos Tsirigotis
+ * <panos at alumni.cs.colorado.edu> for xinetd.
+ */
+#define BUILD_STANDALONE
+
+#ifndef BUILD_STANDALONE
+#include "httpd.h"
+#else
+#include "ap_snprintf.h"
+#endif
+
+#include <stdio.h>
+#include <ctype.h>
+#ifndef NETWARE
+#include <sys/types.h>
+#endif
+#include <stdarg.h>
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+#ifdef WIN32
+#include <float.h>
+#endif
+
+typedef enum {
+    NO = 0, YES = 1
+} boolean_e;
+
+#ifndef FALSE
+#define FALSE                   0
+#endif
+#ifndef TRUE
+#define TRUE                    1
+#endif
+#ifndef AP_LONGEST_LONG
+#define AP_LONGEST_LONG         long
+#endif
+#define NUL                     '\0'
+#define WIDE_INT                long
+#define WIDEST_INT              AP_LONGEST_LONG
+
+typedef WIDE_INT wide_int;
+typedef unsigned WIDE_INT u_wide_int;
+typedef WIDEST_INT widest_int;
+#ifdef __TANDEM
+/* Although Tandem supports "long long" there is no unsigned variant. */
+typedef unsigned long       u_widest_int;
+#else
+typedef unsigned WIDEST_INT u_widest_int;
+#endif
+typedef int bool_int;
+
+#define S_NULL                  "(null)"
+#define S_NULL_LEN              6
+
+#define FLOAT_DIGITS            6
+#define EXPONENT_LENGTH         10
+
+/*
+ * NUM_BUF_SIZE is the size of the buffer used for arithmetic conversions
+ *
+ * XXX: this is a magic number; do not decrease it
+ */
+#define NUM_BUF_SIZE            512
+
+/*
+ * cvt.c - IEEE floating point formatting routines for FreeBSD
+ * from GNU libc-4.6.27.  Modified to be thread safe.
+ */
+
+/*
+ *    ap_ecvt converts to decimal
+ *      the number of digits is specified by ndigit
+ *      decpt is set to the position of the decimal point
+ *      sign is set to 0 for positive, 1 for negative
+ */
+
+#define NDIG    80
+
+/* buf must have at least NDIG bytes */
+static char *ap_cvt(double arg, int ndigits, int *decpt, int *sign, int eflag, char *buf)
+{
+    register int r2;
+    double fi, fj;
+    register char *p, *p1;
+    
+    if (ndigits >= NDIG - 1)
+        ndigits = NDIG - 2;
+    r2 = 0;
+    *sign = 0;
+    p = &buf[0];
+    if (arg < 0) {
+        *sign = 1;
+        arg = -arg;
+    }
+    arg = modf(arg, &fi);
+    p1 = &buf[NDIG];
+    /*
+     * Do integer part
+     */
+    if (fi != 0) {
+        p1 = &buf[NDIG];
+        while (p1 > &buf[0] && fi != 0) {
+            fj = modf(fi / 10, &fi);
+            *--p1 = (int) ((fj + .03) * 10) + '0';
+            r2++;
+        }
+        while (p1 < &buf[NDIG])
+            *p++ = *p1++;
+    }
+    else if (arg > 0) {
+        while ((fj = arg * 10) < 1) {
+            arg = fj;
+            r2--;
+        }
+    }
+    p1 = &buf[ndigits];
+    if (eflag == 0)
+        p1 += r2;
+    *decpt = r2;
+    if (p1 < &buf[0]) {
+        buf[0] = '\0';
+        return (buf);
+    }
+    while (p <= p1 && p < &buf[NDIG]) {
+        arg *= 10;
+        arg = modf(arg, &fj);
+        *p++ = (int) fj + '0';
+    }
+    if (p1 >= &buf[NDIG]) {
+        buf[NDIG - 1] = '\0';
+        return (buf);
+    }
+    p = p1;
+    *p1 += 5;
+    while (*p1 > '9') {
+        *p1 = '0';
+        if (p1 > buf)
+            ++ * --p1;
+        else {
+            *p1 = '1';
+            (*decpt)++;
+            if (eflag == 0) {
+                if (p > buf)
+                    *p = '0';
+                p++;
+            }
+        }
+    }
+    *p = '\0';
+    return (buf);
+}
+
+static char *ap_ecvt(double arg, int ndigits, int *decpt, int *sign, char *buf)
+{
+    return (ap_cvt(arg, ndigits, decpt, sign, 1, buf));
+}
+
+static char *ap_fcvt(double arg, int ndigits, int *decpt, int *sign, char *buf)
+{
+    return (ap_cvt(arg, ndigits, decpt, sign, 0, buf));
+}
+
+/*
+ * ap_gcvt  - Floating output conversion to
+ * minimal length string
+ */
+
+static char *ap_gcvt(double number, int ndigit, char *buf, boolean_e altform)
+{
+    int sign, decpt;
+    register char *p1, *p2;
+    register int i;
+    char buf1[NDIG];
+
+    p1 = ap_ecvt(number, ndigit, &decpt, &sign, buf1);
+    p2 = buf;
+    if (sign)
+        *p2++ = '-';
+    for (i = ndigit - 1; i > 0 && p1[i] == '0'; i--)
+        ndigit--;
+    if ((decpt >= 0 && decpt - ndigit > 4)
+        || (decpt < 0 && decpt < -3)) {         /* use E-style */
+        decpt--;
+        *p2++ = *p1++;
+        *p2++ = '.';
+        for (i = 1; i < ndigit; i++)
+            *p2++ = *p1++;
+        *p2++ = 'e';
+        if (decpt < 0) {
+            decpt = -decpt;
+            *p2++ = '-';
+        }
+        else
+            *p2++ = '+';
+        if (decpt / 100 > 0)
+            *p2++ = decpt / 100 + '0';
+        if (decpt / 10 > 0)
+            *p2++ = (decpt % 100) / 10 + '0';
+        *p2++ = decpt % 10 + '0';
+    }
+    else {
+        if (decpt <= 0) {
+            if (*p1 != '0')
+                *p2++ = '.';
+            while (decpt < 0) {
+                decpt++;
+                *p2++ = '0';
+            }
+        }
+        for (i = 1; i <= ndigit; i++) {
+            *p2++ = *p1++;
+            if (i == decpt)
+                *p2++ = '.';
+        }
+        if (ndigit < decpt) {
+            while (ndigit++ < decpt)
+                *p2++ = '0';
+            *p2++ = '.';
+        }
+    }
+    if (p2[-1] == '.' && !altform)
+        p2--;
+    *p2 = '\0';
+    return (buf);
+}
+
+/*
+ * The INS_CHAR macro inserts a character in the buffer and writes
+ * the buffer back to disk if necessary
+ * It uses the char pointers sp and bep:
+ *      sp points to the next available character in the buffer
+ *      bep points to the end-of-buffer+1
+ * While using this macro, note that the nextb pointer is NOT updated.
+ *
+ * NOTE: Evaluation of the c argument should not have any side-effects
+ */
+#define INS_CHAR(c, sp, bep, cc)                                \
+            {                                                   \
+                if (sp >= bep) {                                \
+                    vbuff->curpos = sp;                         \
+                    if (flush_func(vbuff))                      \
+                        return -1;                              \
+                    sp = vbuff->curpos;                         \
+                    bep = vbuff->endpos;                        \
+                }                                               \
+                *sp++ = (c);                                    \
+                cc++;                                           \
+            }
+
+#define NUM( c )                        ( c - '0' )
+
+#define STR_TO_DEC( str, num )          \
+    num = NUM( *str++ ) ;               \
+    while ( ap_isdigit( *str ) )                \
+    {                                   \
+        num *= 10 ;                     \
+        num += NUM( *str++ ) ;          \
+    }
+
+/*
+ * This macro does zero padding so that the precision
+ * requirement is satisfied. The padding is done by
+ * adding '0's to the left of the string that is going
+ * to be printed. We don't allow precision to be large
+ * enough that we continue past the start of s.
+ *
+ * NOTE: this makes use of the magic info that s is
+ * always based on num_buf with a size of NUM_BUF_SIZE.
+ */
+#define FIX_PRECISION( adjust, precision, s, s_len )    \
+    if ( adjust ) {                                     \
+        int p = precision < NUM_BUF_SIZE - 1 ? precision : NUM_BUF_SIZE - 1; \
+        while ( s_len < p )                             \
+        {                                               \
+            *--s = '0' ;                                \
+            s_len++ ;                                   \
+        }                                               \
+    }
+
+/*
+ * Macro that does padding. The padding is done by printing
+ * the character ch.
+ */
+#define PAD( width, len, ch )   do              \
+        {                                       \
+            INS_CHAR( ch, sp, bep, cc ) ;       \
+            width-- ;                           \
+        }                                       \
+        while ( width > len )
+
+/*
+ * Prefix the character ch to the string str
+ * Increase length
+ * Set the has_prefix flag
+ */
+#define PREFIX( str, length, ch )        *--str = ch ; length++ ; has_prefix = YES
+
+
+/*
+ * Convert num to its decimal format.
+ * Return value:
+ *   - a pointer to a string containing the number (no sign)
+ *   - len contains the length of the string
+ *   - is_negative is set to TRUE or FALSE depending on the sign
+ *     of the number (always set to FALSE if is_unsigned is TRUE)
+ *
+ * The caller provides a buffer for the string: that is the buf_end argument
+ * which is a pointer to the END of the buffer + 1 (i.e. if the buffer
+ * is declared as buf[ 100 ], buf_end should be &buf[ 100 ])
+ *
+ * Note: we have 2 versions. One is used when we need to use quads
+ * (conv_10_quad), the other when we don't (conv_10). We're assuming the
+ * latter is faster.
+ */
+static char *conv_10(register wide_int num, register bool_int is_unsigned,
+                     register bool_int *is_negative, char *buf_end,
+                     register int *len)
+{
+    register char *p = buf_end;
+    register u_wide_int magnitude;
+
+    if (is_unsigned) {
+        magnitude = (u_wide_int) num;
+        *is_negative = FALSE;
+    }
+    else {
+        *is_negative = (num < 0);
+
+        /*
+         * On a 2's complement machine, negating the most negative integer 
+         * results in a number that cannot be represented as a signed integer.
+         * Here is what we do to obtain the number's magnitude:
+         *      a. add 1 to the number
+         *      b. negate it (becomes positive)
+         *      c. convert it to unsigned
+         *      d. add 1
+         */
+        if (*is_negative) {
+            wide_int t = num + 1;
+
+            magnitude = ((u_wide_int) -t) + 1;
+        }
+        else
+            magnitude = (u_wide_int) num;
+    }
+
+    /*
+     * We use a do-while loop so that we write at least 1 digit 
+     */
+    do {
+        register u_wide_int new_magnitude = magnitude / 10;
+
+        *--p = (char) (magnitude - new_magnitude * 10 + '0');
+        magnitude = new_magnitude;
+    }
+    while (magnitude);
+
+    *len = buf_end - p;
+    return (p);
+}
+
+static char *conv_10_quad(widest_int num, register bool_int is_unsigned,
+                     register bool_int *is_negative, char *buf_end,
+                     register int *len)
+{
+    register char *p = buf_end;
+    u_widest_int magnitude;
+
+    /*
+     * We see if we can use the faster non-quad version by checking the
+     * number against the largest long value it can be. If <=, we
+     * punt to the quicker version.
+     */
+    if ((num <= ULONG_MAX && is_unsigned) || (num <= LONG_MAX && !is_unsigned))
+        return(conv_10( (wide_int)num, is_unsigned, is_negative,
+               buf_end, len));
+
+    if (is_unsigned) {
+        magnitude = (u_widest_int) num;
+        *is_negative = FALSE;
+    }
+    else {
+        *is_negative = (num < 0);
+
+        /*
+         * On a 2's complement machine, negating the most negative integer 
+         * results in a number that cannot be represented as a signed integer.
+         * Here is what we do to obtain the number's magnitude:
+         *      a. add 1 to the number
+         *      b. negate it (becomes positive)
+         *      c. convert it to unsigned
+         *      d. add 1
+         */
+        if (*is_negative) {
+            widest_int t = num + 1;
+
+            magnitude = ((u_widest_int) -t) + 1;
+        }
+        else
+            magnitude = (u_widest_int) num;
+    }
+
+    /*
+     * We use a do-while loop so that we write at least 1 digit 
+     */
+    do {
+        u_widest_int new_magnitude = magnitude / 10;
+
+        *--p = (char) (magnitude - new_magnitude * 10 + '0');
+        magnitude = new_magnitude;
+    }
+    while (magnitude);
+
+    *len = buf_end - p;
+    return (p);
+}
+
+
+
+#ifndef BUILD_STANDALONE
+static char *conv_in_addr(struct in_addr *ia, char *buf_end, int *len)
+{
+    unsigned addr = ntohl(ia->s_addr);
+    char *p = buf_end;
+    bool_int is_negative;
+    int sub_len;
+
+    p = conv_10((addr & 0x000000FF)      , TRUE, &is_negative, p, &sub_len);
+    *--p = '.';
+    p = conv_10((addr & 0x0000FF00) >>  8, TRUE, &is_negative, p, &sub_len);
+    *--p = '.';
+    p = conv_10((addr & 0x00FF0000) >> 16, TRUE, &is_negative, p, &sub_len);
+    *--p = '.';
+    p = conv_10((addr & 0xFF000000) >> 24, TRUE, &is_negative, p, &sub_len);
+
+    *len = buf_end - p;
+    return (p);
+}
+
+
+
+static char *conv_sockaddr_in(struct sockaddr_in *si, char *buf_end, int *len)
+{
+    char *p = buf_end;
+    bool_int is_negative;
+    int sub_len;
+
+    p = conv_10(ntohs(si->sin_port), TRUE, &is_negative, p, &sub_len);
+    *--p = ':';
+    p = conv_in_addr(&si->sin_addr, p, &sub_len);
+
+    *len = buf_end - p;
+    return (p);
+}
+#endif
+
+
+/*
+ * Convert a floating point number to a string formats 'f', 'e' or 'E'.
+ * The result is placed in buf, and len denotes the length of the string
+ * The sign is returned in the is_negative argument (and is not placed
+ * in buf).
+ */
+static char *conv_fp(register char format, register double num,
+    boolean_e add_dp, int precision, bool_int *is_negative,
+    char *buf, int *len)
+{
+    register char *s = buf;
+    register char *p;
+    int decimal_point;
+    char buf1[NDIG];
+
+    if (format == 'f')
+        p = ap_fcvt(num, precision, &decimal_point, is_negative, buf1);
+    else                        /* either e or E format */
+        p = ap_ecvt(num, precision + 1, &decimal_point, is_negative, buf1);
+
+    /*
+     * Check for Infinity and NaN
+     */
+    if (ap_isalpha(*p)) {
+        *len = strlen(strcpy(buf, p));
+        *is_negative = FALSE;
+        return (buf);
+    }
+
+    if (format == 'f') {
+        if (decimal_point <= 0) {
+            *s++ = '0';
+            if (precision > 0) {
+                *s++ = '.';
+                while (decimal_point++ < 0)
+                    *s++ = '0';
+            }
+            else if (add_dp)
+                *s++ = '.';
+        }
+        else {
+            while (decimal_point-- > 0)
+                *s++ = *p++;
+            if (precision > 0 || add_dp)
+                *s++ = '.';
+        }
+    }
+    else {
+        *s++ = *p++;
+        if (precision > 0 || add_dp)
+            *s++ = '.';
+    }
+
+    /*
+     * copy the rest of p, the NUL is NOT copied
+     */
+    while (*p)
+        *s++ = *p++;
+
+    if (format != 'f') {
+        char temp[EXPONENT_LENGTH];     /* for exponent conversion */
+        int t_len;
+        bool_int exponent_is_negative;
+
+        *s++ = format;          /* either e or E */
+        decimal_point--;
+        if (decimal_point != 0) {
+            p = conv_10((wide_int) decimal_point, FALSE, &exponent_is_negative,
+                        &temp[EXPONENT_LENGTH], &t_len);
+            *s++ = exponent_is_negative ? '-' : '+';
+
+            /*
+             * Make sure the exponent has at least 2 digits
+             */
+            if (t_len == 1)
+                *s++ = '0';
+            while (t_len--)
+                *s++ = *p++;
+        }
+        else {
+            *s++ = '+';
+            *s++ = '0';
+            *s++ = '0';
+        }
+    }
+
+    *len = s - buf;
+    return (buf);
+}
+
+
+/*
+ * Convert num to a base X number where X is a power of 2. nbits determines X.
+ * For example, if nbits is 3, we do base 8 conversion
+ * Return value:
+ *      a pointer to a string containing the number
+ *
+ * The caller provides a buffer for the string: that is the buf_end argument
+ * which is a pointer to the END of the buffer + 1 (i.e. if the buffer
+ * is declared as buf[ 100 ], buf_end should be &buf[ 100 ])
+ *
+ * As with conv_10, we have a faster version which is used when
+ * the number isn't quad size.
+ */
+static char *conv_p2(register u_wide_int num, register int nbits,
+                     char format, char *buf_end, register int *len)
+{
+    register int mask = (1 << nbits) - 1;
+    register char *p = buf_end;
+    static const char low_digits[] = "0123456789abcdef";
+    static const char upper_digits[] = "0123456789ABCDEF";
+    register const char *digits = (format == 'X') ? upper_digits : low_digits;
+
+    do {
+        *--p = digits[num & mask];
+        num >>= nbits;
+    }
+    while (num);
+
+    *len = buf_end - p;
+    return (p);
+}
+
+static char *conv_p2_quad(u_widest_int num, register int nbits,
+                     char format, char *buf_end, register int *len)
+{
+    register int mask = (1 << nbits) - 1;
+    register char *p = buf_end;
+    static const char low_digits[] = "0123456789abcdef";
+    static const char upper_digits[] = "0123456789ABCDEF";
+    register const char *digits = (format == 'X') ? upper_digits : low_digits;
+
+    if (num <= ULONG_MAX)
+        return(conv_p2( (u_wide_int)num, nbits, format, buf_end, len));
+
+    do {
+        *--p = digits[num & mask];
+        num >>= nbits;
+    }
+    while (num);
+
+    *len = buf_end - p;
+    return (p);
+}
+
+
+/*
+ * Do format conversion placing the output in buffer
+ */
+API_EXPORT(int) ap_vformatter(int (*flush_func)(ap_vformatter_buff *),
+    ap_vformatter_buff *vbuff, const char *fmt, va_list ap)
+{
+    register char *sp;
+    register char *bep;
+    register int cc = 0;
+    register int i;
+
+    register char *s = NULL;
+    char *q;
+    int s_len;
+
+    register int min_width = 0;
+    int precision = 0;
+    enum {
+        LEFT, RIGHT
+    } adjust;
+    char pad_char;
+    char prefix_char;
+
+    double fp_num;
+    widest_int i_quad = (widest_int) 0;
+    u_widest_int ui_quad;
+    wide_int i_num = (wide_int) 0;
+    u_wide_int ui_num;
+
+    char num_buf[NUM_BUF_SIZE];
+    char char_buf[2];           /* for printing %% and %<unknown> */
+
+    enum var_type_enum {
+        IS_QUAD, IS_LONG, IS_SHORT, IS_INT
+    };
+    enum var_type_enum var_type = IS_INT;
+
+    /*
+     * Flag variables
+     */
+    boolean_e alternate_form;
+    boolean_e print_sign;
+    boolean_e print_blank;
+    boolean_e adjust_precision;
+    boolean_e adjust_width;
+    bool_int is_negative;
+
+    sp = vbuff->curpos;
+    bep = vbuff->endpos;
+
+    while (*fmt) {
+        if (*fmt != '%') {
+            INS_CHAR(*fmt, sp, bep, cc);
+        }
+        else {
+            /*
+             * Default variable settings
+             */
+            adjust = RIGHT;
+            alternate_form = print_sign = print_blank = NO;
+            pad_char = ' ';
+            prefix_char = NUL;
+
+            fmt++;
+
+            /*
+             * Try to avoid checking for flags, width or precision
+             */
+            if (!ap_islower(*fmt)) {
+                /*
+                 * Recognize flags: -, #, BLANK, +
+                 */
+                for (;; fmt++) {
+                    if (*fmt == '-')
+                        adjust = LEFT;
+                    else if (*fmt == '+')
+                        print_sign = YES;
+                    else if (*fmt == '#')
+                        alternate_form = YES;
+                    else if (*fmt == ' ')
+                        print_blank = YES;
+                    else if (*fmt == '0')
+                        pad_char = '0';
+                    else
+                        break;
+                }
+
+                /*
+                 * Check if a width was specified
+                 */
+                if (ap_isdigit(*fmt)) {
+                    STR_TO_DEC(fmt, min_width);
+                    adjust_width = YES;
+                }
+                else if (*fmt == '*') {
+                    min_width = va_arg(ap, int);
+                    fmt++;
+                    adjust_width = YES;
+                    if (min_width < 0) {
+                        adjust = LEFT;
+                        min_width = -min_width;
+                    }
+                }
+                else
+                    adjust_width = NO;
+
+                /*
+                 * Check if a precision was specified
+                 */
+                if (*fmt == '.') {
+                    adjust_precision = YES;
+                    fmt++;
+                    if (ap_isdigit(*fmt)) {
+                        STR_TO_DEC(fmt, precision);
+                    }
+                    else if (*fmt == '*') {
+                        precision = va_arg(ap, int);
+                        fmt++;
+                        if (precision < 0)
+                            precision = 0;
+                    }
+                    else
+                        precision = 0;
+                }
+                else
+                    adjust_precision = NO;
+            }
+            else
+                adjust_precision = adjust_width = NO;
+
+            /*
+             * Modifier check
+             */
+            if (*fmt == 'q') {
+                var_type = IS_QUAD;
+                fmt++;
+            }
+            else if (*fmt == 'l') {
+                var_type = IS_LONG;
+                fmt++;
+            }
+            else if (*fmt == 'h') {
+                var_type = IS_SHORT;
+                fmt++;
+            }
+            else {
+                var_type = IS_INT;
+            }
+
+            /*
+             * Argument extraction and printing.
+             * First we determine the argument type.
+             * Then, we convert the argument to a string.
+             * On exit from the switch, s points to the string that
+             * must be printed, s_len has the length of the string
+             * The precision requirements, if any, are reflected in s_len.
+             *
+             * NOTE: pad_char may be set to '0' because of the 0 flag.
+             *   It is reset to ' ' by non-numeric formats
+             */
+            switch (*fmt) {
+            case 'u':
+                if (var_type == IS_QUAD) {
+                    i_quad = va_arg(ap, u_widest_int);
+                    s = conv_10_quad(i_quad, 1, &is_negative,
+                            &num_buf[NUM_BUF_SIZE], &s_len);
+                }
+                else {
+                    if (var_type == IS_LONG)
+                        i_num = (wide_int) va_arg(ap, u_wide_int);
+                    else if (var_type == IS_SHORT)
+                        i_num = (wide_int) (unsigned short) va_arg(ap, unsigned int);
+                    else
+                        i_num = (wide_int) va_arg(ap, unsigned int);
+                    s = conv_10(i_num, 1, &is_negative,
+                            &num_buf[NUM_BUF_SIZE], &s_len);
+                }
+                FIX_PRECISION(adjust_precision, precision, s, s_len);
+                break;
+
+            case 'd':
+            case 'i':
+                if (var_type == IS_QUAD) {
+                    i_quad = va_arg(ap, widest_int);
+                    s = conv_10_quad(i_quad, 0, &is_negative,
+                            &num_buf[NUM_BUF_SIZE], &s_len);
+                }
+                else {
+                    if (var_type == IS_LONG)
+                        i_num = (wide_int) va_arg(ap, wide_int);
+                    else if (var_type == IS_SHORT)
+                        i_num = (wide_int) (short) va_arg(ap, int);
+                    else
+                        i_num = (wide_int) va_arg(ap, int);
+                    s = conv_10(i_num, 0, &is_negative,
+                            &num_buf[NUM_BUF_SIZE], &s_len);
+                }
+                FIX_PRECISION(adjust_precision, precision, s, s_len);
+
+                if (is_negative)
+                    prefix_char = '-';
+                else if (print_sign)
+                    prefix_char = '+';
+                else if (print_blank)
+                    prefix_char = ' ';
+                break;
+
+
+            case 'o':
+                if (var_type == IS_QUAD) {
+                    ui_quad = va_arg(ap, u_widest_int);
+                    s = conv_p2_quad(ui_quad, 3, *fmt,
+                            &num_buf[NUM_BUF_SIZE], &s_len);
+                }
+                else {
+                    if (var_type == IS_LONG)
+                        ui_num = (u_wide_int) va_arg(ap, u_wide_int);
+                    else if (var_type == IS_SHORT)
+                        ui_num = (u_wide_int) (unsigned short) va_arg(ap, unsigned int);
+                    else
+                        ui_num = (u_wide_int) va_arg(ap, unsigned int);
+                    s = conv_p2(ui_num, 3, *fmt,
+                            &num_buf[NUM_BUF_SIZE], &s_len);
+                }
+                FIX_PRECISION(adjust_precision, precision, s, s_len);
+                if (alternate_form && *s != '0') {
+                    *--s = '0';
+                    s_len++;
+                }
+                break;
+
+
+            case 'x':
+            case 'X':
+                if (var_type == IS_QUAD) {
+                    ui_quad = va_arg(ap, u_widest_int);
+                    s = conv_p2_quad(ui_quad, 4, *fmt,
+                            &num_buf[NUM_BUF_SIZE], &s_len);
+                }
+                else {
+                    if (var_type == IS_LONG)
+                        ui_num = (u_wide_int) va_arg(ap, u_wide_int);
+                    else if (var_type == IS_SHORT)
+                        ui_num = (u_wide_int) (unsigned short) va_arg(ap, unsigned int);
+                    else
+                        ui_num = (u_wide_int) va_arg(ap, unsigned int);
+                    s = conv_p2(ui_num, 4, *fmt,
+                            &num_buf[NUM_BUF_SIZE], &s_len);
+                }
+                FIX_PRECISION(adjust_precision, precision, s, s_len);
+                if (alternate_form && i_num != 0) {
+                    *--s = *fmt;        /* 'x' or 'X' */
+                    *--s = '0';
+                    s_len += 2;
+                }
+                break;
+
+
+            case 's':
+                s = va_arg(ap, char *);
+                if (s != NULL) {
+                    s_len = strlen(s);
+                    if (adjust_precision && precision < s_len)
+                        s_len = precision;
+                }
+                else {
+                    s = S_NULL;
+                    s_len = S_NULL_LEN;
+                }
+                pad_char = ' ';
+                break;
+
+
+            case 'f':
+            case 'e':
+            case 'E':
+                fp_num = va_arg(ap, double);
+                /*
+                 * * We use &num_buf[ 1 ], so that we have room for the sign
+                 */
+#ifdef HAVE_ISNAN
+                if (isnan(fp_num)) {
+                    s = "nan";
+                    s_len = 3;
+                }
+                else
+#endif
+#ifdef HAVE_ISINF
+                if (isinf(fp_num)) {
+                    s = "inf";
+                    s_len = 3;
+                }
+                else
+#endif
+                {
+                    s = conv_fp(*fmt, fp_num, alternate_form,
+                            (adjust_precision == NO) ? FLOAT_DIGITS : precision,
+                                &is_negative, &num_buf[1], &s_len);
+                    if (is_negative)
+                        prefix_char = '-';
+                    else if (print_sign)
+                        prefix_char = '+';
+                    else if (print_blank)
+                        prefix_char = ' ';
+                }
+                break;
+
+
+            case 'g':
+            case 'G':
+                if (adjust_precision == NO)
+                    precision = FLOAT_DIGITS;
+                else if (precision == 0)
+                    precision = 1;
+                /*
+                 * * We use &num_buf[ 1 ], so that we have room for the sign
+                 */
+                s = ap_gcvt(va_arg(ap, double), precision, &num_buf[1],
+                            alternate_form);
+                if (*s == '-')
+                    prefix_char = *s++;
+                else if (print_sign)
+                    prefix_char = '+';
+                else if (print_blank)
+                    prefix_char = ' ';
+
+                s_len = strlen(s);
+
+                if (alternate_form && (q = strchr(s, '.')) == NULL) {
+                    s[s_len++] = '.';
+                    s[s_len] = '\0'; /* delimit for following strchr() */
+                }
+                if (*fmt == 'G' && (q = strchr(s, 'e')) != NULL)
+                    *q = 'E';
+                break;
+
+
+            case 'c':
+                char_buf[0] = (char) (va_arg(ap, int));
+                s = &char_buf[0];
+                s_len = 1;
+                pad_char = ' ';
+                break;
+
+
+            case '%':
+                char_buf[0] = '%';
+                s = &char_buf[0];
+                s_len = 1;
+                pad_char = ' ';
+                break;
+
+
+            case 'n':
+                if (var_type == IS_QUAD)
+                    *(va_arg(ap, widest_int *)) = cc;
+                else if (var_type == IS_LONG)
+                    *(va_arg(ap, long *)) = cc;
+                else if (var_type == IS_SHORT)
+                    *(va_arg(ap, short *)) = cc;
+                else
+                    *(va_arg(ap, int *)) = cc;
+                break;
+
+                /*
+                 * This is where we extend the printf format, with a second
+                 * type specifier
+                 */
+            case 'p':
+                switch(*++fmt) {
+                    /*
+                     * If the pointer size is equal to or smaller than the size
+                     * of the largest unsigned int, we convert the pointer to a
+                     * hex number, otherwise we print "%p" to indicate that we
+                     * don't handle "%p".
+                     */
+                case 'p':
+#ifdef AP_VOID_P_IS_QUAD
+                    if (sizeof(void *) <= sizeof(u_widest_int)) {
+                        ui_quad = (u_widest_int) va_arg(ap, void *);
+                        s = conv_p2_quad(ui_quad, 4, 'x',
+                                &num_buf[NUM_BUF_SIZE], &s_len);
+                    }
+#else
+                    if (sizeof(void *) <= sizeof(u_wide_int)) {
+                        ui_num = (u_wide_int) va_arg(ap, void *);
+                        s = conv_p2(ui_num, 4, 'x',
+                                &num_buf[NUM_BUF_SIZE], &s_len);
+                    }
+#endif
+                    else {
+                        s = "%p";
+                        s_len = 2;
+                        prefix_char = NUL;
+                    }
+                    pad_char = ' ';
+                    break;
+
+#ifndef BUILD_STANDALONE
+                    /* print a struct sockaddr_in as a.b.c.d:port */
+                case 'I':
+                    {
+                        struct sockaddr_in *si;
+
+                        si = va_arg(ap, struct sockaddr_in *);
+                        if (si != NULL) {
+                            s = conv_sockaddr_in(si, &num_buf[NUM_BUF_SIZE], &s_len);
+                            if (adjust_precision && precision < s_len)
+                                s_len = precision;
+                        }
+                        else {
+                            s = S_NULL;
+                            s_len = S_NULL_LEN;
+                        }
+                        pad_char = ' ';
+                    }
+                    break;
+
+                    /* print a struct in_addr as a.b.c.d */
+                case 'A':
+                    {
+                        struct in_addr *ia;
+
+                        ia = va_arg(ap, struct in_addr *);
+                        if (ia != NULL) {
+                            s = conv_in_addr(ia, &num_buf[NUM_BUF_SIZE], &s_len);
+                            if (adjust_precision && precision < s_len)
+                                s_len = precision;
+                        }
+                        else {
+                            s = S_NULL;
+                            s_len = S_NULL_LEN;
+                        }
+                        pad_char = ' ';
+                    }
+                    break;
+#endif
+
+                case NUL:
+                    /* if %p ends the string, oh well ignore it */
+                    continue;
+
+                default:
+                    s = "bogus %p";
+                    s_len = 8;
+                    prefix_char = NUL;
+                    break;
+                }
+                break;
+
+            case NUL:
+                /*
+                 * The last character of the format string was %.
+                 * We ignore it.
+                 */
+                continue;
+
+
+                /*
+                 * The default case is for unrecognized %'s.
+                 * We print %<char> to help the user identify what
+                 * option is not understood.
+                 * This is also useful in case the user wants to pass
+                 * the output of format_converter to another function
+                 * that understands some other %<char> (like syslog).
+                 * Note that we can't point s inside fmt because the
+                 * unknown <char> could be preceded by width etc.
+                 */
+            default:
+                char_buf[0] = '%';
+                char_buf[1] = *fmt;
+                s = char_buf;
+                s_len = 2;
+                pad_char = ' ';
+                break;
+            }
+
+            if (prefix_char != NUL && s != S_NULL && s != char_buf) {
+                *--s = prefix_char;
+                s_len++;
+            }
+
+            if (adjust_width && adjust == RIGHT && min_width > s_len) {
+                if (pad_char == '0' && prefix_char != NUL) {
+                    INS_CHAR(*s, sp, bep, cc);
+                    s++;
+                    s_len--;
+                    min_width--;
+                }
+                PAD(min_width, s_len, pad_char);
+            }
+
+            /*
+             * Print the string s. 
+             */
+            for (i = s_len; i != 0; i--) {
+                INS_CHAR(*s, sp, bep, cc);
+                s++;
+            }
+
+            if (adjust_width && adjust == LEFT && min_width > s_len)
+                PAD(min_width, s_len, pad_char);
+        }
+        fmt++;
+    }
+    vbuff->curpos = sp;
+
+    return cc;
+}
+
+
+static int snprintf_flush(ap_vformatter_buff *vbuff)
+{
+    /* if the buffer fills we have to abort immediately, there is no way
+     * to "flush" an ap_snprintf... there's nowhere to flush it to.
+     */
+    return -1;
+}
+
+
+API_EXPORT_NONSTD(int) ap_snprintf(char *buf, size_t len, const char *format,...)
+{
+    int cc;
+    va_list ap;
+    ap_vformatter_buff vbuff;
+
+    if (len == 0)
+        return 0;
+
+    /* save one byte for nul terminator */
+    vbuff.curpos = buf;
+    vbuff.endpos = buf + len - 1;
+    va_start(ap, format);
+    cc = ap_vformatter(snprintf_flush, &vbuff, format, ap);
+    va_end(ap);
+    *vbuff.curpos = '\0';
+    return (cc == -1) ? len : cc;
+}
+
+
+API_EXPORT(int) ap_vsnprintf(char *buf, size_t len, const char *format,
+                             va_list ap)
+{
+    int cc;
+    ap_vformatter_buff vbuff;
+
+    if (len == 0)
+        return 0;
+
+    /* save one byte for nul terminator */
+    vbuff.curpos = buf;
+    vbuff.endpos = buf + len - 1;
+    cc = ap_vformatter(snprintf_flush, &vbuff, format, ap);
+    *vbuff.curpos = '\0';
+    return (cc == -1) ? len : cc;
+}

Added: trunk/tomcat5.5/connectors/jk/native/common/ap_snprintf.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/ap_snprintf.h	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/common/ap_snprintf.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,150 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * The ap_vsnprintf/ap_snprintf functions are based on, and used with the
+ * permission of, the  SIO stdio-replacement strx_* functions by Panos
+ * Tsirigotis <panos at alumni.cs.colorado.edu> for xinetd.
+ */
+
+#ifndef APACHE_AP_SNPRINTF_H
+#define APACHE_AP_SNPRINTF_H
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <limits.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* stuff marked API_EXPORT is part of the API, and intended for use
+ * by modules
+ */
+#ifndef API_EXPORT
+#define API_EXPORT(type)    type
+#endif
+
+/* Stuff marked API_EXPORT_NONSTD is part of the API, and intended for
+ * use by modules.  The difference between API_EXPORT and
+ * API_EXPORT_NONSTD is that the latter is required for any functions
+ * which use varargs or are used via indirect function call.  This
+ * is to accomodate the two calling conventions in windows dlls.
+ */
+#ifndef API_EXPORT_NONSTD
+#define API_EXPORT_NONSTD(type)    type
+#endif
+
+#if !defined(__GNUC__) || __GNUC__ < 2 || \
+    (__GNUC__ == 2 && __GNUC_MINOR__ < 7) ||\
+    defined(NEXT)
+#define __attribute__(__x)
+#endif
+
+/* These macros allow correct support of 8-bit characters on systems which
+ * support 8-bit characters.  Pretty dumb how the cast is required, but
+ * that's legacy libc for ya.  These new macros do not support EOF like
+ * the standard macros do.  Tough.
+ */
+#define ap_isalpha(c) (isalpha(((unsigned char)(c))))
+#define ap_isdigit(c) (isdigit(((unsigned char)(c))))
+#define ap_islower(c) (islower(((unsigned char)(c))))
+
+
+/* ap_vformatter() is a generic printf-style formatting routine
+ * with some extensions.  The extensions are:
+ *
+ * %pA	takes a struct in_addr *, and prints it as a.b.c.d
+ * %pI	takes a struct sockaddr_in * and prints it as a.b.c.d:port
+ * %pp  takes a void * and outputs it in hex
+ *
+ * The %p hacks are to force gcc's printf warning code to skip
+ * over a pointer argument without complaining.  This does
+ * mean that the ANSI-style %p (output a void * in hex format) won't
+ * work as expected at all, but that seems to be a fair trade-off
+ * for the increased robustness of having printf-warnings work.
+ *
+ * Additionally, ap_vformatter allows for arbitrary output methods
+ * using the ap_vformatter_buff and flush_func.
+ *
+ * The ap_vformatter_buff has two elements curpos and endpos.
+ * curpos is where ap_vformatter will write the next byte of output.
+ * It proceeds writing output to curpos, and updating curpos, until
+ * either the end of output is reached, or curpos == endpos (i.e. the
+ * buffer is full).
+ *
+ * If the end of output is reached, ap_vformatter returns the
+ * number of bytes written.
+ *
+ * When the buffer is full, the flush_func is called.  The flush_func
+ * can return -1 to indicate that no further output should be attempted,
+ * and ap_vformatter will return immediately with -1.  Otherwise
+ * the flush_func should flush the buffer in whatever manner is
+ * appropriate, re-initialize curpos and endpos, and return 0.
+ *
+ * Note that flush_func is only invoked as a result of attempting to
+ * write another byte at curpos when curpos >= endpos.  So for
+ * example, it's possible when the output exactly matches the buffer
+ * space available that curpos == endpos will be true when
+ * ap_vformatter returns.
+ *
+ * ap_vformatter does not call out to any other code, it is entirely
+ * self-contained.  This allows the callers to do things which are
+ * otherwise "unsafe".  For example, ap_psprintf uses the "scratch"
+ * space at the unallocated end of a block, and doesn't actually
+ * complete the allocation until ap_vformatter returns.  ap_psprintf
+ * would be completely broken if ap_vformatter were to call anything
+ * that used a pool.  Similarly http_bprintf() uses the "scratch"
+ * space at the end of its output buffer, and doesn't actually note
+ * that the space is in use until it either has to flush the buffer
+ * or until ap_vformatter returns.
+ */
+
+typedef struct {
+    char *curpos;
+    char *endpos;
+} ap_vformatter_buff;
+
+API_EXPORT(int) ap_vformatter(int (*flush_func)(ap_vformatter_buff *),
+    ap_vformatter_buff *, const char *fmt, va_list ap);
+
+/* These are snprintf implementations based on ap_vformatter().
+ *
+ * Note that various standards and implementations disagree on the return
+ * value of snprintf, and side-effects due to %n in the formatting string.
+ * ap_snprintf behaves as follows:
+ *
+ * Process the format string until the entire string is exhausted, or
+ * the buffer fills.  If the buffer fills then stop processing immediately
+ * (so no further %n arguments are processed), and return the buffer
+ * length.  In all cases the buffer is NUL terminated. The return value
+ * is the number of characters placed in the buffer, excluding the
+ * terminating NUL. All this implies that, at most, (len-1) characters
+ * will be copied over; if the return value is >= len, then truncation
+ * occured.
+ *
+ * In no event does ap_snprintf return a negative number.
+ */
+API_EXPORT_NONSTD(int) ap_snprintf(char *buf, size_t len, const char *format,...)
+          __attribute__((format(printf,3,4)));
+API_EXPORT(int) ap_vsnprintf(char *buf, size_t len, const char *format,
+           va_list ap);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif	/* !APACHE_AP_SNPRINTF_H */

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_ajp12_worker.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_ajp12_worker.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_ajp12_worker.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,7 +20,7 @@
  *              This worker is deprecated                                  *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Based on:    jserv_ajpv12.c from Jserv                                  *
- * Version:     $Revision: 481770 $                                          *
+ * Version:     $Revision: 559467 $                                          *
  ***************************************************************************/
 
 #include "jk_ajp12_worker.h"
@@ -28,7 +28,7 @@
 #include "jk_connect.h"
 #include "jk_util.h"
 #include "jk_sockbuf.h"
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 #include "util_ebcdic.h"
 #include <string.h>
 #endif
@@ -61,11 +61,11 @@
 
 static int ajpv12_mark(ajp12_endpoint_t * p, unsigned char type);
 
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 static int ajpv12_sendasciistring(ajp12_endpoint_t * p, char *buffer);
 #endif
 
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 static int ajpv12_sendstring(ajp12_endpoint_t * p, char *buffer);
 #else
 static int ajpv12_sendstring(ajp12_endpoint_t * p, const char *buffer);
@@ -88,7 +88,7 @@
                              jk_ws_service_t *s,
                              jk_logger_t *l, int *is_error)
 {
-    ajp12_endpoint_t *p = e->endpoint_private;
+    ajp12_endpoint_t *p;
     unsigned int attempt;
     int rc = -1;
     /*
@@ -96,15 +96,20 @@
      */
 
     JK_TRACE_ENTER(l);
- 
-    if (is_error)
-        *is_error = JK_HTTP_SERVER_ERROR;
+
     if (!e || !e->endpoint_private || !s || !is_error) {
         JK_LOG_NULL_PARAMS(l);
+        if (is_error)
+            *is_error = JK_HTTP_SERVER_ERROR;
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
 
+    p = e->endpoint_private;
+
+    /* Set returned error to OK */
+    *is_error = JK_HTTP_OK;
+
     for (attempt = 0; attempt < p->worker->connect_retry_attempts;
          attempt++) {
         p->sd =
@@ -130,6 +135,7 @@
     }
     jk_log(l, JK_LOG_ERROR, "In jk_endpoint_t::service, Error sd = %d",
            p->sd);
+    *is_error = JK_HTTP_SERVER_ERROR;
 
     JK_TRACE_EXIT(l);
     return JK_FALSE;
@@ -141,7 +147,7 @@
     if (e && *e && (*e)->endpoint_private) {
         ajp12_endpoint_t *p = (*e)->endpoint_private;
         if (IS_VALID_SOCKET(p->sd)) {
-            jk_close_socket(p->sd);
+            jk_shutdown_socket(p->sd);
         }
         free(p);
         *e = NULL;
@@ -301,7 +307,7 @@
     }
 }
 
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 static int ajpv12_sendasciistring(ajp12_endpoint_t * p, const char *buffer)
 {
     int bufferlen;
@@ -320,7 +326,7 @@
     int bufferlen;
 
     if (buffer && (bufferlen = (int)strlen(buffer))) {
-#if defined(AS400) || defined(_OSD_POSIX)
+#if (defined(AS400) && !defined(AS400_UTF8)) || defined(_OSD_POSIX)
         char buf[2048];
         if (bufferlen < 2048) {
             memcpy(buf, buffer, bufferlen);
@@ -377,7 +383,7 @@
            ajpv12_sendstring(p, s->server_name) && ajpv12_sendstring(p, 0) &&   /* doc root */
            ajpv12_sendstring(p, 0) &&   /* path info */
            ajpv12_sendstring(p, 0) &&   /* path translated */
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
            ajpv12_sendasciistring(p, s->query_string) &&
 #else
            ajpv12_sendstring(p, s->query_string) &&
@@ -387,14 +393,14 @@
            ajpv12_sendstring(p, s->remote_user) &&
            ajpv12_sendstring(p, s->auth_type) &&
            ajpv12_sendint(p, s->server_port) &&
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
            ajpv12_sendasciistring(p, s->method) &&
 #else
            ajpv12_sendstring(p, s->method) &&
 #endif
            ajpv12_sendstring(p, s->req_uri) && ajpv12_sendstring(p, 0) &&       /* */
            ajpv12_sendstring(p, 0) &&   /* SCRIPT_NAME */
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
            ajpv12_sendasciistring(p, s->server_name) &&
 #else
            ajpv12_sendstring(p, s->server_name) &&
@@ -457,17 +463,20 @@
 
     if (s->content_length) {
         char buf[READ_BUF_SIZE];
-        unsigned so_far = 0;
+        jk_uint64_t so_far = 0;
 
         jk_log(l, JK_LOG_DEBUG,
                "ajpv12_handle_request, sending the request body");
 
         while (so_far < s->content_length) {
             unsigned this_time = 0;
-            unsigned to_read = s->content_length - so_far;
-            if (to_read > READ_BUF_SIZE) {
+            unsigned to_read;
+            if (s->content_length > so_far + READ_BUF_SIZE) {
                 to_read = READ_BUF_SIZE;
             }
+            else {
+                to_read = (unsigned int)(s->content_length - so_far);
+            }
 
             if (!s->read(s, buf, to_read, &this_time)) {
                 jk_log(l, JK_LOG_ERROR,
@@ -488,7 +497,7 @@
             }
             else if (this_time == 0) {
                 jk_log(l, JK_LOG_ERROR,
-                       "In ajpv12_handle_request, Error: short read. content length is %d, read %d",
+                       "In ajpv12_handle_request, Error: short read. content length is %" JK_UINT64_T_FMT ", read %" JK_UINT64_T_FMT,
                        s->content_length, so_far);
                 return JK_FALSE;
             }
@@ -518,7 +527,7 @@
         char *line = NULL;
         char *name = NULL;
         char *value = NULL;
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
         char *lasts;
 #endif
 
@@ -527,7 +536,7 @@
                    "ajpv12_handle_response, error reading header line");
             return JK_FALSE;
         }
-#if defined(AS400) || defined(_OSD_POSIX)
+#if (defined(AS400) && !defined(AS400_UTF8)) || defined(_OSD_POSIX)
         jk_xlate_from_ascii(line, strlen(line));
 #endif
 
@@ -539,7 +548,7 @@
         }
 
         name = line;
-        while (isspace(*name) && *name) {
+        while (isspace((int)(*name)) && *name) {
             name++;             /* Skip leading white chars */
         }
         if (!*name) {           /* Empty header name */
@@ -554,7 +563,7 @@
         }
         *value = '\0';
         value++;
-        while (isspace(*value) && *value) {
+        while (isspace((int)(*value)) && *value) {
             value++;            /* Skip leading white chars */
         }
         if (!*value) {          /* Empty header value */
@@ -566,7 +575,7 @@
         jk_log(l, JK_LOG_DEBUG, "ajpv12_handle_response, read %s=%s", name,
                value);
         if (0 == strcmp("Status", name)) {
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
             char *numeric = strtok_r(value, " \t", &lasts);
 #else
             char *numeric = strtok(value, " \t");
@@ -578,7 +587,7 @@
                        "ajpv12_handle_response, invalid status code");
                 return JK_FALSE;
             }
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
             reason = jk_pool_strdup(s->pool, strtok_r(NULL, " \t", &lasts));
 #else
             reason = jk_pool_strdup(s->pool, strtok(NULL, " \t"));

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_ajp13.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_ajp13.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_ajp13.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -18,7 +18,7 @@
 /***************************************************************************
  * Description: Experimental bi-directionl protocol handler.               *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 483021 $                                           *
+ * Version:     $Revision: 562194 $                                           *
  ***************************************************************************/
 #ifndef JK_AJP13_H
 #define JK_AJP13_H
@@ -45,6 +45,8 @@
 #define JK_CLIENT_RD_ERROR          (-6)
 #define JK_CLIENT_WR_ERROR          (-7)
 #define JK_STATUS_ERROR             (-8)
+#define JK_STATUS_FATAL_ERROR       (-9)
+#define JK_REPLY_TIMEOUT            (-10)
 
 #define AJP13_MAX_SEND_BODY_SZ      (DEF_BUFFER_SZ - 6)
 #define AJP13_DEF_TIMEOUT           (0) /* Idle timout for pooled connections */

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_ajp_common.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_ajp_common.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_ajp_common.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: common stuff for bi-directional protocols ajp13/ajp14.     *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Henri Gomez <hgomez at apache.org>                            *
- * Version:     $Revision: 500805 $                                          *
+ * Version:     $Revision: 562194 $                                          *
  ***************************************************************************/
 
 
@@ -29,7 +29,7 @@
 #include "jk_ajp14.h"
 #include "jk_ajp_common.h"
 #include "jk_connect.h"
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 #include "util_ebcdic.h"
 #endif
 #if defined(NETWARE) && defined(__NOVELL_LIBC__)
@@ -252,8 +252,11 @@
     if (len < 4 || len > 15)
         return UNKNOWN_METHOD;
 
-    while (*p)
-        header[i++] = toupper((unsigned char)*p++);
+    while (*p) {
+        header[i++] = toupper((unsigned char)*p);
+        p++;
+    }
+
     header[i] = '\0';
     p = &header[1];
 
@@ -446,7 +449,7 @@
     }
     if (s->query_string) {
         if (jk_b_append_byte(msg, SC_A_QUERY_STRING) ||
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
             jk_b_append_asciistring(msg, s->query_string)) {
 #else
             jk_b_append_string(msg, s->query_string)) {
@@ -594,7 +597,7 @@
 
     d->msg = (char *)jk_b_get_string(msg);
     if (d->msg) {
-#if defined(AS400) || defined(_OSD_POSIX)
+#if (defined(AS400) && !defined(AS400_UTF8)) || defined(_OSD_POSIX)
         jk_xlate_from_ascii(d->msg, strlen(d->msg));
 #endif
     }
@@ -642,7 +645,7 @@
                         JK_TRACE_EXIT(l);
                         return JK_FALSE;
                     }
-#if defined(AS400) || defined(_OSD_POSIX)
+#if (defined(AS400) && !defined(AS400_UTF8)) || defined(_OSD_POSIX)
                     jk_xlate_from_ascii(d->header_names[i],
                                         strlen(d->header_names[i]));
 #endif
@@ -657,7 +660,7 @@
                     return JK_FALSE;
                 }
 
-#if defined(AS400) || defined(_OSD_POSIX)
+#if (defined(AS400) && !defined(AS400_UTF8)) || defined(_OSD_POSIX)
                 jk_xlate_from_ascii(d->header_values[i],
                                     strlen(d->header_values[i]));
 #endif
@@ -681,7 +684,7 @@
 static void ajp_reset_endpoint(ajp_endpoint_t * ae, jk_logger_t *l)
 {
     if (IS_VALID_SOCKET(ae->sd) && !ae->reuse) {
-        jk_close_socket(ae->sd);
+        jk_shutdown_socket(ae->sd);
         if (JK_IS_DEBUG_LEVEL(l))
             jk_log(l, JK_LOG_DEBUG,
             "reset socket with sd = %u", ae->sd );
@@ -720,13 +723,14 @@
 {
     int rc;
     ajp_worker_t *aw = ae->worker;
-    jk_sock_t sock = ae->sd;
+    jk_sock_t sock;
 
-    /* Mark existing endpoint socket as closed */
-    ae->sd = JK_INVALID_SOCKET;
     JK_ENTER_CS(&aw->cs, rc);
     if (rc) {
         unsigned int i;
+        sock = ae->sd;
+        /* Mark existing endpoint socket as closed */
+        ae->sd = JK_INVALID_SOCKET;
         for (i = 0; i < aw->ep_cache_sz; i++) {
             /* Find cache slot with usable socket */
             if (aw->ep_cache[i] && IS_VALID_SOCKET(aw->ep_cache[i]->sd)) {
@@ -736,10 +740,10 @@
             }
         }
         JK_LEAVE_CS(&aw->cs, rc);
+        /* Close previous socket */
+        if (IS_VALID_SOCKET(sock))
+            jk_shutdown_socket(sock);
     }
-    /* Close previous socket */
-    if (IS_VALID_SOCKET(sock))
-        jk_close_socket(sock);
 }
 
 /*
@@ -792,7 +796,18 @@
 
     JK_TRACE_ENTER(l);
     msg = jk_b_new(&ae->pool);
-    jk_b_set_buffer_size(msg, 16);      /* 16 is way too large but I'm lazy :-) */
+    if (!msg) {
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message");
+        JK_TRACE_EXIT(l);
+        return JK_FALSE;
+    }
+    if (jk_b_set_buffer_size(msg, 16)) {
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message buffer");
+        JK_TRACE_EXIT(l);
+        return JK_FALSE;
+    }
     jk_b_reset(msg);
     jk_b_append_byte(msg, AJP13_CPING_REQUEST);
 
@@ -909,7 +924,7 @@
 
     if ((rc = jk_tcp_socket_sendfull(ae->sd, msg->buf,
                                      msg->len)) > 0) {
-        ae->endpoint.wr += msg->len;
+        ae->endpoint.wr += (jk_uint64_t)msg->len;
         JK_TRACE_EXIT(l);
         ae->last_errno = 0;
         return JK_TRUE;
@@ -958,7 +973,7 @@
         return JK_FALSE;
     }
     ae->last_errno = 0;
-    ae->endpoint.rd += rc;
+    ae->endpoint.rd += (jk_uint64_t)rc;
     header = ((unsigned int)head[0] << 8) | head[1];
 
     if (ae->proto == AJP13_PROTO) {
@@ -1036,7 +1051,7 @@
         }
     }
     ae->last_errno = 0;
-    ae->endpoint.rd += rc;
+    ae->endpoint.rd += (jk_uint64_t)rc;
 
     if (ae->proto == AJP13_PROTO) {
         if (JK_IS_DEBUG_LEVEL(l))
@@ -1184,7 +1199,7 @@
             jk_log(l, JK_LOG_DEBUG,
                    "(%s) socket %d is not connected any more (errno=%d)",
                    ae->worker->name, ae->sd, errno);
-            jk_close_socket(ae->sd);
+            jk_shutdown_socket(ae->sd);
             ae->sd = JK_INVALID_SOCKET;
             err = 1;
         }
@@ -1212,9 +1227,18 @@
         if (err ||
             ((rc = ajp_connection_tcp_send_message(ae, op->request, l)) != JK_TRUE)) {
             if (rc != JK_FATAL_ERROR) {
-                jk_log(l, JK_LOG_INFO,
-                       "(%s) error sending request. Will try another pooled connection",
-                       ae->worker->name);
+                if (err == 1) {
+                    jk_log(l, JK_LOG_DEBUG,
+                           "(%s) failed sending request. "
+                           "Will try another pooled connection",
+                            ae->worker->name);
+                }
+                else {
+                    jk_log(l, JK_LOG_INFO,
+                           "(%s) error sending request. "
+                           "Will try another pooled connection",
+                            ae->worker->name);
+                }
                 ajp_next_connection(ae, l);
             }
             else {
@@ -1222,7 +1246,7 @@
                 jk_log(l, JK_LOG_ERROR,
                        "(%s) error sending request. Unrecoverable operation",
                        ae->worker->name);
-                jk_close_socket(ae->sd);
+                jk_shutdown_socket(ae->sd);
                 ae->sd = JK_INVALID_SOCKET;
                 JK_TRACE_EXIT(l);
                 return JK_FALSE;
@@ -1236,13 +1260,27 @@
      * If we failed to reuse a connection, try to reconnect.
      */
     if (!IS_VALID_SOCKET(ae->sd)) {
-        if (err) {
-            /* XXX: If err is set, the tomcat is either dead or disconnected */
+        if (err == 1) {
+            /* If err is set, the tomcat is disconnected */
             jk_log(l, JK_LOG_INFO,
-                   "(%s) all endpoints are %s",
-                   ae->worker->name, err == 1 ? "disconnected" : "dead");
+                   "(%s) all endpoints are disconnected", ae->worker->name);
+            JK_TRACE_EXIT(l);
+            return JK_FALSE;
+        }
+        else if (err) {
+            /* If err is set, the tomcat is dead */
             jk_log(l, JK_LOG_INFO,
-                   "(%s) increase the backend idle connection timeout or the connection_pool_minsize",
+                   "(%s) all endpoints are dead", ae->worker->name);
+            /* TODO: What is the purpose of the following log message?
+             *       IMO it is very confusing and does not reflect the
+             *       real reason (CPING/CPONG failed) of the error.
+             *       Further more user might deliberately set the
+             *       connectionTimeout and this is normal operational
+             *       message in that case.
+             */
+            jk_log(l, JK_LOG_INFO,
+                   "(%s) increase the backend idle connection "
+                   "timeout or the connection_pool_minsize",
                    ae->worker->name);
             JK_TRACE_EXIT(l);
             return JK_FALSE;
@@ -1257,7 +1295,7 @@
              */
             if (ajp_connection_tcp_send_message(ae, op->request, l) != JK_TRUE) {
                 /* Close the socket if unable to send request */
-                jk_close_socket(ae->sd);
+                jk_shutdown_socket(ae->sd);
                 ae->sd = JK_INVALID_SOCKET;
                 jk_log(l, JK_LOG_INFO,
                        "(%s) error sending request on a fresh connection (errno=%d)",
@@ -1268,7 +1306,7 @@
         }
         else {
             /* Close the socket if unable to connect */
-            jk_close_socket(ae->sd);
+            jk_shutdown_socket(ae->sd);
             ae->sd = JK_INVALID_SOCKET;
             jk_log(l, JK_LOG_INFO,
                    "(%s) error connecting to the backend server (errno=%d)",
@@ -1285,8 +1323,9 @@
 
     if (JK_IS_DEBUG_LEVEL(l))
         jk_log(l, JK_LOG_DEBUG,
-               "request body to send %d - request body to resend %d",
-               ae->left_bytes_to_send, op->reply->len - AJP_HEADER_LEN);
+               "(%s) request body to send %" JK_UINT64_T_FMT " - request body to resend %d",
+               ae->worker->name, ae->left_bytes_to_send,
+               op->reply->len - AJP_HEADER_LEN);
 
     /*
      * POST recovery job is done here and will work when data to
@@ -1301,7 +1340,7 @@
     if (postlen > AJP_HEADER_LEN) {
         if (ajp_connection_tcp_send_message(ae, op->post, l) != JK_TRUE) {
             /* Close the socket if unable to send request */
-            jk_close_socket(ae->sd);
+            jk_shutdown_socket(ae->sd);
             ae->sd = JK_INVALID_SOCKET;
             jk_log(l, JK_LOG_ERROR, "(%s) failed resending request body (%d)",
                    ae->worker->name, postlen);
@@ -1321,7 +1360,7 @@
         if (postlen > AJP_HEADER_LEN) {
             if (ajp_connection_tcp_send_message(ae, s->reco_buf, l) != JK_TRUE) {
                 /* Close the socket if unable to send request */
-                jk_close_socket(ae->sd);
+                jk_shutdown_socket(ae->sd);
                 ae->sd = JK_INVALID_SOCKET;
                 jk_log(l, JK_LOG_ERROR,
                        "(%s) failed resending request body (lb mode) (%d)",
@@ -1351,9 +1390,9 @@
          */
 
         if (ae->left_bytes_to_send > 0) {
-            int len = ae->left_bytes_to_send;
-            if (len > AJP13_MAX_SEND_BODY_SZ) {
-                len = AJP13_MAX_SEND_BODY_SZ;
+            int len = AJP13_MAX_SEND_BODY_SZ;
+            if (ae->left_bytes_to_send < (jk_uint64_t)AJP13_MAX_SEND_BODY_SZ) {
+                len = (int)ae->left_bytes_to_send;
             }
             if ((len = ajp_read_into_msg_buff(ae, s, op->post, len, l)) < 0) {
                 /* the browser stop sending data, no need to recover */
@@ -1368,10 +1407,10 @@
                 s->reco_status = RECO_FILLED;
             }
 
-            s->content_read = len;
+            s->content_read = (jk_uint64_t)len;
             if (ajp_connection_tcp_send_message(ae, op->post, l) != JK_TRUE) {
                 /* Close the socket if unable to send request */
-                jk_close_socket(ae->sd);
+                jk_shutdown_socket(ae->sd);
                 ae->sd = JK_INVALID_SOCKET;
                 jk_log(l, JK_LOG_ERROR, "(%s) error sending request body",
                        ae->worker->name);
@@ -1384,6 +1423,21 @@
     return (JK_TRUE);
 }
 
+
+static int is_http_status_fail(ajp_worker_t *w, int status)
+{
+    unsigned int i;
+    int soft_status = -1 * status;
+    for (i = 0; i < w->http_status_fail_num; i++) {
+        if (w->http_status_fail[i] == status)
+            return 1;
+        else if (w->http_status_fail[i] == soft_status)
+            return -1;
+    }
+    return 0;
+}
+
+
 /*
  * What to do with incoming data (dispatcher)
  */
@@ -1399,6 +1453,7 @@
     switch (code) {
     case JK_AJP13_SEND_HEADERS:
         {
+            int rc;
             jk_res_data_t res;
             if (!ajp_unmarshal_response(msg, &res, ae, l)) {
                 jk_log(l, JK_LOG_ERROR,
@@ -1406,13 +1461,22 @@
                 JK_TRACE_EXIT(l);
                 return JK_AJP13_ERROR;
             }
+            r->http_response_status = res.status;
+            rc  = is_http_status_fail(ae->worker, res.status);
+            if (rc > 0) {
+                JK_TRACE_EXIT(l);
+                return JK_STATUS_FATAL_ERROR;
+            }
+            else if (rc < 0) {
+                JK_TRACE_EXIT(l);
+                return JK_STATUS_ERROR;
+            }
             r->start_response(r, res.status, res.msg,
                               (const char *const *)res.header_names,
                               (const char *const *)res.header_values,
                               res.num_headers);
             if (r->flush && r->flush_header)
                 r->flush(r);
-            r->http_response_status = res.status;
         }
         return JK_AJP13_SEND_HEADERS;
 
@@ -1442,7 +1506,7 @@
                 if (r->flush)
                     r->flush(r);
             }
-            else {            
+            else {
                 if (!r->write(r, msg->buf + msg->pos, len)) {
                     jk_log(l, JK_LOG_INFO,
                            "Writing to client aborted or client network problems");
@@ -1465,13 +1529,13 @@
             if (len > AJP13_MAX_SEND_BODY_SZ) {
                 len = AJP13_MAX_SEND_BODY_SZ;
             }
-            if ((unsigned int)len > ae->left_bytes_to_send) {
-                len = ae->left_bytes_to_send;
+            if ((jk_uint64_t)len > ae->left_bytes_to_send) {
+                len = (int)ae->left_bytes_to_send;
             }
 
             /* the right place to add file storage for upload */
             if ((len = ajp_read_into_msg_buff(ae, r, pmsg, len, l)) >= 0) {
-                r->content_read += len;
+                r->content_read += (jk_uint64_t)len;
                 JK_TRACE_EXIT(l);
                 return JK_AJP13_HAS_RESPONSE;
             }
@@ -1552,7 +1616,7 @@
     while (1) {
         int rc = 0;
 
-        /* If we set a reply timeout, check it something is available */
+        /* If we set a reply timeout, check if something is available */
         if (p->worker->reply_timeout > 0) {
             if (ajp_is_input_event(p, p->worker->reply_timeout, l) ==
                 JK_FALSE) {
@@ -1569,8 +1633,22 @@
                         op->recoverable = JK_FALSE;
                 }
 
+                /*
+                 * We revert back to recoverable, if recovery_opts allow it for GET or HEAD
+                 */
+                if (op->recoverable == JK_FALSE) {
+                    if (p->worker->recovery_opts & RECOVER_ALWAYS_HTTP_HEAD) {
+                        if (!strcmp(s->method, "HEAD"))
+                            op->recoverable = JK_TRUE;
+                    }
+                    else if (p->worker->recovery_opts & RECOVER_ALWAYS_HTTP_GET) {
+                        if (!strcmp(s->method, "GET"))
+                            op->recoverable = JK_TRUE;
+                    }
+                }
+
                 JK_TRACE_EXIT(l);
-                return JK_FALSE;
+                return JK_REPLY_TIMEOUT;
             }
         }
 
@@ -1595,7 +1673,22 @@
                  */
                 if (p->worker->recovery_opts & RECOVER_ABORT_IF_TCGETREQUEST)
                     op->recoverable = JK_FALSE;
+
                 /*
+                 * We revert back to recoverable, if recovery_opts allow it for GET or HEAD
+                 */
+                if (op->recoverable == JK_FALSE) {
+                    if (p->worker->recovery_opts & RECOVER_ALWAYS_HTTP_HEAD) {
+                        if (!strcmp(s->method, "HEAD"))
+                            op->recoverable = JK_TRUE;
+                    }
+                    else if (p->worker->recovery_opts & RECOVER_ALWAYS_HTTP_GET) {
+                        if (!strcmp(s->method, "GET"))
+                            op->recoverable = JK_TRUE;
+                    }
+                }
+
+                /*
                  * we want to display the webservers error page, therefore
                  * we return JK_FALSE
                  */
@@ -1627,6 +1720,20 @@
                 if (p->worker->recovery_opts & RECOVER_ABORT_IF_TCSENDHEADER)
                     op->recoverable = JK_FALSE;
 
+                /*
+                 * We revert back to recoverable, if recovery_opts allow it for GET or HEAD
+                 */
+                if (op->recoverable == JK_FALSE) {
+                    if (p->worker->recovery_opts & RECOVER_ALWAYS_HTTP_HEAD) {
+                        if (!strcmp(s->method, "HEAD"))
+                            op->recoverable = JK_TRUE;
+                    }
+                    else if (p->worker->recovery_opts & RECOVER_ALWAYS_HTTP_GET) {
+                        if (!strcmp(s->method, "GET"))
+                            op->recoverable = JK_TRUE;
+                    }
+                }
+
                 JK_TRACE_EXIT(l);
                 return JK_FALSE;
             }
@@ -1640,13 +1747,12 @@
             return JK_TRUE;
         }
         else if (JK_AJP13_SEND_HEADERS == rc) {
-            if (p->worker->http_status_fail &&
-                (p->worker->http_status_fail == s->http_response_status)) {
-                JK_TRACE_EXIT(l);
-                return JK_STATUS_ERROR;
-            }
             headeratclient = JK_TRUE;
         }
+        else if (JK_STATUS_ERROR == rc || JK_STATUS_FATAL_ERROR == rc) {
+            JK_TRACE_EXIT(l);
+            return rc;
+        }
         else if (JK_AJP13_HAS_RESPONSE == rc) {
             /*
              * in upload-mode there is no second chance since
@@ -1663,7 +1769,7 @@
                 jk_log(l, JK_LOG_ERROR,
                        "(%s) Tomcat is down or network problems",
                         p->worker->name);
-                jk_close_socket(p->sd);
+                jk_shutdown_socket(p->sd);
                 p->sd = JK_INVALID_SOCKET;
                 JK_TRACE_EXIT(l);
                 return JK_FALSE;
@@ -1672,7 +1778,7 @@
         else if (JK_AJP13_ERROR == rc) {
             /*
              * Tomcat has send invalid AJP message.
-             * Locadbalancer if present will decide if
+             * Loadbalancer if present will decide if
              * failover is possible.
              */
             JK_TRACE_EXIT(l);
@@ -1706,7 +1812,7 @@
         else if (JK_SERVER_ERROR == rc) {
             /*
              * Tomcat has stop talking to us, so get out.
-             * Locadbalancer if present will decide if
+             * Loadbalancer if present will decide if
              * failover is possible.
              */
             JK_TRACE_EXIT(l);
@@ -1733,32 +1839,76 @@
                                  jk_ws_service_t *s,
                                  jk_logger_t *l, int *is_error)
 {
-    int i, err;
+    int i;
+    int err = JK_TRUE;
     ajp_operation_t oper;
     ajp_operation_t *op = &oper;
     ajp_endpoint_t *p;
 
     JK_TRACE_ENTER(l);
 
-    if (is_error)
-        *is_error = JK_HTTP_SERVER_ERROR;
     if (!e || !e->endpoint_private || !s || !is_error) {
         JK_LOG_NULL_PARAMS(l);
+        if (is_error)
+            *is_error = JK_HTTP_SERVER_ERROR;
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
 
     p = e->endpoint_private;
+
+    /* Set returned error to OK */
+    *is_error = JK_HTTP_OK;
+
     op->request = jk_b_new(&(p->pool));
-    jk_b_set_buffer_size(op->request, p->worker->max_packet_size);
+    if (!op->request) {
+        *is_error = JK_HTTP_SERVER_ERROR;
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message");
+        JK_TRACE_EXIT(l);
+        return JK_SERVER_ERROR;
+    }
+    if (jk_b_set_buffer_size(op->request, p->worker->max_packet_size)) {
+        *is_error = JK_HTTP_SERVER_ERROR;
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message buffer");
+        JK_TRACE_EXIT(l);
+        return JK_SERVER_ERROR;
+    }
     jk_b_reset(op->request);
 
     op->reply = jk_b_new(&(p->pool));
-    jk_b_set_buffer_size(op->reply, p->worker->max_packet_size);
+    if (!op->reply) {
+        *is_error = JK_HTTP_SERVER_ERROR;
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message");
+        JK_TRACE_EXIT(l);
+        return JK_SERVER_ERROR;
+    }
+    if (jk_b_set_buffer_size(op->reply, p->worker->max_packet_size)) {
+        *is_error = JK_HTTP_SERVER_ERROR;
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message buffer");
+        JK_TRACE_EXIT(l);
+        return JK_SERVER_ERROR;
+    }
     jk_b_reset(op->reply);
 
     op->post = jk_b_new(&(p->pool));
-    jk_b_set_buffer_size(op->post, p->worker->max_packet_size);
+    if (!op->post) {
+        *is_error = JK_HTTP_SERVER_ERROR;
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message");
+        JK_TRACE_EXIT(l);
+        return JK_SERVER_ERROR;
+    }
+    if (jk_b_set_buffer_size(op->post, p->worker->max_packet_size)) {
+        *is_error = JK_HTTP_SERVER_ERROR;
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message buffer");
+        JK_TRACE_EXIT(l);
+        return JK_SERVER_ERROR;
+    }
     jk_b_reset(op->post);
 
     op->recoverable = JK_TRUE;
@@ -1798,7 +1948,7 @@
         err = ajp_send_request(e, s, l, p, op);
         if (err == JK_TRUE) {
 
-            /* If we have the no recoverable error, it's probably because
+            /* If we have an unrecoverable error, it's probably because
              * the sender (browser) stopped sending data before the end
              * (certainly in a big post)
              */
@@ -1861,20 +2011,20 @@
                 JK_TRACE_EXIT(l);
                 return JK_SERVER_ERROR;
             }
-            else if (err == JK_STATUS_ERROR) {
+            else if (err == JK_STATUS_ERROR || err == JK_STATUS_FATAL_ERROR) {
                 jk_log(l, JK_LOG_INFO,
-                       "(%s) request failed, "
+                       "(%s) request failed%s, "
                        "because of response status %d, "
                        "recoverable operation attempt=%d",
                        p->worker->name,
-                       p->worker->http_status_fail, i);
-                JK_TRACE_EXIT(l);
+                       err == JK_STATUS_FATAL_ERROR ? "" : " (soft)",
+                       s->http_response_status, i);
                 if (i >= JK_RETRIES) {
                     jk_sleep(JK_SLEEP_DEF);
                 }
             }
             else {
-                /* if we can't get reply, check if no recover flag was set
+                /* if we can't get reply, check if unrecoverable flag was set
                  * if is_recoverable_error is cleared, we have started
                  * receiving upload data and we must consider that
                  * operation is no more recoverable
@@ -1885,6 +2035,11 @@
                            "(%s) receiving reply from tomcat failed "
                            "without recovery in send loop attempt=%d",
                            p->worker->name, i);
+                    if (err == JK_REPLY_TIMEOUT) {
+                        *is_error = JK_HTTP_GATEWAY_TIME_OUT;
+                        JK_TRACE_EXIT(l);
+                        return JK_REPLY_TIMEOUT;
+                    }
                     JK_TRACE_EXIT(l);
                     return JK_FALSE;
                 }
@@ -1944,6 +2099,17 @@
            "or is listening on the wrong port",
            p->worker->name);
 
+    if (err == JK_STATUS_ERROR) {
+        JK_TRACE_EXIT(l);
+        return JK_STATUS_ERROR;
+    }
+
+    if (err == JK_REPLY_TIMEOUT) {
+        *is_error = JK_HTTP_GATEWAY_TIME_OUT;
+        JK_TRACE_EXIT(l);
+        return JK_REPLY_TIMEOUT;
+    }
+
     JK_TRACE_EXIT(l);
     return JK_FALSE;
 }
@@ -1992,7 +2158,7 @@
                 return JK_TRUE;
             }
             jk_log(l, JK_LOG_ERROR,
-                   "can't resolve tomcat address %s", host);
+                   "can't resolve tomcat address %s", p->host);
         }
         jk_log(l, JK_LOG_ERROR,
                "invalid host and port %s %d",
@@ -2095,8 +2261,11 @@
         p->max_packet_size =
             jk_get_max_packet_size(props, p->name);
 
-        p->http_status_fail = jk_get_worker_fail_on_status(props, p->name);
+        p->http_status_fail_num = jk_get_worker_fail_on_status(props, p->name,
+                                     &p->http_status_fail[0],
+                                     JK_MAX_HTTP_STATUS_FAILS);
 
+
         pThis->retries =
             jk_get_worker_retries(props, p->name,
                                   JK_RETRIES);
@@ -2236,7 +2405,7 @@
             int i;
             jk_sock_t sock = JK_INVALID_SOCKET;
 
-            /* If we are going to close the connection, then park the socket so 
+            /* If we are going to close the connection, then park the socket so
                we can shut it down nicely rather than letting ajp_reset_endpoint kill it */
             if (IS_VALID_SOCKET(p->sd) && !p->reuse) {
                 if (JK_IS_DEBUG_LEVEL(l))

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_ajp_common.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_ajp_common.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_ajp_common.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: common stuff for bi-directional protocol ajp13/ajp14.      *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Henri Gomez <hgomez at apache.org>                            *
- * Version:     $Revision: 483021 $                                          *
+ * Version:     $Revision: 550221 $                                          *
  ***************************************************************************/
 
 #ifndef JK_AJP_COMMON_H
@@ -197,12 +197,14 @@
 #define AJP_DEF_RECOVERY_OPTS     (0)   /* NO RECOVERY / NO    */
 #define AJP_DEF_SOCKET_TIMEOUT    (0)  /* No timeout */
 
-#define RECOVER_ABORT_IF_TCGETREQUEST    0x0001 /* DONT RECOVER IF TOMCAT FAIL AFTER RECEIVING REQUEST */
-#define RECOVER_ABORT_IF_TCSENDHEADER    0x0002 /* DONT RECOVER IF TOMCAT FAIL AFTER SENDING HEADERS */
+#define RECOVER_ABORT_IF_TCGETREQUEST    0x0001 /* DON'T RECOVER IF TOMCAT FAILS AFTER RECEIVING REQUEST */
+#define RECOVER_ABORT_IF_TCSENDHEADER    0x0002 /* DON'T RECOVER IF TOMCAT FAILS AFTER SENDING HEADERS */
 #define RECOVER_ABORT_IF_CLIENTERROR     0x0004 /* CLOSE THE SOCKET IN CASE OF CLIENT ERROR */
+#define RECOVER_ALWAYS_HTTP_HEAD         0x0008 /* RECOVER HTTP HEAD REQUESTS, EVEN IF ABORT OPTIONS ARE SET */
+#define RECOVER_ALWAYS_HTTP_GET          0x0010 /* RECOVER HTTP GET REQUESTS, EVEN IF ABORT OPTIONS ARE SET */
 
+#define JK_MAX_HTTP_STATUS_FAILS   32   /* Should be enough for most 400 and 500 statuses */
 
-
 struct jk_res_data
 {
     int status;
@@ -291,7 +293,8 @@
     /* 
      * HTTP status that will cause failover (0 means disabled)
      */
-     int http_status_fail;
+     unsigned int http_status_fail_num;
+     int http_status_fail[JK_MAX_HTTP_STATUS_FAILS];
 };
 
 
@@ -312,7 +315,7 @@
 
     jk_endpoint_t endpoint;
 
-    unsigned int left_bytes_to_send;
+    jk_uint64_t left_bytes_to_send;
 
     /* time of the last request
        handled by this endpoint */

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_connect.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_connect.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_connect.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,7 +23,7 @@
  * @package jk_connect
  * @author      Gal Shachor <shachor at il.ibm.com>
  * @author      Mladen Turk <mturk at apache.org>
- * @version     $Revision: 500805 $
+ * @version     $Revision: 555199 $
  */
 
 
@@ -222,6 +222,27 @@
 }
 #endif
 
+
+#ifdef AS400_UTF8
+
+/*
+ *  i5/OS V5R4 need EBCDIC for its runtime calls but APR/APACHE works in UTF
+ */
+in_addr_t jk_inet_addr(const char * addrstr)
+{
+    in_addr_t addr;
+    char *ptr;
+
+    ptr = (char *)malloc(strlen(addrstr) + 1);
+    jk_ascii2ebcdic((char *)addrstr, ptr);
+    addr = inet_addr(ptr);
+    free(ptr);
+
+    return(addr);
+}
+
+#endif
+
 /** resolve the host IP */
 
 int jk_resolve(const char *host, int port, struct sockaddr_in *rc)
@@ -236,7 +257,7 @@
 
     /* Check if we only have digits in the string */
     for (x = 0; host[x] != '\0'; x++) {
-        if (!isdigit(host[x]) && host[x] != '.') {
+        if (!isdigit((int)(host[x])) && host[x] != '.') {
             break;
         }
     }
@@ -270,8 +291,9 @@
             return JK_FALSE;
 
         apr_sockaddr_ip_get(&remote_ipaddr, remote_sa);
-        laddr.s_addr = inet_addr(remote_ipaddr);
 
+        laddr.s_addr = jk_inet_addr(remote_ipaddr);
+
 #else /* HAVE_APR */
 
         /* XXX : WARNING : We should really use gethostbyname_r in multi-threaded env */
@@ -291,7 +313,7 @@
     }
     else {
         /* If we found only digits we use inet_addr() */
-        laddr.s_addr = inet_addr(host);
+        laddr.s_addr = jk_inet_addr(host);
     }
     memcpy(&(rc->sin_addr), &laddr, sizeof(laddr));
 
@@ -473,14 +495,13 @@
 #else
         return close(s);
 #endif
-
     return -1;
 }
 
 #ifndef MAX_SECS_TO_LINGER
-#define MAX_SECS_TO_LINGER 16
+#define MAX_SECS_TO_LINGER 30
 #endif
-#define SECONDS_TO_LINGER  1
+#define SECONDS_TO_LINGER  2
 
 #ifndef SHUT_WR
 #ifdef SD_SEND
@@ -491,15 +512,12 @@
 #endif
 int jk_shutdown_socket(jk_sock_t s)
 {
-    unsigned char dummy[512];
-    int nbytes;
-    int ttl = 0;
+    char dummy[512];
     int rc = 0;
-#if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
-    int tmout = SECONDS_TO_LINGER * 1000;
-#elif defined(SO_RCVTIMEO) && defined(USE_SO_RCVTIMEO)
+    fd_set rs;
     struct timeval tv;
-#endif
+    time_t start = time(NULL);
+
     if (!IS_VALID_SOCKET(s))
         return -1;
 
@@ -509,29 +527,41 @@
     if (shutdown(s, SHUT_WR)) {
         return jk_close_socket(s);
     }
-#if defined(WIN32)  || (defined(NETWARE) && defined(__NOVELL_LIBC__))
-    if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO,
-                   (const char *) &tmout, sizeof(int)) == 0)
-        rc = 1;
-#elif defined(SO_RCVTIMEO) && defined(USE_SO_RCVTIMEO)
-    tv.tv_sec  = SECONDS_TO_LINGER;
-    tv.tv_usec = 0;
-    if (setsockopt(s, SOL_SOCKET, SO_RCVTIMEO,
-                   (const void *) &tv, sizeof(tv)))
-        rc = 1;
+
+    /* Set up to wait for readable data on socket... */
+    FD_ZERO(&rs);
+
+    do {
+        /* Read all data from the peer until we reach "end-of-file"
+         * (FIN from peer) or we've exceeded our overall timeout. If the
+         * backend does not send us bytes within 2 seconds
+         * (a value pulled from Apache 1.3 which seems to work well),
+         * close the connection.
+         */
+        FD_SET(s, &rs);
+        tv.tv_sec  = SECONDS_TO_LINGER;
+        tv.tv_usec = 0;
+
+        if (select((int)s + 1, &rs, NULL, NULL, &tv) > 0) {
+            do {
+#if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
+                rc = recv(s, &dummy[0], sizeof(dummy), 0);
+                /* Assuming SOCKET_ERROR is -1 on NETWARE too */
+                if (rc == SOCKET_ERROR)
+                    errno = WSAGetLastError() - WSABASEERR;
+#else
+                rc = read(s, &dummy[0], sizeof(dummy));
 #endif
-    /* Read all data from the peer until we reach "end-of-file" (FIN
-     * from peer) or we've exceeded our overall timeout. If the client does
-     * not send us bytes within 16 second, close the connection.
-     */
-    while (rc) {
-        nbytes = jk_tcp_socket_recvfull(s, dummy, sizeof(dummy));
-        if (nbytes <= 0)
+            } while (rc == -1 && (errno == EINTR || errno == EAGAIN));
+
+            if (rc <= 0)
+                break;
+        }
+        else
             break;
-        ttl += SECONDS_TO_LINGER;
-        if (ttl > MAX_SECS_TO_LINGER)
-            break;
-    }
+
+    } while (difftime(time(NULL), start) < MAX_SECS_TO_LINGER);
+
     return jk_close_socket(s);
 }
 
@@ -632,15 +662,19 @@
     FD_ZERO(&fd);
     FD_SET(sock, &fd);
 
-    /* Wait one microsecond */
+    /* Initially test the socket without any blocking.
+     */
     tv.tv_sec  = 0;
-    tv.tv_usec = 1;
-    
+    tv.tv_usec = 0;
+
     do {
         rc = select((int)sock + 1, &fd, NULL, NULL, &tv);
 #if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
         errno = WSAGetLastError() - WSABASEERR;
-#endif        
+#endif
+        /* Wait one microsecond on next select, if EINTR */
+        tv.tv_sec  = 0;
+        tv.tv_usec = 1;
     } while (rc == -1 && errno == EINTR);
 
     if (rc == 0) {
@@ -663,7 +697,7 @@
         if (ioctl(sock, FIONREAD, (void*)&nr) == 0) {
             return nr == 0 ? 0 : 1;
         }
-#endif        
+#endif
     }
 
     return 0;

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_connect.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_connect.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_connect.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -18,7 +18,7 @@
 /***************************************************************************
  * Description: Socket connections header file                             *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 466585 $                                               *
+ * Version:     $Revision: 531819 $                                               *
  ***************************************************************************/
 
 #ifndef JK_CONNECT_H
@@ -56,6 +56,17 @@
 
 int jk_is_socket_connected(jk_sock_t sd);
 
+
+/***
+ * i5/OS V5R4 need ASCII<->EBCDIC translation for inet_addr() call
+ */
+#if !defined(AS400_UTF8)
+
+#define jk_inet_addr inet_addr
+
+#endif
+
+
 #ifdef __cplusplus
 }
 #endif                          /* __cplusplus */

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_global.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_global.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_global.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,20 +19,15 @@
  * Description: Global definitions and include files that should exist     *
  *              anywhere                                                   *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 502649 $                                               *
+ * Version:     $Revision: 560736 $                                               *
  ***************************************************************************/
 
 #ifndef JK_GLOBAL_H
 #define JK_GLOBAL_H
 
-#ifndef NETWARE
-#if !defined(WIN32) && !defined(AS400)
+#if !defined(WIN32) && !defined(AS400) && !defined(NETWARE)
 #include "portable.h"
-#else
-#define HAVE_VSNPRINTF
-#define HAVE_SNPRINTF
 #endif
-#endif
 
 #if defined(WIN32)
 
@@ -62,8 +57,8 @@
 #define _CRT_SECURE_NO_DEPRECATE
 #endif
 #pragma warning(disable: 4996)
-#endif
-#endif
+#endif /* defined(_MSC_VER) && _MSC_VER >= 1400 */
+#endif /* defined(WIN32) */
 
 #include "jk_version.h"
 
@@ -113,7 +108,7 @@
 #define NOIME
 #endif
 #include <windows.h>
-/* 
+/*
  * Add a _very_few_ declarations missing from the restricted set of headers
  * (If this list becomes extensive, re-enable the required headers above!)
  * winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now
@@ -121,10 +116,10 @@
 #include <winsock2.h>
 #include <mswsock.h>
 #include <ws2tcpip.h>
-#endif
+#endif /* _WINDOWS_ */
 #include <sys/timeb.h>
 #include <process.h>
-#else
+#else /* WIN32 */
 #include <unistd.h>
 #if defined(NETWARE) && defined(__NOVELL_LIBC__)
 #include "novsock2.h"
@@ -148,11 +143,11 @@
 #if !defined(HPUX11) && !defined(AS400)
 #include <sys/select.h>
 #endif
-#endif
+#endif /* NETWARE */
 
 #include <sys/time.h>
 #include <sys/ioctl.h>
-#endif
+#endif /* WIN32 */
 
 #ifdef __cplusplus
 extern "C"
@@ -184,11 +179,19 @@
 #define JK_PATH_SESSION_IDENTIFIER ";jsessionid"
 
 #if defined(WIN32) || defined(NETWARE)
+#ifdef __GNUC__
+#define JK_METHOD
+#define C_LEVEL_TRY_START
+#define C_LEVEL_TRY_END
+#define C_LEVEL_FINALLY_START
+#define C_LEVEL_FINALLY_END
+#else
 #define JK_METHOD __stdcall
 #define C_LEVEL_TRY_START       __try {
 #define C_LEVEL_TRY_END         }
 #define C_LEVEL_FINALLY_START   __finally {
 #define C_LEVEL_FINALLY_END     }
+#endif
 #define PATH_SEPERATOR          (';')
 #define FILE_SEPERATOR          ('\\')
 #define PATH_ENV_VARIABLE       ("PATH")
@@ -197,7 +200,7 @@
 #ifndef strcasecmp
 #define strcasecmp stricmp
 #endif
-#else
+#else /* defined(WIN32) || defined(NETWARE) */
 #define JK_METHOD
 #define C_LEVEL_TRY_START
 #define C_LEVEL_TRY_END
@@ -206,7 +209,7 @@
 #define PATH_SEPERATOR          (':')
 #define FILE_SEPERATOR          ('/')
 #define PATH_ENV_VARIABLE       ("LD_LIBRARY_PATH")
-#endif
+#endif /* defined(WIN32) || defined(NETWARE) */
 
 /* HTTP Error codes
  */
@@ -233,22 +236,24 @@
  * JK options
  */
 
-#define JK_OPT_FWDURIMASK           0x0003
+#define JK_OPT_FWDURIMASK           0x0007
 
 #define JK_OPT_FWDURICOMPAT         0x0001
 #define JK_OPT_FWDURICOMPATUNPARSED 0x0002
 #define JK_OPT_FWDURIESCAPED        0x0003
+#define JK_OPT_FWDURIPROXY          0x0004
 
-#define JK_OPT_FWDURIDEFAULT        JK_OPT_FWDURICOMPAT
+#define JK_OPT_FWDURIDEFAULT        JK_OPT_FWDURIPROXY
 
-#define JK_OPT_FWDKEYSIZE           0x0004
-
 #define JK_OPT_FWDDIRS              0x0008
 /* Forward local instead remote address */
 #define JK_OPT_FWDLOCAL             0x0010
 #define JK_OPT_FLUSHPACKETS         0x0020
 #define JK_OPT_FLUSHEADER           0x0040
 #define JK_OPT_DISABLEREUSE         0x0080
+#define JK_OPT_FWDCERTCHAIN         0x0100
+#define JK_OPT_FWDKEYSIZE           0x0200
+#define JK_OPT_REJECTUNSAFE         0x0400
 
 /* Check for EBCDIC systems */
 
@@ -281,6 +286,13 @@
 
 #endif                          /* APR_CHARSET_EBCDIC */
 
+/* on i5/OS V5R4 HTTP/APR APIs and Datas are in UTF */
+#if defined(AS400_UTF8)
+#undef USE_CHARSET_EBCDIC
+#define jk_xlate_to_ascii(b, l) /* NOOP */
+#define jk_xlate_from_ascii(b, l)       /* NOOP */
+#endif
+
 /* jk_uint32_t defines a four byte word */
 /* jk_uint64_t defines a eight byte word */
 #if defined (WIN32)
@@ -290,6 +302,7 @@
     typedef unsigned __int64 jk_uint64_t;
 #define JK_UINT64_T_FMT "I64u"
 #define JK_UINT64_T_HEX_FMT "I64x"
+#define JK_PID_T_FMT "d"
 #elif defined(AS400) || defined(NETWARE)
     typedef unsigned int jk_uint32_t;
 #define JK_UINT32_T_FMT "u"
@@ -297,6 +310,7 @@
     typedef unsigned long long jk_uint64_t;
 #define JK_UINT64_T_FMT "llu"
 #define JK_UINT64_T_HEX_FMT "llx"
+#define JK_PID_T_FMT "d"
 #else
 #include "jk_types.h"
 #endif
@@ -308,7 +322,11 @@
 
 #ifdef WIN32
 /* For WIN32, emulate gettimeofday() using _ftime() */
-#define gettimeofday(tv,tz) { struct _timeb tb; _ftime(&tb); (tv)->tv_sec = tb.time; (tv)->tv_usec = tb.millitm * 1000; }
+#define gettimeofday(tv, tz) { struct _timeb tb; _ftime(&tb); \
+                               (tv)->tv_sec = (long)tb.time;  \
+                               (tv)->tv_usec = tb.millitm * 1000; }
+#define HAVE_VSNPRINTF
+#define HAVE_SNPRINTF
 #ifdef HAVE_APR
 #define snprintf apr_snprintf
 #define vsnprintf apr_vsnprintf
@@ -317,7 +335,7 @@
 #define snprintf _snprintf
 #define vsnprintf _vsnprintf
 #endif
-#endif
+#endif /* WIN32" */
 
 /* Use apr snprintf() and vsnprintf() when needed */
 #if defined(HAVE_APR)
@@ -329,12 +347,15 @@
 #endif
 #endif
 
-/* XXXX There is a snprintf() and vsnprintf() in jk_util.c */
-/* if those work remove the #define. */
-#if defined(NETWARE) || defined(AS400)
-#define USE_SPRINTF
-#define USE_VSPRINTF
+/* Use ap snprintf() and vsnprintf() when needed */
+#if !defined(HAVE_APR)
+#if !defined(HAVE_SNPRINTF)
+#define snprintf ap_snprintf
 #endif
+#if !defined(HAVE_VSNPRINTF)
+#define vsnprintf ap_vsnprintf
+#endif
+#endif
 
 #if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
 typedef SOCKET jk_sock_t;
@@ -346,6 +367,10 @@
 #define JK_INVALID_SOCKET  (-1)
 #endif
 
+#ifdef AS400_UTF8
+#define strcasecmp(a,b) apr_strnatcasecmp(a,b)
+#endif
+
 #ifdef __cplusplus
 }
 #endif                          /* __cplusplus */

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_jni_worker.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_jni_worker.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_jni_worker.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: In process JNI worker                                      *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Based on:                                                               *
- * Version:     $Revision: 501764 $                                           *
+ * Version:     $Revision: 559197 $                                           *
  ***************************************************************************/
 
 #if !defined(WIN32) && !defined(NETWARE) && !defined(AS400)
@@ -204,7 +204,7 @@
 
 /*
    Duplicate string and convert it to ASCII on EBDIC based systems
-   Needed for at least AS/400 and BS2000 but what about other EBDIC systems ?
+   Needed for at least AS/400 (before V5R4 ?) and BS2000 but what about other EBDIC systems ?
 */
 static void *strdup_ascii(jk_pool_t *p, char *s)
 {
@@ -250,29 +250,31 @@
 
 static int JK_METHOD service(jk_endpoint_t *e,
                              jk_ws_service_t *s,
-                             jk_logger_t *l, int *is_recoverable_error)
+                             jk_logger_t *l, int *is_error)
 {
     jni_endpoint_t *p;
     jint rc;
 
     JK_TRACE_ENTER(l);
 
-    if (is_recoverable_error)
-        *is_recoverable_error = JK_FALSE;
-    if (!e || !e->endpoint_private || !s || !is_recoverable_error) {
+    if (!e || !e->endpoint_private || !s || !is_error) {
         JK_LOG_NULL_PARAMS(l);
+        if (is_error)
+            *is_error = JK_HTTP_SERVER_ERROR;
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
 
     p = e->endpoint_private;
 
+    /* Set returned error to OK */
+    *is_error = JK_HTTP_OK;
+
     if (!p->attached) {
         /* Try to attach */
         if (!(p->env = attach_to_jvm(p->worker, l))) {
             jk_log(l, JK_LOG_EMERG, "Attach failed");
-            /*   Is it recoverable ?? */
-            *is_recoverable_error = JK_TRUE;
+            *is_error = JK_HTTP_SERVER_ERROR;
             JK_TRACE_EXIT(l);
             return JK_FALSE;
         }
@@ -281,7 +283,7 @@
 
     /* we are attached now */
 
-    /* 
+    /*
      * When we call the JVM we cannot know what happens
      * So we can not recover !!!
      */
@@ -307,6 +309,7 @@
     }
     else {
         jk_log(l, JK_LOG_ERROR, "Tomcat FAILED!");
+        *is_error = JK_HTTP_SERVER_ERROR;
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
@@ -561,7 +564,7 @@
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
-    
+
     p = (jni_endpoint_t *) calloc(1, sizeof(jni_endpoint_t));
     if (p) {
         p->attached = JK_FALSE;
@@ -1206,13 +1209,13 @@
 
 #ifdef LINUX
     linux_signal_hack();
-#endif    
+#endif
 
-    if(0 == (*(p->jvm))->AttachCurrentThread(p->jvm, 
-#ifdef JNI_VERSION_1_2 
+    if(0 == (*(p->jvm))->AttachCurrentThread(p->jvm,
+#ifdef JNI_VERSION_1_2
            (void **)
 #endif
-                                             &rc, 
+                                             &rc,
                                              NULL)) {
         return rc;
     }

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_lb_worker.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_lb_worker.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_lb_worker.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -22,7 +22,7 @@
  * Author:      Mladen Turk <mturk at apache.org>                             *
  * Author:      Rainer Jung <rjung at apache.org>                             *
  * Based on:                                                               *
- * Version:     $Revision: 500805 $                                          *
+ * Version:     $Revision: 562194 $                                          *
  ***************************************************************************/
 
 #include "jk_pool.h"
@@ -60,7 +60,7 @@
 };
 
 static const char *lb_state_type[] = {
-    JK_LB_STATE_TEXT_NA,
+    JK_LB_STATE_TEXT_IDLE,
     JK_LB_STATE_TEXT_OK,
     JK_LB_STATE_TEXT_RECOVER,
     JK_LB_STATE_TEXT_BUSY,
@@ -79,6 +79,32 @@
     NULL
 };
 
+static const char *lb_first_log_names[] = {
+    JK_NOTE_LB_FIRST_NAME,
+    JK_NOTE_LB_FIRST_VALUE,
+    JK_NOTE_LB_FIRST_ACCESSED,
+    JK_NOTE_LB_FIRST_READ,
+    JK_NOTE_LB_FIRST_TRANSFERRED,
+    JK_NOTE_LB_FIRST_ERRORS,
+    JK_NOTE_LB_FIRST_BUSY,
+    JK_NOTE_LB_FIRST_ACTIVATION,
+    JK_NOTE_LB_FIRST_STATE,
+    NULL
+};
+
+static const char *lb_last_log_names[] = {
+    JK_NOTE_LB_LAST_NAME,
+    JK_NOTE_LB_LAST_VALUE,
+    JK_NOTE_LB_LAST_ACCESSED,
+    JK_NOTE_LB_LAST_READ,
+    JK_NOTE_LB_LAST_TRANSFERRED,
+    JK_NOTE_LB_LAST_ERRORS,
+    JK_NOTE_LB_LAST_BUSY,
+    JK_NOTE_LB_LAST_ACTIVATION,
+    JK_NOTE_LB_LAST_STATE,
+    NULL
+};
+
 struct lb_endpoint
 {
     lb_worker_t *worker;
@@ -164,8 +190,8 @@
 {
     if (!v)
         return JK_LB_STATE_DEF;
-    else if  (*v == 'n' || *v == 'N' || *v == '0')
-        return JK_LB_STATE_NA;
+    else if  (*v == 'i' || *v == 'I' || *v == 'n' || *v == 'N' || *v == '0')
+        return JK_LB_STATE_IDLE;
     else if  (*v == 'o' || *v == 'O' || *v == '1')
         return JK_LB_STATE_OK;
     else if  (*v == 'r' || *v == 'R' || *v == '2')
@@ -247,6 +273,7 @@
     p->sticky_session = p->s->sticky_session;
     p->sticky_session_force = p->s->sticky_session_force;
     p->recover_wait_time = p->s->recover_wait_time;
+    p->max_reply_timeouts = p->s->max_reply_timeouts;
     p->retries = p->s->retries;
     p->lbmethod = p->s->lbmethod;
     p->lblock = p->s->lblock;
@@ -264,6 +291,7 @@
     p->s->sticky_session = p->sticky_session;
     p->s->sticky_session_force = p->sticky_session_force;
     p->s->recover_wait_time = p->recover_wait_time;
+    p->s->max_reply_timeouts = p->max_reply_timeouts;
     p->s->retries = p->retries;
     p->s->lbmethod = p->lbmethod;
     p->s->lblock = p->lblock;
@@ -321,9 +349,9 @@
                  id_start; id_start = strstr(id_start + 1, name)) {
                 if (id_start == s->headers_values[i] ||
                     id_start[-1] == ';' ||
-                    id_start[-1] == ',' || isspace(id_start[-1])) {
+                    id_start[-1] == ',' || isspace((int)id_start[-1])) {
                     id_start += strlen(name);
-                    while (*id_start && isspace(*id_start))
+                    while (*id_start && isspace((int)(*id_start)))
                         ++id_start;
                     if (*id_start == '=' && id_start[1]) {
                         /*
@@ -362,13 +390,22 @@
 /* Retrieve session id from the cookie or the parameter
  * (parameter first)
  */
-static char *get_sessionid(jk_ws_service_t *s)
+static char *get_sessionid(jk_ws_service_t *s, jk_logger_t *l)
 {
     char *val;
     val = get_path_param(s, JK_PATH_SESSION_IDENTIFIER);
     if (!val) {
         val = get_cookie(s, JK_SESSION_IDENTIFIER);
     }
+    if (val && !*val) {
+        /* TODO: For now only log the empty sessions.
+         *       However we should probably return 400
+         *       (BAD_REQUEST) in this case
+         */
+        jk_log(l, JK_LOG_INFO,
+               "Detected empty session identifier.");
+        return NULL;
+    }
     return val;
 }
 
@@ -420,6 +457,7 @@
                            w->s->name);
                 if (p->lbmethod != JK_LB_METHOD_BUSYNESS)
                     w->s->lb_value = curmax;
+                w->s->reply_timeouts = 0;
                 w->s->state = JK_LB_STATE_RECOVER;
                 non_error++;
             }
@@ -428,7 +466,7 @@
             non_error++;
             if (w->s->state == JK_LB_STATE_OK &&
                 w->s->elected == w->s->elected_snapshot)
-                w->s->state = JK_LB_STATE_NA;
+                w->s->state = JK_LB_STATE_IDLE;
         }
         w->s->elected_snapshot = w->s->elected;
     }
@@ -479,6 +517,7 @@
             if (p->lb_workers[i].s->lb_value > curmax) {
                 curmax = p->lb_workers[i].s->lb_value;
             }
+            p->lb_workers[i].s->reply_timeouts >>= exponent;
         }
     }
     JK_TRACE_EXIT(l);
@@ -727,8 +766,6 @@
        jk_log(l, JK_LOG_ERROR,
               "locking failed (errno=%d)",
               errno);
-        JK_TRACE_EXIT(l);
-        return NULL;
     }
     if (sessionid) {
         char *session = sessionid;
@@ -798,6 +835,47 @@
     return rc;
 }
 
+static void lb_add_log_items(jk_ws_service_t *s,
+                             const char *const *log_names,
+                             worker_record_t *w,
+                             jk_logger_t *l)
+{
+    const char **log_values = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT);
+    char *buf = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT * JK_LB_UINT64_STR_SZ);
+    if (log_values && buf) {
+        /* JK_NOTE_LB_FIRST/LAST_NAME */
+        log_values[0] = w->s->name;
+        snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, w->s->lb_value);
+        /* JK_NOTE_LB_FIRST/LAST_VALUE */
+        log_values[1] = buf;
+        buf += JK_LB_UINT64_STR_SZ;
+        snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, w->s->elected);
+        /* JK_NOTE_LB_FIRST/LAST_ACCESSED */
+        log_values[2] = buf;
+        buf += JK_LB_UINT64_STR_SZ;
+        snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, w->s->readed);
+        /* JK_NOTE_LB_FIRST/LAST_READ */
+        log_values[3] = buf;
+        buf += JK_LB_UINT64_STR_SZ;
+        snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, w->s->transferred);
+        /* JK_NOTE_LB_FIRST/LAST_TRANSFERRED */
+        log_values[4] = buf;
+        buf += JK_LB_UINT64_STR_SZ;
+        snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT32_T_FMT, w->s->errors);
+        /* JK_NOTE_LB_FIRST/LAST_ERRORS */
+        log_values[5] = buf;
+        buf += JK_LB_UINT64_STR_SZ;
+        snprintf(buf, JK_LB_UINT64_STR_SZ, "%d", w->s->busy);
+        /* JK_NOTE_LB_FIRST/LAST_BUSY */
+        log_values[6] = buf;
+        /* JK_NOTE_LB_FIRST/LAST_ACTIVATION */
+        log_values[7] = jk_lb_get_activation(w, l);
+        /* JK_NOTE_LB_FIRST/LAST_STATE */
+        log_values[8] = jk_lb_get_state(w, l);
+        s->add_log_items(s, log_names, log_values, JK_LB_NOTES_COUNT);
+    }
+}
+
 static int JK_METHOD service(jk_endpoint_t *e,
                              jk_ws_service_t *s,
                              jk_logger_t *l, int *is_error)
@@ -813,10 +891,10 @@
 
     JK_TRACE_ENTER(l);
 
-    if (is_error)
-        *is_error = JK_HTTP_SERVER_ERROR;
     if (!e || !e->endpoint_private || !s || !is_error) {
         JK_LOG_NULL_PARAMS(l);
+        if (is_error)
+            *is_error = JK_HTTP_SERVER_ERROR;
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
@@ -829,7 +907,20 @@
 
     /* set the recovery post, for LB mode */
     s->reco_buf = jk_b_new(s->pool);
-    jk_b_set_buffer_size(s->reco_buf, p->worker->max_packet_size);
+    if (!s->reco_buf) {
+        *is_error = JK_HTTP_SERVER_ERROR;
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message");
+        JK_TRACE_EXIT(l);
+        return JK_SERVER_ERROR;        
+    }
+    if (jk_b_set_buffer_size(s->reco_buf, p->worker->max_packet_size)) {
+        *is_error = JK_HTTP_SERVER_ERROR;
+        jk_log(l, JK_LOG_ERROR,
+               "Failed allocating AJP message buffer");
+        JK_TRACE_EXIT(l);
+        return JK_SERVER_ERROR;        
+    }
     jk_b_reset(s->reco_buf);
     s->reco_status = RECO_INITED;
 
@@ -842,7 +933,7 @@
         /* Use sessionid only if sticky_session is
          * defined for this load balancer
          */
-        sessionid = get_sessionid(s);
+        sessionid = get_sessionid(s, l);
     }
     if (JK_IS_DEBUG_LEVEL(l))
         jk_log(l, JK_LOG_DEBUG,
@@ -864,18 +955,29 @@
             s->route = rec->r;
             prec = rec;
 
-            if (rec->s->state == JK_LB_STATE_RECOVER)
-                rec->s->state = JK_LB_STATE_PROBE;
-
             if (JK_IS_DEBUG_LEVEL(l))
                 jk_log(l, JK_LOG_DEBUG,
                        "service worker=%s route=%s",
                        rec->s->name, s->route);
+
+            if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
+                jk_shm_lock();
+            if (rec->s->state == JK_LB_STATE_RECOVER)
+                rec->s->state = JK_LB_STATE_PROBE;
+            if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
+                jk_shm_unlock();
+                       
             while ((!(r=rec->w->get_endpoint(rec->w, &end, l)) || !end) && (retry < p->worker->s->retries)) {
                 retry++;
                 retry_wait *=2;
+
+                if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
+                    jk_shm_lock();
                 if (retry_wait > JK_LB_MAX_RETRY_WAIT)
                     retry_wait = JK_LB_MAX_RETRY_WAIT;
+                if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
+                    jk_shm_unlock();
+
                 if (JK_IS_DEBUG_LEVEL(l))
                     jk_log(l, JK_LOG_DEBUG,
                            "could not get free endpoint for worker"
@@ -889,16 +991,20 @@
                  * as in error if the retry number is
                  * greater then the number of retries.
                  */
+                if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
+                    jk_shm_lock();
                 if (rec->s->state != JK_LB_STATE_ERROR)
                     rec->s->state = JK_LB_STATE_BUSY;
+                if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
+                    jk_shm_unlock();
                 jk_log(l, JK_LOG_INFO,
                        "could not get free endpoint for worker %s (%d retries)",
                        rec->s->name, retry);
             }
             else {
                 int service_stat = -1;
-                size_t rd = 0;
-                size_t wr = 0;
+                jk_uint64_t rd = 0;
+                jk_uint64_t wr = 0;
                 /* Reset endpoint read and write sizes for
                  * this request.
                  */
@@ -973,8 +1079,6 @@
                 if (service_stat == JK_TRUE) {
                     rec->s->state = JK_LB_STATE_OK;
                     rec->s->error_time = 0;
-                    if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
-                        jk_shm_unlock();
                     rc = JK_TRUE;
                 }
                 else if (service_stat == JK_CLIENT_ERROR) {
@@ -985,8 +1089,6 @@
                     rec->s->client_errors++;
                     rec->s->state = JK_LB_STATE_OK;
                     rec->s->error_time = 0;
-                    if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
-                        jk_shm_unlock();
                     jk_log(l, JK_LOG_INFO,
                            "unrecoverable error %d, request failed."
                            " Client failed in the middle of request,"
@@ -996,17 +1098,6 @@
                     rc = JK_CLIENT_ERROR;
                 }
                 else {
-                    /*
-                    * Service failed !!!
-                    * Time for fault tolerance (if possible)...
-                    */
-
-                    rec->s->errors++;
-                    rec->s->state = JK_LB_STATE_ERROR;
-                    rec->s->error_time = time(NULL);
-                    if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
-                        jk_shm_unlock();
-
                     if (is_service_error != JK_HTTP_SERVER_BUSY) {
                         /*
                         * Error is not recoverable - break with an error.
@@ -1019,11 +1110,28 @@
                         *is_error = is_service_error;
                         rc = JK_FALSE;
                     }
-                    else
+                    if (service_stat == JK_REPLY_TIMEOUT) {
+                        rec->s->reply_timeouts++;
+                    }
+                    if (service_stat != JK_STATUS_ERROR &&
+                        (service_stat != JK_REPLY_TIMEOUT ||
+                        rec->s->reply_timeouts > (unsigned)p->worker->s->max_reply_timeouts)) {
+
+                        /*
+                        * Service failed !!!
+                        * Time for fault tolerance (if possible)...
+                        */
+
+                        rec->s->errors++;
+                        rec->s->state = JK_LB_STATE_ERROR;
+                        rec->s->error_time = time(NULL);
                         jk_log(l, JK_LOG_INFO,
                                "service failed, worker %s is in error state",
                                rec->s->name);
+                    }
                 }
+                if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
+                    jk_shm_unlock();
             }
             if ( rc == -1 ) {
                 /*
@@ -1035,42 +1143,8 @@
                            "recoverable error... will try to recover on other worker");
             }
             if (first == 1 && s->add_log_items) {
-                const char **log_names = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT);
-                const char **log_values = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT);
-                char *buf = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT * JK_LB_UINT64_STR_SZ);;
                 first = 0;
-                if (log_names && log_values && buf) {
-                    log_names[0] = JK_NOTE_LB_FIRST_NAME;
-                    log_values[0] = prec->s->name;
-                    snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, prec->s->lb_value);
-                    log_names[1] = JK_NOTE_LB_FIRST_VALUE;
-                    log_values[1] = buf;
-                    buf += JK_LB_UINT64_STR_SZ;
-                    snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, prec->s->elected);
-                    log_names[2] = JK_NOTE_LB_FIRST_ACCESSED;
-                    log_values[2] = buf;
-                    buf += JK_LB_UINT64_STR_SZ;
-                    snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, prec->s->readed);
-                    log_names[3] = JK_NOTE_LB_FIRST_READ;
-                    log_values[3] = buf;
-                    buf += JK_LB_UINT64_STR_SZ;
-                    snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, prec->s->transferred);
-                    log_names[4] = JK_NOTE_LB_FIRST_TRANSFERRED;
-                    log_values[4] = buf;
-                    buf += JK_LB_UINT64_STR_SZ;
-                    snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT32_T_FMT, prec->s->errors);
-                    log_names[5] = JK_NOTE_LB_FIRST_ERRORS;
-                    log_values[5] = buf;
-                    buf += JK_LB_UINT64_STR_SZ;
-                    snprintf(buf, JK_LB_UINT64_STR_SZ, "%d", prec->s->busy);
-                    log_names[6] = JK_NOTE_LB_FIRST_BUSY;
-                    log_values[6] = buf;
-                    log_names[7] = JK_NOTE_LB_FIRST_ACTIVATION;
-                    log_values[7] = jk_lb_get_activation(rec, l);
-                    log_names[8] = JK_NOTE_LB_FIRST_STATE;
-                    log_values[8] = jk_lb_get_state(rec, l);
-                    s->add_log_items(s, log_names, log_values, JK_LB_NOTES_COUNT);
-                }
+                lb_add_log_items(s, lb_first_log_names, prec, l);
             }
         }
         else {
@@ -1121,41 +1195,7 @@
         rc = JK_FALSE;
     }
     if (prec && s->add_log_items) {
-        const char **log_names = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT);
-        const char **log_values = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT);
-        char *buf = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT * JK_LB_UINT64_STR_SZ);;
-        if (log_names && log_values && buf) {
-            log_names[0] = JK_NOTE_LB_LAST_NAME;
-            log_values[0] = prec->s->name;
-            snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, prec->s->lb_value);
-            log_names[1] = JK_NOTE_LB_LAST_VALUE;
-            log_values[1] = buf;
-            buf += JK_LB_UINT64_STR_SZ;
-            snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, prec->s->elected);
-            log_names[2] = JK_NOTE_LB_LAST_ACCESSED;
-            log_values[2] = buf;
-            buf += JK_LB_UINT64_STR_SZ;
-            snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, prec->s->readed);
-            log_names[3] = JK_NOTE_LB_LAST_READ;
-            log_values[3] = buf;
-            buf += JK_LB_UINT64_STR_SZ;
-            snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT64_T_FMT, prec->s->transferred);
-            log_names[4] = JK_NOTE_LB_LAST_TRANSFERRED;
-            log_values[4] = buf;
-            buf += JK_LB_UINT64_STR_SZ;
-            snprintf(buf, JK_LB_UINT64_STR_SZ, "%" JK_UINT32_T_FMT, prec->s->errors);
-            log_names[5] = JK_NOTE_LB_LAST_ERRORS;
-            log_values[5] = buf;
-            buf += JK_LB_UINT64_STR_SZ;
-            snprintf(buf, JK_LB_UINT64_STR_SZ, "%d", prec->s->busy);
-            log_names[6] = JK_NOTE_LB_LAST_BUSY;
-            log_values[6] = buf;
-            log_names[7] = JK_NOTE_LB_LAST_ACTIVATION;
-            log_values[7] = jk_lb_get_activation(prec, l);
-            log_names[8] = JK_NOTE_LB_LAST_STATE;
-            log_values[8] = jk_lb_get_state(prec, l);
-            s->add_log_items(s, log_names, log_values, JK_LB_NOTES_COUNT);
-        }
+        lb_add_log_items(s, lb_last_log_names, prec, l);
     }
 
     JK_TRACE_EXIT(l);
@@ -1249,7 +1289,7 @@
                     strncpy(p->lb_workers[i].s->redirect, s, JK_SHM_STR_SIZ);
 
                 p->lb_workers[i].s->lb_value = 0;
-                p->lb_workers[i].s->state = JK_LB_STATE_NA;
+                p->lb_workers[i].s->state = JK_LB_STATE_IDLE;
                 p->lb_workers[i].s->error_time = 0;
                 p->lb_workers[i].s->activation =
                     jk_get_worker_activation(props, worker_names[i]);
@@ -1337,6 +1377,8 @@
                                                             WAIT_BEFORE_RECOVER);
     if (p->recover_wait_time < 1)
         p->recover_wait_time = 1;
+    p->max_reply_timeouts = jk_get_worker_max_reply_timeouts(props, p->s->name,
+                                                             0);
     p->maintain_time = jk_get_worker_maintain_time(props);
     if(p->maintain_time < 0)
         p->maintain_time = 0;
@@ -1440,6 +1482,7 @@
         private_data->worker.maintain = maintain_workers;
         private_data->worker.retries = JK_RETRIES;
         private_data->recover_wait_time = WAIT_BEFORE_RECOVER;
+        private_data->max_reply_timeouts = 0;
         private_data->sequence = 0;
         *w = &private_data->worker;
         JK_TRACE_EXIT(l);

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_lb_worker.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_lb_worker.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_lb_worker.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: load balance worker header file                            *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Rainer Jung <rjung at apache.org>                             *
- * Version:     $Revision: 500537 $                                           *
+ * Version:     $Revision: 550272 $                                           *
  ***************************************************************************/
 
 #ifndef JK_LB_WORKER_H
@@ -57,23 +57,23 @@
 #define JK_LB_LOCK_TEXT_OPTIMISTIC     ("Optimistic")
 #define JK_LB_LOCK_TEXT_PESSIMISTIC    ("Pessimistic")
 #define JK_LB_LOCK_TEXT_DEF            (JK_LB_LOCK_TEXT_OPTIMISTIC)
-#define JK_LB_STATE_NA                 (0)
+#define JK_LB_STATE_IDLE               (0)
 #define JK_LB_STATE_OK                 (1)
 #define JK_LB_STATE_RECOVER            (2)
 #define JK_LB_STATE_BUSY               (3)
 #define JK_LB_STATE_ERROR              (4)
 #define JK_LB_STATE_FORCE              (5)
 #define JK_LB_STATE_PROBE              (6)
-#define JK_LB_STATE_DEF                (JK_LB_STATE_NA)
-#define JK_LB_STATE_TEXT_NA            ("N/A")
+#define JK_LB_STATE_DEF                (JK_LB_STATE_IDLE)
+#define JK_LB_STATE_TEXT_IDLE          ("OK/IDLE")
 #define JK_LB_STATE_TEXT_OK            ("OK")
-#define JK_LB_STATE_TEXT_RECOVER       ("REC")
-#define JK_LB_STATE_TEXT_BUSY          ("BSY")
+#define JK_LB_STATE_TEXT_RECOVER       ("ERR/REC")
+#define JK_LB_STATE_TEXT_BUSY          ("OK/BUSY")
 #define JK_LB_STATE_TEXT_ERROR         ("ERR")
-#define JK_LB_STATE_TEXT_FORCE         ("FRC")
-#define JK_LB_STATE_TEXT_PROBE         ("PRB")
+#define JK_LB_STATE_TEXT_FORCE         ("ERR/FRC")
+#define JK_LB_STATE_TEXT_PROBE         ("ERR/PRB")
 #define JK_LB_STATE_TEXT_MAX           (JK_LB_STATE_PROBE)
-#define JK_LB_STATE_TEXT_DEF           (JK_LB_STATE_TEXT_NA)
+#define JK_LB_STATE_TEXT_DEF           (JK_LB_STATE_TEXT_IDLE)
 #define JK_LB_ACTIVATION_ACTIVE        (0)
 #define JK_LB_ACTIVATION_DISABLED      (1)
 #define JK_LB_ACTIVATION_STOPPED       (2)
@@ -136,6 +136,7 @@
     int          sticky_session;
     int          sticky_session_force;
     int          recover_wait_time;
+    int          max_reply_timeouts;
     int          retries;
     int          lbmethod;
     int          lblock;

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_logger.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_logger.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_logger.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -18,7 +18,7 @@
 /***************************************************************************
  * Description: Logger object definitions                                  *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 476849 $                                           *
+ * Version:     $Revision: 559692 $                                           *
  ***************************************************************************/
 
 #ifndef JK_LOGGER_H
@@ -36,14 +36,19 @@
 {
     void *logger_private;
     int level;
-    const char *log_fmt;
+    const char *log_fmt;        /* the configured timestamp format for logging */
+    const char *log_fmt_subsec; /* like log_fmt, but milli/micro seconds
+                                   marker replaced, because strftime() doesn't handle those */
+    int    log_fmt_type;        /* do we want milli or microseconds */
+    size_t log_fmt_offset;      /* at which position should we insert */
+    size_t log_fmt_size;        /* how long is this format string */
 
-    int (JK_METHOD * log) (jk_logger_t *l, int level, const char *what);
+    int (JK_METHOD * log) (jk_logger_t *l, int level, int used, char *what);
 
 };
 
-typedef struct file_logger_t file_logger_t;
-struct file_logger_t
+typedef struct jk_file_logger_t jk_file_logger_t;
+struct jk_file_logger_t
 {
     FILE *logfile;
     /* For Apache 2 APR piped logging */

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_map.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_map.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_map.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,9 +19,9 @@
  * Description: General purpose map object                                 *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Mladen Turk <mturk at apache.org>                             *
- * Version:     $Revision: 511887 $                                          *
+ * Version:     $Revision: 550239 $                                          *
  ***************************************************************************/
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 #include "apr_xlate.h"
 #endif
 
@@ -244,12 +244,12 @@
 
 char **jk_map_get_string_list(jk_map_t *m,
                               const char *name,
-                              unsigned *list_len, const char *def)
+                              unsigned int *list_len, const char *def)
 {
     const char *l = jk_map_get_string(m, name, def);
     char **ar = NULL;
 
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
     char *lasts;
 #endif
 
@@ -269,7 +269,7 @@
          * GS, in addition to VG's patch, we now need to
          * strtok also by a "*"
          */
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
         for (p = strtok_r(v, " \t,", &lasts);
              p; p = strtok_r(NULL, " \t,", &lasts))
 #else
@@ -297,6 +297,55 @@
     return ar;
 }
 
+int jk_map_get_int_list(jk_map_t *m,
+                        const char *name,
+                        int *list,
+                        unsigned int list_len,
+                        const char *def)
+{
+    const char *l = jk_map_get_string(m, name, def);
+
+#ifdef _REENTRANT
+    char *lasts;
+#endif
+
+    if (!list_len)
+        return 0;
+
+    if (l) {
+        unsigned int capacity = list_len;
+        unsigned int index = 0;
+        char *p;
+        char *v = jk_pool_strdup(&m->p, l);
+
+        if (!v) {
+            return 0;
+        }
+
+        /*
+         * GS, in addition to VG's patch, we now need to
+         * strtok also by a "*"
+         */
+#ifdef _REENTRANT
+        for (p = strtok_r(v, " \t,", &lasts);
+             p; p = strtok_r(NULL, " \t,", &lasts))
+#else
+        for (p = strtok(v, " \t,"); p; p = strtok(NULL, " \t,"))
+#endif
+
+        {
+            if (index < capacity) {
+                list[index] = atoi(p);
+                index++;
+            }
+            else
+                break;
+        }
+        return index;
+    }
+    return 0;
+}
+
 int jk_map_add(jk_map_t *m, const char *name, const void *value)
 {
     int rc = JK_FALSE;
@@ -346,14 +395,81 @@
     return rc;
 }
 
-int jk_map_read_property(jk_map_t *m, const char *str, int allow_duplicates, jk_logger_t *l)
+
+static int jk_map_validate_property(char *prp, jk_logger_t *l)
 {
+    int off = (int)strlen(prp) - (int)JK_MAP_REFERENCE_SZ;
+    /* check the worker properties */
+    if (off <= 0 || strncmp(&prp[off], JK_MAP_REFERENCE, JK_MAP_REFERENCE_SZ) ) {
+        if (!jk_is_valid_property(prp)) {
+            jk_log(l, JK_LOG_ERROR,
+                   "The attribute '%s' is not supported - please check"
+                   " the documentation for the supported attributes.",
+                   prp);
+            return JK_FALSE;
+        }
+        if (jk_is_deprecated_property(prp)) {
+            jk_log(l, JK_LOG_WARNING,
+                   "The attribute '%s' is deprecated - please check"
+                   " the documentation for the correct replacement.",
+                   prp);
+        }
+    }
+    return JK_TRUE;
+}
+
+static int jk_map_handle_duplicates(jk_map_t *m, const char *prp, char **v,
+                                    int treatment, jk_logger_t *l)
+{
+    const char *oldv = jk_map_get_string(m, prp, NULL);
+    if (oldv) {
+        if ((treatment == JK_MAP_HANDLE_DUPLICATES)
+            && jk_is_unique_property(prp) == JK_FALSE) {
+            char *tmpv = jk_pool_alloc(&m->p,
+                                       strlen(*v) + strlen(oldv) + 3);
+            if (tmpv) {
+                char sep = '*';
+                if (jk_is_path_property(prp))
+                    sep = PATH_SEPERATOR;
+                else if (jk_is_cmd_line_property(prp))
+                    sep = ' ';
+                else if (jk_is_list_property(prp))
+                    sep = ',';
+                sprintf(tmpv, "%s%c%s", oldv, sep, *v);
+            }
+            *v = tmpv;
+            if (JK_IS_DEBUG_LEVEL(l))
+                jk_log(l, JK_LOG_DEBUG,
+                       "Concatenated value is: %s -> %s",
+                       prp, *v);
+            return JK_FALSE;
+        }
+        else {
+            jk_log(l, JK_LOG_WARNING,
+                   "Duplicate key '%s' detected - previous value '%s'"
+                   " will be overwritten with '%s'.",
+                   prp, oldv ? oldv : "(null)", v ? *v : "(null)");
+            return JK_TRUE;
+        }
+    }
+    else {
+        return JK_TRUE;
+    }
+}
+
+int jk_map_read_property(jk_map_t *m, const char *str,
+                         int treatment, jk_logger_t *l)
+{
     int rc = JK_TRUE;
     char buf[LENGTH_OF_LINE + 1];
     char *prp = &buf[0];
 
-    if (strlen(str) > LENGTH_OF_LINE)
+    if (strlen(str) > LENGTH_OF_LINE) {
+        jk_log(l, JK_LOG_WARNING,
+               "Line to long (%d > %d), ignoring entry",
+               strlen(str), LENGTH_OF_LINE);
         return JK_FALSE;
+    }
 
     strcpy(prp, str);
     if (trim(prp)) {
@@ -364,57 +480,25 @@
             trim(prp);
             trim(v);
             if (strlen(v) && strlen(prp)) {
-                const char *oldv;
-                int off = (int)strlen(prp) - (int)JK_MAP_REFERENCE_SZ;
-                /* check the worker properties */
-                if (off <= 0 || strncmp(&prp[off], JK_MAP_REFERENCE, JK_MAP_REFERENCE_SZ) ) {
-                    if (!jk_is_valid_property(prp)) {
-                        jk_log(l, JK_LOG_ERROR,
-                               "The attribute '%s' is not supported - please check"
-                               " the documentation for the supported attributes.",
-                               prp);
+                if (treatment == JK_MAP_HANDLE_RAW) {
+                    v = jk_pool_strdup(&m->p, v);
+                }
+                else {
+                    if (jk_map_validate_property(prp, l) == JK_FALSE)
                         return JK_FALSE;
-                    }
-                    if (jk_is_deprecated_property(prp)) {
-                        jk_log(l, JK_LOG_WARNING,
-                               "The attribute '%s' is deprecated - please check"
-                               " the documentation for the correct replacement.",
-                               prp);
-                    }
-                }
-                oldv = jk_map_get_string(m, prp, NULL);
-                v = jk_map_replace_properties(m, v);
-                if (oldv) {
-                    if (allow_duplicates && jk_is_unique_property(prp) == JK_FALSE) {
-                        char *tmpv = jk_pool_alloc(&m->p,
-                                           strlen(v) + strlen(oldv) + 3);
-                        if (tmpv) {
-                            char sep = '*';
-                            if (jk_is_path_property(prp))
-                                sep = PATH_SEPERATOR;
-                            else if (jk_is_cmd_line_property(prp))
-                                sep = ' ';
-                            else if (jk_is_list_property(prp))
-                                sep = ',';
-                            sprintf(tmpv, "%s%c%s", oldv, sep, v);
-                        }
-                        v = tmpv;
-                    }
-                    else {
-                        jk_log(l, JK_LOG_WARNING,
-                               "Duplicate key '%s' detected - previous value '%s'"
-                               " will be overwritten with '%s'.",
-                               prp, oldv ? oldv : "(null)", v ? v : "(null)");
+                    v = jk_map_replace_properties(m, v);
+                    if (jk_map_handle_duplicates(m, prp, &v, treatment, l) == JK_TRUE)
                         v = jk_pool_strdup(&m->p, v);
-                    }
                 }
-                else {
-                    v = jk_pool_strdup(&m->p, v);
-                }
                 if (v) {
+                    if (JK_IS_DEBUG_LEVEL(l))
+                        jk_log(l, JK_LOG_DEBUG,
+                               "Adding property '%s' with value '%s' to map.",
+                               prp, v);
                     jk_map_put(m, prp, v, NULL);
                 }
                 else {
+                    JK_LOG_NULL_PARAMS(l);
                     rc = JK_FALSE;
                 }
             }
@@ -424,16 +508,17 @@
 }
 
 
-int jk_map_read_properties(jk_map_t *m, const char *f, time_t *modified, int allow_duplicates, jk_logger_t *l)
+int jk_map_read_properties(jk_map_t *m, const char *f, time_t *modified,
+                           int treatment, jk_logger_t *l)
 {
     int rc = JK_FALSE;
 
     if (m && f) {
         struct stat statbuf;
         FILE *fp;
-        if ((rc = stat(f, &statbuf)) == -1)
+        if (jk_stat(f, &statbuf) == -1)
             return JK_FALSE;
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
         fp = fopen(f, "r, o_ccsid=0");
 #else
         fp = fopen(f, "r");
@@ -448,7 +533,7 @@
             while (NULL != (prp = fgets(buf, LENGTH_OF_LINE, fp))) {
                 trim_prp_comment(prp);
                 if (*prp) {
-                    if ((rc = jk_map_read_property(m, prp, allow_duplicates, l)) == JK_FALSE)
+                    if ((rc = jk_map_read_property(m, prp, treatment, l)) == JK_FALSE)
                         break;
                 }
             }
@@ -489,9 +574,24 @@
     return NULL;
 }
 
+void jk_map_dump(jk_map_t *m, jk_logger_t *l)
+{
+    if (m) {
+        if (JK_IS_DEBUG_LEVEL(l)) {
+            int s = jk_map_size(m);
+            int i;
+            for (i=0;i<s;i++) {
+                jk_log(l, JK_LOG_DEBUG,
+                       "Dump of map: '%s' -> '%s'",
+                       jk_map_name_at(m, i), jk_map_value_at(m, i));
+            }
+        }
+    }
+}
+
 static void trim_prp_comment(char *prp)
 {
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
     char *comment;
     /* lots of lines that translate a '#' realtime deleted   */
     comment = strchr(prp, *APR_NUMBERSIGN);
@@ -636,55 +736,67 @@
 
     JK_TRACE_ENTER(l);
 
-    if (m && prefix && depth <= JK_MAP_RECURSION) {
-        size_t prelen = strlen(prefix);
-        unsigned int i;
-        rc = JK_TRUE;
-        if (JK_IS_DEBUG_LEVEL(l))
-            jk_log(l, JK_LOG_DEBUG,
-                   "Checking for references with prefix %s with%s wildcard (recursion %d)",
-                   prefix, wildcard? "" : "out", depth);
-        for (i = 0; i < m->size; i++) {
-            if (m->values[i] && !strncmp(m->names[i], prefix, prelen)) {
-                size_t remain = strlen(m->names[i]) - prelen;
-                if ((remain == JK_MAP_REFERENCE_SZ ) || (wildcard && remain > JK_MAP_REFERENCE_SZ)) {
-                    remain = strlen(m->names[i]) - JK_MAP_REFERENCE_SZ;
-                    if (!strncmp(m->names[i] + remain, JK_MAP_REFERENCE, JK_MAP_REFERENCE_SZ)) {
-                        char *from = jk_pool_alloc(&m->p,
-                                                   (sizeof(char) *
-                                                   (strlen(m->values[i]) + 2)));
-                        char *to = jk_pool_alloc(&m->p,
-                                                 (sizeof(char) *
-                                                 (remain + 2)));
-                        if (!from || !to) {
-                            rc = JK_FALSE;
-                            break;
-                        }
-                        strcpy(from, m->values[i]);
-                        *(from+strlen(m->values[i]))   = '.';
-                        *(from+strlen(m->values[i])+1) = '\0';
-                        strncpy(to, m->names[i], remain);
-                        *(to+remain)   = '.';
-                        *(to+remain+1) = '\0';
+    if (m && prefix) {
+        if (depth <= JK_MAP_RECURSION) {
+            size_t prelen = strlen(prefix);
+            unsigned int i;
+            rc = JK_TRUE;
+            if (JK_IS_DEBUG_LEVEL(l))
+                jk_log(l, JK_LOG_DEBUG,
+                       "Checking for references with prefix %s with%s wildcard (recursion %d)",
+                       prefix, wildcard? "" : "out", depth);
+            for (i = 0; i < m->size; i++) {
+                if (m->values[i] && !strncmp(m->names[i], prefix, prelen)) {
+                    size_t remain = strlen(m->names[i]) - prelen;
+                    if ((remain == JK_MAP_REFERENCE_SZ ) || (wildcard && remain > JK_MAP_REFERENCE_SZ)) {
+                        remain = strlen(m->names[i]) - JK_MAP_REFERENCE_SZ;
+                        if (!strncmp(m->names[i] + remain, JK_MAP_REFERENCE, JK_MAP_REFERENCE_SZ)) {
+                            char *from = jk_pool_alloc(&m->p,
+                                                       (sizeof(char) *
+                                                       (strlen(m->values[i]) + 2)));
+                            char *to = jk_pool_alloc(&m->p,
+                                                     (sizeof(char) *
+                                                     (remain + 2)));
+                            if (!from || !to) {
+                                jk_log(l, JK_LOG_ERROR,
+                                       "Error in string allocation");
+                                rc = JK_FALSE;
+                                break;
+                            }
+                            strcpy(from, m->values[i]);
+                            *(from+strlen(m->values[i]))   = '.';
+                            *(from+strlen(m->values[i])+1) = '\0';
+                            strncpy(to, m->names[i], remain);
+                            *(to+remain)   = '.';
+                            *(to+remain+1) = '\0';
 
-                        rc = jk_map_resolve_references(m, m->values[i], 0, depth+1, l);
-                        if (rc == JK_FALSE) {
-                            break;
+                            rc = jk_map_resolve_references(m, m->values[i], 0, depth+1, l);
+                            if (rc == JK_FALSE) {
+                                break;
+                            }
+                            if (JK_IS_DEBUG_LEVEL(l))
+                                jk_log(l, JK_LOG_DEBUG,
+                                       "Copying values from %s to %s",
+                                       from, to);
+                            rc = jk_map_inherit_properties(m, from, to, l);
+                            if (rc == JK_FALSE) {
+                                break;
+                            }
+                            m->values[i] = NULL;
                         }
-                        if (JK_IS_DEBUG_LEVEL(l))
-                            jk_log(l, JK_LOG_DEBUG,
-                                   "Copying values from %s to %s",
-                                   from, to);
-                        rc = jk_map_inherit_properties(m, from, to);
-                        if (rc == JK_FALSE) {
-                            break;
-                        }
-                        m->values[i] = NULL;
                     }
                 }
             }
         }
+        else {
+            jk_log(l, JK_LOG_ERROR,
+                   "Recursion limit %d for worker references with prefix '%s' reached",
+                   JK_MAP_RECURSION, prefix);
+        }
     }
+    else {
+        JK_LOG_NULL_PARAMS(l);
+    }
     JK_TRACE_EXIT(l);
     return rc;
 }
@@ -693,21 +805,27 @@
  *  Inherit properties
  *
  */
-int jk_map_inherit_properties(jk_map_t *m, const char *from, const char *to)
+int jk_map_inherit_properties(jk_map_t *m, const char *from, const char *to, jk_logger_t *l)
 {
     int rc = JK_FALSE;
+    const char *prp;
+    char *to_prp;
 
     if (m && from && to) {
         unsigned int i;
-        rc = JK_TRUE;
         for (i = 0; i < m->size; i++) {
             if (!strncmp(m->names[i], from, strlen(from))) {
-                const char *prp = m->names[i] + strlen(from);
-                char *to_prp = jk_pool_alloc(&m->p,
-                                             (sizeof(char) *
-                                             (strlen(to) +
-                                             strlen(prp) + 1)));
+                rc = JK_TRUE;
+                prp = m->names[i] + strlen(from);
+                to_prp = jk_pool_alloc(&m->p,
+                                       (sizeof(char) *
+                                       (strlen(to) +
+                                       strlen(prp) + 1)));
                 if (!to_prp) {
+                    jk_log(l, JK_LOG_ERROR,
+                           "Error in string allocation for attribute '%s.%s'",
+                           to, prp);
+                    rc = JK_FALSE;
                     break;
                 }
                 strcpy(to_prp, to);
@@ -715,11 +833,22 @@
                 if (jk_map_get_id(m, to_prp) < 0 ) {
                     rc = jk_map_add(m, to_prp, m->values[i]);
                     if (rc == JK_FALSE) {
+                        jk_log(l, JK_LOG_ERROR,
+                               "Error when adding attribute '%s'",
+                               to_prp);
                         break;
                     }
                 }
             }
         }
+        if ( rc == JK_FALSE) {
+            jk_log(l, JK_LOG_ERROR,
+                   "Reference '%s' not found",
+                   from);
+        }
     }
+    else {
+        JK_LOG_NULL_PARAMS(l);
+    }
     return rc;
 }

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_map.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_map.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_map.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -18,7 +18,7 @@
 /***************************************************************************
  * Description: Map object header file                                     *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 500880 $                                           *
+ * Version:     $Revision: 550239 $                                           *
  ***************************************************************************/
 
 #ifndef JK_MAP_H
@@ -30,6 +30,9 @@
 {
 #endif                          /* __cplusplus */
 
+#define JK_MAP_HANDLE_NORMAL     0
+#define JK_MAP_HANDLE_DUPLICATES 1
+#define JK_MAP_HANDLE_RAW        2
 
 struct jk_map;
 typedef struct jk_map jk_map_t;
@@ -58,13 +61,18 @@
                            const char *name,
                            unsigned *list_len, const char *def);
 
+int jk_map_get_int_list(jk_map_t *m,
+                        const char *name,
+                        int *list, unsigned int list_len,
+                        const char *def);
+
 int jk_map_add(jk_map_t *m, const char *name, const void *value);
 
 int jk_map_put(jk_map_t *m, const char *name, const void *value, void **old);
 
-int jk_map_read_property(jk_map_t *m, const char *str, int allow_duplicates, jk_logger_t *l);
+int jk_map_read_property(jk_map_t *m, const char *str, int treatment, jk_logger_t *l);
 
-int jk_map_read_properties(jk_map_t *m, const char *f, time_t *modified, int allow_duplicates, jk_logger_t *l);
+int jk_map_read_properties(jk_map_t *m, const char *f, time_t *modified, int treatment, jk_logger_t *l);
 
 int jk_map_size(jk_map_t *m);
 
@@ -72,15 +80,17 @@
 
 void *jk_map_value_at(jk_map_t *m, int idex);
 
+void jk_map_dump(jk_map_t *m, jk_logger_t *l);
+
 /**
  *  Replace $(property) in value.
- * 
+ *
  */
 char *jk_map_replace_properties(jk_map_t *m, const char *value);
 
 int jk_map_resolve_references(jk_map_t *m, const char *prefix, int wildcard, int depth, jk_logger_t *l);
 
-int jk_map_inherit_properties(jk_map_t *m, const char *from, const char *to);
+int jk_map_inherit_properties(jk_map_t *m, const char *from, const char *to, jk_logger_t *l);
 
 #ifdef __cplusplus
 }

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_msg_buff.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_msg_buff.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_msg_buff.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,7 +20,7 @@
  * Author:      Costin <costin at costin.dnt.ro>                              *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Henri Gomez <hgomez at apache.org>                            *
- * Version:     $Revision: 466585 $                                          *
+ * Version:     $Revision: 551809 $                                          *
  ***************************************************************************/
 
 #include "jk_pool.h"
@@ -84,8 +84,8 @@
 
 void jk_b_end(jk_msg_buf_t *msg, int protoh)
 {
-    /* 
-     * Ugly way to set the size in the right position 
+    /*
+     * Ugly way to set the size in the right position
      */
     int hlen = msg->len - 4;
 
@@ -137,7 +137,7 @@
     return 0;
 }
 
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 int jk_b_append_asciistring(jk_msg_buf_t *msg, const char *param)
 {
     int len;
@@ -173,7 +173,7 @@
     }
 
     len = (unsigned short)strlen(param);
-    if (msg->len + len + 2 > msg->maxlen) {
+    if (msg->len + len + 3 > msg->maxlen) {
         return -1;
     }
 
@@ -181,8 +181,8 @@
     jk_b_append_int(msg, len);
 
     /* We checked for space !!  */
-    strncpy((char *)msg->buf + msg->len, param, len + 1);       /* including \0 */
-#if defined(AS400) || defined(_OSD_POSIX)
+    memcpy(msg->buf + msg->len, param, len + 1); /* including \0 */
+#if (defined(AS400) && !defined(AS400_UTF8)) || defined(_OSD_POSIX)
     /* convert from EBCDIC if needed */
     jk_xlate_to_ascii((char *)msg->buf + msg->len, len + 1);
 #endif
@@ -300,7 +300,7 @@
 
 
 
-/** Helpie dump function 
+/** Helpie dump function
  */
 void jk_dump_buff(jk_logger_t *l,
                   const char *file,
@@ -312,7 +312,7 @@
     char *current;
     int j;
     int len = msg->len;
-    
+
     if (l == NULL)
         return;
     if (l->level != JK_LOG_TRACE_LEVEL && len > 1024)
@@ -341,13 +341,20 @@
             if ((i + j) >= len)
                 x = 0;
             if (x > 0x20 && x < 0x7F) {
-                *current++ = x;
+#ifdef USE_CHARSET_EBCDIC
+               *current = x;
+               jk_xlate_from_ascii(current, 1);
+               current++;
+#else
+              *current++ = x;
+#endif
             }
             else {
                 *current++ = '.';
             }
         }
         *current++ = '\0';
+
             jk_log(l, file, line, funcname, level,
                    "%.4x    %s", i, lb);
     }

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_msg_buff.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_msg_buff.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_msg_buff.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: Data marshaling. XDR like                                  *
  * Author:      Costin <costin at costin.dnt.ro>                              *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 466585 $                                           *
+ * Version:     $Revision: 530674 $                                           *
  ***************************************************************************/
 
 #ifndef JK_MSG_BUF_H
@@ -42,7 +42,7 @@
   - one parameter  - use a structure for more. The method
     is encoded as part of the request
   - one or no result
-  - 
+  -
 
 
 
@@ -80,7 +80,7 @@
 void jk_b_end(jk_msg_buf_t *msg, int protoh);
 
 /*
- * Recycle the buffer - z for a new invocation 
+ * Recycle the buffer - z for a new invocation
  */
 void jk_b_reset(jk_msg_buf_t *msg);
 
@@ -97,7 +97,7 @@
 
 int jk_b_append_string(jk_msg_buf_t *msg, const char *param);
 
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
 int jk_b_append_asciistring(jk_msg_buf_t *msg, const char *param);
 #endif
 
@@ -106,7 +106,7 @@
 
 /* -------------------- Decoding -------------------- */
 
-/** Get a byte from the current position 
+/** Get a byte from the current position
  */
 unsigned char jk_b_get_byte(jk_msg_buf_t *msg);
 
@@ -130,11 +130,11 @@
  */
 unsigned char jk_b_pget_byte(jk_msg_buf_t *msg, int pos);
 
-/** Get an int from an arbitrary position 
+/** Get an int from an arbitrary position
  */
 unsigned short jk_b_pget_int(jk_msg_buf_t *msg, int pos);
 
-/** Get a long from an arbitrary position 
+/** Get a long from an arbitrary position
  */
 unsigned long jk_b_pget_long(jk_msg_buf_t *msg, int pos);
 

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_mt.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_mt.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_mt.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -18,7 +18,7 @@
 /***************************************************************************
  * Description: Multi thread portability code for JK                       *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 466585 $                                           *
+ * Version:     $Revision: 550275 $                                           *
  ***************************************************************************/
 
 #ifndef _JK_MT_H
@@ -28,24 +28,16 @@
 
 
 #if defined(WIN32)
-#define jk_gettid()    ((int)GetCurrentThreadId())
+#define jk_gettid()    ((jk_uint32_t)GetCurrentThreadId())
 #elif defined(NETWARE) && !defined(__NOVELL_LIBC__)
 #define getpid()       ((int)GetThreadGroupID())
 #endif
 
-/*
- * All WIN32 code is MT, UNIX code that uses pthreads is marked by the POSIX
- * _REENTRANT define.
- */
-#if defined (WIN32) || defined(_REENTRANT) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
 #ifdef JK_PREFORK 
 #define _MT_CODE 0
 #else
 #define _MT_CODE 1
 #endif
-#else
-#define _MT_CODE 0
-#endif
 
 /*
  * Marks execution under MT compilation
@@ -79,7 +71,7 @@
 #define JK_LEAVE_CS(x, rc)\
             if(pthread_mutex_unlock(x))     rc = JK_FALSE; else rc = JK_TRUE
 
-int jk_gettid(void);
+jk_uint32_t jk_gettid(void);
 #endif /* WIN32 */
 
 #else /* !_MT_CODE */
@@ -96,7 +88,15 @@
 #include <unistd.h>
 #include <fcntl.h>
 
+
+#define USE_FLOCK_LK 0
 #if HAVE_FLOCK
+#ifdef JK_USE_FLOCK
+#define USE_FLOCK_LK 1
+#endif
+#endif
+
+#if USE_FLOCK_LK
 #include <sys/file.h>
 
 #define JK_ENTER_LOCK(x, rc)        \
@@ -111,7 +111,7 @@
       rc = rc == 0 ? JK_TRUE : JK_FALSE; \
     } while (0)
 
-#else
+#else /* !USE_FLOCK_LK */
 
 #define JK_ENTER_LOCK(x, rc)        \
     do {                            \
@@ -136,8 +136,9 @@
       while ((rc = fcntl((x), F_SETLKW, &_fl) < 0) && (errno == EINTR)); \
       rc = rc == 0 ? JK_TRUE : JK_FALSE; \
     } while (0)
-#endif /* HAVE_FLOCK */
 
+#endif /* USE_FLOCK_LK */
+
 #else  /* WIN32 || NETWARE */
 #define JK_ENTER_LOCK(x, rc) rc = JK_TRUE
 #define JK_LEAVE_LOCK(x, rc) rc = JK_TRUE

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_service.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_service.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_service.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -22,7 +22,7 @@
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Dan Milstein <danmil at shore.net>                            *
  * Author:      Henri Gomez <hgomez at apache.org>                            *
- * Version:     $Revision: 483456 $                                          *
+ * Version:     $Revision: 548791 $                                          *
  ***************************************************************************/
 
 #ifndef JK_SERVICE_H
@@ -133,11 +133,11 @@
     const char *server_name;
     unsigned server_port;
     char *server_software;
-    unsigned content_length;        /* integer that represents the content  */
+    jk_uint64_t content_length; /* 64 bit integer that represents the content */
     /* length should be 0 if unknown.        */
     unsigned is_chunked;    /* 1 if content length is unknown (chunked rq) */
     unsigned no_more_chunks;        /* 1 if last chunk has been read */
-    unsigned content_read;  /* number of bytes read */
+    jk_uint64_t content_read;  /* number of bytes read */
 
     /*
      * SSL information
@@ -312,8 +312,8 @@
  */
 struct jk_endpoint
 {
-    size_t rd;
-    size_t wr;
+    jk_uint64_t rd;
+    jk_uint64_t wr;
 
     /*
      * A 'this' pointer which is used by the subclasses of this class to

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_shm.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_shm.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_shm.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: Shared Memory support                                      *
  * Author:      Mladen Turk <mturk at jboss.com>                              *
  * Author:      Rainer Jung <rjung at apache.org>                             *
- * Version:     $Revision: 474921 $                                        *
+ * Version:     $Revision: 551893 $                                        *
  ***************************************************************************/
 
 #include "jk_global.h"
@@ -58,7 +58,8 @@
 struct jk_shm
 {
     size_t     size;
-    const char *filename;
+    char       *filename;
+    char       *lockname;
     int        fd;
     int        fd_lock;
     int        attached;
@@ -69,7 +70,7 @@
 typedef struct jk_shm jk_shm_t;
 
 static const char shm_signature[] = { JK_SHM_MAGIC };
-static jk_shm_t jk_shmem = { 0, NULL, -1, -1, 0, NULL};
+static jk_shm_t jk_shmem = { 0, NULL, NULL, -1, -1, 0, NULL};
 static time_t jk_workers_modified_time = 0;
 static time_t jk_workers_access_time = 0;
 #if defined (WIN32)
@@ -130,7 +131,12 @@
         JK_TRACE_EXIT(l);
         return -1;
     }
-    jk_shmem.filename = "memory";
+    if (!jk_shmem.filename) {
+        if (fname)
+            jk_shmem.filename = strdup(fname);
+        else
+            jk_shmem.filename = strdup("memory");
+    }
     jk_shmem.fd       = 0;
     jk_shmem.attached = attached;
     if (!attached) {
@@ -208,6 +214,10 @@
         JK_DELETE_CS(&(jk_shmem.cs), rc);
     }
     jk_shmem.hdr = NULL;
+    if (jk_shmem.filename) {
+        free(jk_shmem.filename);
+        jk_shmem.filename = NULL;
+    }
 }
 
 #else
@@ -230,41 +240,86 @@
 static int do_shm_open_lock(const char *fname, int attached, jk_logger_t *l)
 {
     int rc;
-    int fd;
-    int flags = O_RDWR;
     char flkname[256];
+#ifdef AS400_UTF8
+    char *wptr;
+#endif
+
     JK_TRACE_ENTER(l);
 
-    jk_shmem.fd_lock = -1;
-    strcpy(flkname, fname);
-    strcat(flkname, ".lock");
-    if (!attached)
-        flags |= (O_CREAT|O_TRUNC);
-    fd = open(flkname, flags, 0666);
-    if (fd == -1) {
+    if (attached && jk_shmem.lockname) {
+#ifdef JK_SHM_LOCK_REOPEN
+        jk_shmem.fd_lock = open(jk_shmem.lockname, O_RDWR, 0666);
+#else
+        errno = EINVAL;
+#endif
+        if (jk_shmem.fd_lock == -1) {
+            rc = errno;
+            JK_TRACE_EXIT(l);
+            return rc;
+        }
+        if (JK_IS_DEBUG_LEVEL(l))
+            jk_log(l, JK_LOG_DEBUG,
+                   "Duplicated shared memory lock %s", jk_shmem.lockname);
         JK_TRACE_EXIT(l);
-        return errno;
+        return 0;
     }
 
-    if (!attached) {
-        if (ftruncate(fd, 1)) {
+    if (!jk_shmem.lockname) {
+#ifdef JK_SHM_LOCK_REOPEN
+        int i;
+        jk_shmem.fd_lock = -1;
+        mode_t mask = umask(0);
+        for (i = 0; i < 8; i++) {
+            strcpy(flkname, "/tmp/jkshmlock.XXXXXX");
+            if (mktemp(flkname)) {
+                jk_shmem.fd_lock = open(flkname, O_RDWR|O_CREAT|O_TRUNC, 0666);
+                if (jk_shmem.fd_lock >= 0)
+                    break;
+            }
+        }
+        umask(mask);
+#else
+        strcpy(flkname, fname);
+        strcat(flkname, ".lock");
+#ifdef AS400_UTF8
+        wptr = (char *)malloc(strlen(flkname) + 1);
+        jk_ascii2ebcdic((char *)flkname, wptr);
+        jk_shmem.fd_lock = open(wptr, O_RDWR|O_CREAT|O_TRUNC, 0666);
+        free(wptr);
+#else
+        jk_shmem.fd_lock = open(flkname, O_RDWR|O_CREAT|O_TRUNC, 0666);
+#endif
+#endif
+        if (jk_shmem.fd_lock == -1) {
             rc = errno;
-            close(fd);
             JK_TRACE_EXIT(l);
             return rc;
-         }
+        }
+        jk_shmem.lockname = strdup(flkname);
     }
-    if (lseek(fd, 0, SEEK_SET) != 0) {
+    else {
+        /* Nothing to do */
+        JK_TRACE_EXIT(l);
+        return 0;
+    }
+
+    if (ftruncate(jk_shmem.fd_lock, 1)) {
         rc = errno;
-        close(fd);
+        close(jk_shmem.fd_lock);
+        jk_shmem.fd_lock = -1;
         JK_TRACE_EXIT(l);
         return rc;
     }
-    jk_shmem.fd_lock = fd;
-
+    if (lseek(jk_shmem.fd_lock, 0, SEEK_SET) != 0) {
+        rc = errno;
+        close(jk_shmem.fd_lock);
+        jk_shmem.fd_lock = -1;
+        return rc;
+    }
     if (JK_IS_DEBUG_LEVEL(l))
         jk_log(l, JK_LOG_DEBUG,
-               "Opened shared memory lock %s", flkname);
+               "Opened shared memory lock %s", jk_shmem.lockname);
     JK_TRACE_EXIT(l);
     return 0;
 }
@@ -274,28 +329,30 @@
 {
     int rc;
     int fd;
-    int flags = O_RDWR;
     void *base;
+#ifdef AS400_UTF8
+    char *wptr;
+#endif
 
     JK_TRACE_ENTER(l);
     if (jk_shmem.hdr) {
         /* Probably a call from vhost */
-        if (JK_IS_DEBUG_LEVEL(l))
-            jk_log(l, JK_LOG_DEBUG,
-                    "Shared memory is already open");
+        if (!attached)
+            attached = 1;
+    }
+    else if (attached) {
+        /* We should already have a header
+         * Use memory if we don't
+         */
+        JK_TRACE_EXIT(l);
         return 0;
     }
-    jk_shmem.filename = fname;
-    if (attached)
-        jk_shmem.attached = (int)getpid();
-    else
-        jk_shmem.attached = 0;
-
     jk_shmem.size = JK_SHM_ALIGN(sizeof(jk_shm_header_t) + sz);
 
-    /* Use plain memory in case there is no file name */
     if (!fname) {
-        jk_shmem.filename  = "memory";
+        /* Use plain memory in case there is no file name */
+        if (!jk_shmem.filename)
+            jk_shmem.filename  = strdup("memory");
         if (JK_IS_DEBUG_LEVEL(l))
             jk_log(l, JK_LOG_DEBUG,
                    "Using process memory as shared memory");
@@ -303,22 +360,40 @@
         return 0;
     }
 
-    if (!attached)
-        flags |= (O_CREAT|O_TRUNC);
-    fd = open(fname, flags, 0666);
-    if (fd == -1) {
-        jk_shmem.size = 0;
-        JK_TRACE_EXIT(l);
-        return errno;
+    if (!jk_shmem.filename) {
+        jk_shmem.filename = (char *)malloc(strlen(fname) + 32);
+        sprintf(jk_shmem.filename, "%s.%" JK_PID_T_FMT, fname, getpid());
     }
-
     if (!attached) {
-        size_t size = lseek(fd, 0, SEEK_END);
+        size_t size;
+        jk_shmem.attached = 0;
+#ifdef AS400_UTF8
+        wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+        jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+        fd = open(wptr, O_RDWR|O_CREAT|O_TRUNC, 0666);
+        free(wptr);
+#else
+        fd = open(jk_shmem.filename, O_RDWR|O_CREAT|O_TRUNC, 0666);
+#endif
+        if (fd == -1) {
+            jk_shmem.size = 0;
+            JK_TRACE_EXIT(l);
+            return errno;
+        }
+        size = lseek(fd, 0, SEEK_END);
         if (size < jk_shmem.size) {
             size = jk_shmem.size;
             if (ftruncate(fd, jk_shmem.size)) {
                 rc = errno;
                 close(fd);
+#ifdef  AS400_UTF8
+                wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+                jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+                unlink(wptr);
+                free(wptr);
+#else
+                unlink(jk_shmem.filename);
+#endif
                 jk_shmem.size = 0;
                 JK_TRACE_EXIT(l);
                 return rc;
@@ -327,31 +402,43 @@
                 jk_log(l, JK_LOG_DEBUG,
                        "Truncated shared memory to %u", size);
         }
-    }
-    if (lseek(fd, 0, SEEK_SET) != 0) {
-        rc = errno;
-        close(fd);
-        jk_shmem.size = 0;
-        JK_TRACE_EXIT(l);
-        return rc;
-    }
+        if (lseek(fd, 0, SEEK_SET) != 0) {
+            rc = errno;
+            close(fd);
+#ifdef  AS400_UTF8
+            wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+            jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+            unlink(wptr);
+            free(wptr);
+#else
+            unlink(jk_shmem.filename);
+#endif
+            jk_shmem.size = 0;
+            JK_TRACE_EXIT(l);
+            return rc;
+        }
 
-    base = mmap((caddr_t)0, jk_shmem.size,
-                PROT_READ | PROT_WRITE,
-                MAP_FILE | MAP_SHARED,
-                fd, 0);
-    if (base == (caddr_t)MAP_FAILED || base == (caddr_t)0) {
-        rc = errno;
-        close(fd);
-        jk_shmem.size = 0;
-        JK_TRACE_EXIT(l);
-        return rc;
-    }
-    jk_shmem.hdr = base;
-    jk_shmem.fd  = fd;
-
-    /* Clear shared memory */
-    if (!attached) {
+        base = mmap((caddr_t)0, jk_shmem.size,
+                    PROT_READ | PROT_WRITE,
+                    MAP_FILE | MAP_SHARED,
+                    fd, 0);
+        if (base == (caddr_t)MAP_FAILED || base == (caddr_t)0) {
+            rc = errno;
+            close(fd);
+#ifdef  AS400_UTF8
+            wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+            jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+            unlink(wptr);
+            free(wptr);
+#else
+            unlink(jk_shmem.filename);
+#endif
+            jk_shmem.size = 0;
+            JK_TRACE_EXIT(l);
+            return rc;
+        }
+        jk_shmem.hdr = base;
+        jk_shmem.fd  = fd;
         memset(jk_shmem.hdr, 0, jk_shmem.size);
         memcpy(jk_shmem.hdr->h.data.magic, shm_signature, JK_SHM_MAGIC_SIZ);
         jk_shmem.hdr->h.data.size = sz;
@@ -362,11 +449,14 @@
                    jk_shmem.size, jk_shmem.hdr->h.data.size, jk_shmem.hdr);
     }
     else {
+        unsigned int nchild;
         jk_shmem.hdr->h.data.childs++;
+        jk_shmem.attached = (int)getpid();
+        nchild = jk_shmem.hdr->h.data.childs;
         if (JK_IS_DEBUG_LEVEL(l))
-            jk_log(l, JK_LOG_INFO,
+            jk_log(l, JK_LOG_DEBUG,
                    "Attached shared memory [%d] size=%u free=%u addr=%#lx",
-                   jk_shmem.hdr->h.data.childs, jk_shmem.hdr->h.data.size,
+                   nchild, jk_shmem.hdr->h.data.size,
                    jk_shmem.hdr->h.data.size - jk_shmem.hdr->h.data.pos,
                    jk_shmem.hdr);
         /*
@@ -376,20 +466,30 @@
          * if the number of workers change between
          * open and attach or between two attach operations.
          */
-        if (jk_shmem.hdr->h.data.childs > 1) {
+        if (nchild > 1) {
             if (JK_IS_DEBUG_LEVEL(l)) {
                 jk_log(l, JK_LOG_DEBUG,
                        "Reseting the shared memory for child %d",
-                       jk_shmem.hdr->h.data.childs);
+                       nchild);
             }
         }
         jk_shmem.hdr->h.data.pos     = 0;
         jk_shmem.hdr->h.data.workers = 0;
     }
     JK_INIT_CS(&(jk_shmem.cs), rc);
-    if ((rc = do_shm_open_lock(fname, attached, l))) {
-        munmap((void *)jk_shmem.hdr, jk_shmem.size);
-        close(jk_shmem.fd);
+    if ((rc = do_shm_open_lock(jk_shmem.filename, attached, l))) {
+        if (!attached) {
+            munmap((void *)jk_shmem.hdr, jk_shmem.size);
+            close(jk_shmem.fd);
+#ifdef  AS400_UTF8
+            wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+            jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+            unlink(wptr);
+            free(wptr);
+#else
+            unlink(jk_shmem.filename);
+#endif
+        }
         jk_shmem.hdr = NULL;
         jk_shmem.fd  = -1;
         JK_TRACE_EXIT(l);
@@ -412,34 +512,68 @@
 void jk_shm_close()
 {
     int rc;
+#ifdef AS400_UTF8
+    char *wptr;
+#endif
+
     if (jk_shmem.hdr) {
         --jk_shmem.hdr->h.data.childs;
 
+#ifdef JK_SHM_LOCK_REOPEN
+        if (jk_shmem.fd_lock >= 0) {
+            close(jk_shmem.fd_lock);
+            jk_shmem.fd_lock = -1;
+        }
+#endif
+        JK_DELETE_CS(&(jk_shmem.cs), rc);
         if (jk_shmem.attached) {
             int p = (int)getpid();
-            if (p != jk_shmem.attached) {
+            if (p == jk_shmem.attached) {
                 /* In case this is a forked child
                  * do not close the shared memory.
                  * It will be closed by the parent.
                  */
-                 return;
+                jk_shmem.size = 0;
+                jk_shmem.hdr  = NULL;
+                jk_shmem.fd   = -1;
+                return;
             }
         }
-        if (jk_shmem.fd_lock >= 0) {
-            close(jk_shmem.fd_lock);
-        }
         if (jk_shmem.fd >= 0) {
             munmap((void *)jk_shmem.hdr, jk_shmem.size);
             close(jk_shmem.fd);
         }
-        jk_shmem.fd_lock = -1;
+        if (jk_shmem.fd_lock >= 0)
+            close(jk_shmem.fd_lock);
+        if (jk_shmem.lockname) {
+#ifdef  AS400_UTF8
+            wptr = (char *)malloc(strlen(jk_shmem.lockname) + 1);
+            jk_ascii2ebcdic((char *)jk_shmem.lockname, wptr);
+            unlink(wptr);
+            free(wptr);
+#else
+            unlink(jk_shmem.lockname);
+#endif
+            free(jk_shmem.lockname);
+            jk_shmem.lockname = NULL;
+        }
+        if (jk_shmem.filename) {
+#ifdef  AS400_UTF8
+            wptr = (char *)malloc(strlen(jk_shmem.filename) + 1);
+            jk_ascii2ebcdic((char *)jk_shmem.filename, wptr);
+            unlink(wptr);
+            free(wptr);
+#else
+            unlink(jk_shmem.filename);
+#endif
+            free(jk_shmem.filename);
+            jk_shmem.filename = NULL;
+        }
     }
-    if (jk_shmem.size) {
-        JK_DELETE_CS(&(jk_shmem.cs), rc);
-    }
-    jk_shmem.size = 0;
-    jk_shmem.hdr  = NULL;
-    jk_shmem.fd   = -1;
+    jk_shmem.size    = 0;
+    jk_shmem.hdr     = NULL;
+    jk_shmem.fd      = -1;
+    jk_shmem.fd_lock = -1;
 }
 
 

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_shm.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_shm.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_shm.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: Shared Memory object header file                           *
  * Author:      Mladen Turk <mturk at jboss.com>                              *
  * Author:      Rainer Jung <rjung at apache.org>                             *
- * Version:     $Revision: 500534 $                                           *
+ * Version:     $Revision: 550272 $                                           *
  ***************************************************************************/
 #ifndef _JK_SHM_H
 #define _JK_SHM_H
@@ -92,6 +92,7 @@
     int     sticky_session;
     int     sticky_session_force;
     int     recover_wait_time;
+    int     max_reply_timeouts;
     int     retries;
     int     lbmethod;
     int     lblock;
@@ -114,6 +115,8 @@
     volatile jk_uint32_t  recoveries;
     /* Number of recovery failures */
     volatile jk_uint32_t  recovery_errors;
+    /* Decayed number of reply_timeout errors */
+    volatile jk_uint32_t  reply_timeouts;
     /* Number of client errors */
     volatile jk_uint32_t  client_errors;
 };

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_status.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_status.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_status.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: Status worker, display and manages JK workers              *
  * Author:      Mladen Turk <mturk at jboss.com>                              *
  * Author:      Rainer Jung <rjung at apache.org>                             *
- * Version:     $Revision: 500830 $                                        *
+ * Version:     $Revision: 562174 $                                        *
  ***************************************************************************/
 
 #include "jk_pool.h"
@@ -73,6 +73,7 @@
 
 #define JK_STATUS_ARG_LB_RETRIES           ("lr")
 #define JK_STATUS_ARG_LB_RECOVER_TIME      ("lt")
+#define JK_STATUS_ARG_LB_MAX_REPLY_TIMEOUTS ("lx")
 #define JK_STATUS_ARG_LB_STICKY            ("ls")
 #define JK_STATUS_ARG_LB_STICKY_FORCE      ("lf")
 #define JK_STATUS_ARG_LB_METHOD            ("lm")
@@ -80,6 +81,7 @@
 
 #define JK_STATUS_ARG_LB_TEXT_RETRIES      "Retries"
 #define JK_STATUS_ARG_LB_TEXT_RECOVER_TIME "Recover Wait Time"
+#define JK_STATUS_ARG_LB_TEXT_MAX_REPLY_TIMEOUTS "Max Reply Timeouts"
 #define JK_STATUS_ARG_LB_TEXT_STICKY       "Sticky Sessions"
 #define JK_STATUS_ARG_LB_TEXT_STICKY_FORCE "Force Sticky Sessions"
 #define JK_STATUS_ARG_LB_TEXT_METHOD       "LB Method"
@@ -137,7 +139,7 @@
 #define JK_STATUS_MASK_DISABLED            0x0000FF00
 #define JK_STATUS_MASK_STOPPED             0x00FF0000
 #define JK_STATUS_MASK_OK                  0x00010101
-#define JK_STATUS_MASK_NA                  0x00020202
+#define JK_STATUS_MASK_IDLE                0x00020202
 #define JK_STATUS_MASK_BUSY                0x00040404
 #define JK_STATUS_MASK_RECOVER             0x00080808
 #define JK_STATUS_MASK_ERROR               0x00101010
@@ -152,7 +154,7 @@
                                            "DTD HTML 3.2 Final//EN\">\n"      \
                                            "<html><head><title>JK Status Manager</title>"
 
-#define JK_STATUS_COPYRIGHT                "Copyright &#169; 1999-2006, The Apache Software Foundation<br />" \
+#define JK_STATUS_COPYRIGHT                "Copyright &#169; 1999-2007, The Apache Software Foundation<br />" \
                                            "Licensed under the <a href=\"http://www.apache.org/licenses/LICENSE-2.0\">" \
                                            "Apache License, Version 2.0</a>."
 
@@ -188,6 +190,7 @@
                                            "<th>" JK_STATUS_ARG_LB_TEXT_METHOD "</th>" \
                                            "<th>" JK_STATUS_ARG_LB_TEXT_LOCK "</th>" \
                                            "<th>" JK_STATUS_ARG_LB_TEXT_RECOVER_TIME "</th>" \
+                                           "<th>" JK_STATUS_ARG_LB_TEXT_MAX_REPLY_TIMEOUTS "</th>" \
                                            "</tr>\n"
 #define JK_STATUS_SHOW_LB_ROW              "<tr>" \
                                            "<td>%s</td>" \
@@ -197,14 +200,15 @@
                                            "<td>%s</td>" \
                                            "<td>%s</td>" \
                                            "<td>%d</td>" \
+                                           "<td>%d</td>" \
                                            "</tr>\n"
 #define JK_STATUS_SHOW_MEMBER_HEAD         "<tr>" \
                                            "<th>&nbsp;</th><th>Name</th><th>Type</th>" \
                                            "<th>Host</th><th>Addr</th>" \
-                                           "<th>Act</th><th>Stat</th>" \
+                                           "<th>Act</th><th>State</th>" \
                                            "<th>D</th><th>F</th><th>M</th>" \
                                            "<th>V</th><th>Acc</th>" \
-                                           "<th>Err</th><th>CE</th>" \
+                                           "<th>Err</th><th>CE</th><th>RE</th>" \
                                            "<th>Wr</th><th>Rd</th><th>Busy</th><th>Max</th>" \
                                            "<th>" JK_STATUS_ARG_LBM_TEXT_ROUTE "</th>" \
                                            "<th>RR</th><th>Cd</th><th>Rs</th>" \
@@ -222,6 +226,7 @@
                                            "<td>%" JK_UINT64_T_FMT "</td>" \
                                            "<td>%" JK_UINT32_T_FMT "</td>" \
                                            "<td>%" JK_UINT32_T_FMT "</td>" \
+                                           "<td>%" JK_UINT32_T_FMT "</td>" \
                                            "<td>%s</td>" \
                                            "<td>%s</td>" \
                                            "<td>%d</td>" \
@@ -323,28 +328,6 @@
     HEADERS_NO_CACHE
 };
 
-#if !defined(HAVE_VSNPRINTF) && !defined(HAVE_APR)
-static FILE *f = NULL;
-static int vsnprintf(char *str, size_t n, const char *fmt, va_list ap)
-{
-    int res;
-
-    if (f == NULL)
-        f = fopen("/dev/null", "w");
-    if (f == NULL)
-        return -1;
-
-    setvbuf(f, str, _IOFBF, n);
-
-    res = vfprintf(f, fmt, ap);
-
-    if (res > 0 && res < n) {
-        res = vsprintf(str, fmt, ap);
-    }
-    return res;
-}
-#endif
-
 static void jk_puts(jk_ws_service_t *s, const char *str)
 {
     if (str)
@@ -390,11 +373,7 @@
         if (NULL == buf)
             return -1;
 #endif
-#ifdef USE_VSPRINTF             /* until we get a vsnprintf function */
-    rc = vsprintf(buf, fmt, args);
-#else
     rc = vsnprintf(buf, HUGE_BUFFER_SIZE, fmt, args);
-#endif
     va_end(args);
     if (rc > 0)
         s->write(s, buf, rc);
@@ -588,8 +567,8 @@
     case JK_LB_STATE_OK:
         mask &= JK_STATUS_MASK_OK;
         break;
-    case JK_LB_STATE_NA:
-        mask &= JK_STATUS_MASK_NA;
+    case JK_LB_STATE_IDLE:
+        mask &= JK_STATUS_MASK_IDLE;
         break;
     case JK_LB_STATE_BUSY:
         mask &= JK_STATUS_MASK_BUSY;
@@ -646,9 +625,11 @@
     case 'O':
     case 'o':
         return JK_STATUS_MASK_OK;
+    case 'I':
+    case 'i':
     case 'N':
     case 'n':
-        return JK_STATUS_MASK_NA;
+        return JK_STATUS_MASK_IDLE;
     case 'B':
     case 'b':
         return JK_STATUS_MASK_BUSY;
@@ -752,7 +733,7 @@
     return def;
 }
 
-const char *status_cmd_text(int cmd)
+static const char *status_cmd_text(int cmd)
 {
     return cmd_type[cmd];
 }
@@ -778,7 +759,7 @@
     return JK_STATUS_CMD_UNKNOWN;
 }
 
-const char *status_mime_text(int mime)
+static const char *status_mime_text(int mime)
 {
     return mime_type[mime];
 }
@@ -943,7 +924,7 @@
 {
     jk_map_t *m;
     status_worker_t *w = p->worker;
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
     char *lasts;
 #endif
     char *param;
@@ -975,7 +956,7 @@
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
     for (param = strtok_r(query, "&", &lasts);
          param; param = strtok_r(NULL, "&", &lasts)) {
 #else
@@ -1393,7 +1374,8 @@
                   lb->retries,
                   jk_lb_get_method(lb, l),
                   jk_lb_get_lock(lb, l),
-                  lb->recover_wait_time);
+                  lb->recover_wait_time,
+                  lb->max_reply_timeouts);
         jk_puts(s, "</table>\n<br/>\n");
 
         jk_puts(s, "<table><tr>"
@@ -1417,6 +1399,7 @@
         jk_print_xml_att_string(s, 4, "sticky_session_force", jk_get_bool(lb->sticky_session_force));
         jk_print_xml_att_int(s, 4, "retries", lb->retries);
         jk_print_xml_att_int(s, 4, "recover_time", lb->recover_wait_time);
+        jk_print_xml_att_int(s, 4, "max_reply_timeouts", lb->max_reply_timeouts);
         jk_print_xml_att_string(s, 4, "method", jk_lb_get_method(lb, l));
         jk_print_xml_att_string(s, 4, "lock", jk_lb_get_lock(lb, l));
         jk_print_xml_att_int(s, 4, "member_count", lb->num_of_workers);
@@ -1440,6 +1423,7 @@
         jk_printf(s, " sticky_session_force=%s", jk_get_bool(lb->sticky_session_force));
         jk_printf(s, " retries=%d", lb->retries);
         jk_printf(s, " recover_time=%d", lb->recover_wait_time);
+        jk_printf(s, " max_reply_timeouts=%d", lb->max_reply_timeouts);
         jk_printf(s, " method=%s", jk_lb_get_method(lb, l));
         jk_printf(s, " lock=%s", jk_lb_get_lock(lb, l));
         jk_printf(s, " member_count=%d", lb->num_of_workers);
@@ -1462,6 +1446,7 @@
         jk_print_prop_att_string(s, w, name, "sticky_session_force", jk_get_bool(lb->sticky_session_force));
         jk_print_prop_att_int(s, w, name, "retries", lb->retries);
         jk_print_prop_att_int(s, w, name, "recover_time", lb->recover_wait_time);
+        jk_print_prop_att_int(s, w, name, "max_reply_timeouts", lb->max_reply_timeouts);
         jk_print_prop_att_string(s, w, name, "method", jk_lb_get_method(lb, l));
         jk_print_prop_att_string(s, w, name, "lock", jk_lb_get_lock(lb, l));
         jk_print_prop_att_int(s, w, name, "member_count", lb->num_of_workers);
@@ -1542,6 +1527,7 @@
                           wr->s->elected,
                           wr->s->errors,
                           wr->s->client_errors,
+                          wr->s->reply_timeouts,
                           status_strfsize(wr->s->transferred, buf_wr),
                           status_strfsize(wr->s->readed, buf_rd),
                           wr->s->busy,
@@ -1573,6 +1559,7 @@
                 jk_print_xml_att_uint64(s, 8, "elected", wr->s->elected);
                 jk_print_xml_att_uint32(s, 8, "errors", wr->s->errors);
                 jk_print_xml_att_uint32(s, 8, "client_errors", wr->s->client_errors);
+                jk_print_xml_att_uint32(s, 8, "reply_timeouts", wr->s->reply_timeouts);
                 jk_print_xml_att_uint64(s, 8, "transferred", wr->s->transferred);
                 jk_print_xml_att_uint64(s, 8, "read", wr->s->readed);
                 jk_print_xml_att_int(s, 8, "busy", wr->s->busy);
@@ -1603,6 +1590,7 @@
                 jk_printf(s, " elected=%" JK_UINT64_T_FMT, wr->s->elected);
                 jk_printf(s, " errors=%" JK_UINT32_T_FMT, wr->s->errors);
                 jk_printf(s, " client_errors=%" JK_UINT32_T_FMT, wr->s->client_errors);
+                jk_printf(s, " reply_timeouts=%" JK_UINT32_T_FMT, wr->s->reply_timeouts);
                 jk_printf(s, " transferred=%" JK_UINT64_T_FMT, wr->s->transferred);
                 jk_printf(s, " read=%" JK_UINT64_T_FMT, wr->s->readed);
                 jk_printf(s, " busy=%d", wr->s->busy);
@@ -1631,6 +1619,7 @@
                 jk_print_prop_att_uint64(s, w, wr->s->name, "elected", wr->s->elected);
                 jk_print_prop_att_uint32(s, w, wr->s->name, "errors", wr->s->errors);
                 jk_print_prop_att_uint32(s, w, wr->s->name, "client_errors", wr->s->client_errors);
+                jk_print_prop_att_uint32(s, w, wr->s->name, "reply_timeouts", wr->s->reply_timeouts);
                 jk_print_prop_att_uint64(s, w, wr->s->name, "transferred", wr->s->transferred);
                 jk_print_prop_att_uint64(s, w, wr->s->name, "read", wr->s->readed);
                 jk_print_prop_att_int(s, w, wr->s->name, "busy", wr->s->busy);
@@ -1886,6 +1875,10 @@
             ":</td><td><input name=\"",
             JK_STATUS_ARG_LB_RECOVER_TIME, "\" type=\"text\" ", NULL);
     jk_printf(s, "value=\"%d\"/></td></tr>\n", lb->recover_wait_time);
+    jk_putv(s, "<tr><td>", JK_STATUS_ARG_LB_TEXT_MAX_REPLY_TIMEOUTS,
+            ":</td><td><input name=\"",
+            JK_STATUS_ARG_LB_MAX_REPLY_TIMEOUTS, "\" type=\"text\" ", NULL);
+    jk_printf(s, "value=\"%d\"/></td></tr>\n", lb->max_reply_timeouts);
     jk_putv(s, "<tr><td>", JK_STATUS_ARG_LB_TEXT_STICKY,
             ":</td><td><input name=\"",
             JK_STATUS_ARG_LB_STICKY, "\" type=\"checkbox\"", NULL);
@@ -2187,6 +2180,14 @@
                w->name, name, i);
         lb->recover_wait_time = i;
     }
+    i = status_get_int(p, JK_STATUS_ARG_LB_MAX_REPLY_TIMEOUTS,
+                       lb->max_reply_timeouts, l);
+    if (i != lb->max_reply_timeouts && i >= 0) {
+        jk_log(l, JK_LOG_INFO,
+               "Status worker '%s' setting 'max_reply_timeouts' for lb worker '%s' to '%i'",
+               w->name, name, i);
+        lb->max_reply_timeouts = i;
+    }
     i = status_get_bool(p, JK_STATUS_ARG_LB_STICKY, 0, l);
     if (i != lb->sticky_session) {
         jk_log(l, JK_LOG_INFO,
@@ -2463,7 +2464,7 @@
     int mime;
     const char *arg;
     unsigned int hide_legend;
-    
+
     JK_TRACE_ENTER(l);
     status_get_string(p, JK_STATUS_ARG_MIME, NULL, &arg, l);
     mime = status_mime_int(arg);
@@ -2493,8 +2494,9 @@
             "<tr><th>Addr</th><td>Backend Address info</td></tr>\n"
             "<tr><th>Act</th><td>Worker activation configuration<br/>\n"
             "ACT=Active, DIS=Disabled, STP=Stopped</td></tr>\n"
-            "<tr><th>Stat</th><td>Worker error status<br/>\n"
-            "OK=OK, N/A=Unknown, ERR=Error, BSY=Busy<br/>\n"
+            "<tr><th>State</th><td>Worker error status<br/>\n"
+            "OK=OK, ERR=Error with substates<br/>\n"
+            "IDLE=No requests handled, BUSY=All connections busy,<br/>\n"
             "REC=Recovering, PRB=Probing, FRC=Forced Recovery</td></tr>\n"
             "<tr><th>D</th><td>Worker distance</td></tr>\n"
             "<tr><th>F</th><td>Load Balancer factor</td></tr>\n"
@@ -2503,6 +2505,7 @@
             "<tr><th>Acc</th><td>Number of requests</td></tr>\n"
             "<tr><th>Err</th><td>Number of failed requests</td></tr>\n"
             "<tr><th>CE</th><td>Number of client errors</td></tr>\n"
+            "<tr><th>RE</th><td>Number of reply timeouts (decayed)</td></tr>\n"
             "<tr><th>Wr</th><td>Number of bytes transferred/min</td></tr>\n"
             "<tr><th>Rd</th><td>Number of bytes read/min</td></tr>\n"
             "<tr><th>Busy</th><td>Current number of busy connections</td></tr>\n"
@@ -2866,6 +2869,7 @@
         for (i = 0; i < lb->num_of_workers; i++) {
             wr = &(lb->lb_workers[i]);
             wr->s->client_errors    = 0;
+            wr->s->reply_timeouts   = 0;
             wr->s->elected          = 0;
             wr->s->elected_snapshot = 0;
             wr->s->error_time       = 0;
@@ -2876,7 +2880,7 @@
             wr->s->recovery_errors  = 0;
             wr->s->readed           = 0;
             wr->s->transferred      = 0;
-            wr->s->state            = JK_LB_STATE_NA;
+            wr->s->state            = JK_LB_STATE_IDLE;
         }
         JK_TRACE_EXIT(l);
         return JK_TRUE;
@@ -2887,6 +2891,7 @@
             return JK_FALSE;
         }
         wr->s->client_errors    = 0;
+        wr->s->reply_timeouts   = 0;
         wr->s->elected          = 0;
         wr->s->elected_snapshot = 0;
         wr->s->error_time       = 0;
@@ -2897,7 +2902,7 @@
         wr->s->recovery_errors  = 0;
         wr->s->readed           = 0;
         wr->s->transferred      = 0;
-        wr->s->state            = JK_LB_STATE_NA;
+        wr->s->state            = JK_LB_STATE_IDLE;
         JK_TRACE_EXIT(l);
         return JK_TRUE;
     }
@@ -2928,6 +2933,27 @@
     }
 
     if (wr->s->state == JK_LB_STATE_ERROR) {
+        lb_worker_t *lb = NULL;
+
+        /* We need an lb to correct the lb_value */
+        if (check_valid_lb(s, p, jw, worker, &lb, 0, l) == JK_FALSE) {
+            JK_TRACE_EXIT(l);
+            return JK_FALSE;
+        }
+
+        if (lb->lbmethod != JK_LB_METHOD_BUSYNESS) {
+            unsigned int i;
+            jk_uint64_t curmax = 0;
+
+            for (i = 0; i < lb->num_of_workers; i++) {
+                if (lb->lb_workers[i].s->lb_value > curmax) {
+                    curmax = lb->lb_workers[i].s->lb_value;
+                }
+            }
+            wr->s->lb_value = curmax;
+        }
+
+        wr->s->reply_timeouts = 0;
         wr->s->state = JK_LB_STATE_RECOVER;
         jk_log(l, JK_LOG_INFO,
                "Status worker '%s' marked worker '%s' sub worker '%s' for recovery",
@@ -2959,10 +2985,10 @@
 
     JK_TRACE_ENTER(l);
 
-    if (is_error)
-        *is_error = JK_FALSE;
     if (!e || !e->endpoint_private || !s || !is_error) {
         JK_LOG_NULL_PARAMS(l);
+        if (is_error)
+            *is_error = JK_HTTP_SERVER_ERROR;
         JK_TRACE_EXIT(l);
         return JK_FALSE;
     }
@@ -2970,6 +2996,9 @@
     p = e->endpoint_private;
     w = p->worker;
 
+    /* Set returned error to OK */
+    *is_error = JK_HTTP_OK;
+
     if (w->num_of_users) {
         if (s->remote_user) {
             unsigned int i;

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_types.h.in
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_types.h.in	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_types.h.in	2007-10-03 19:12:01 UTC (rev 4300)
@@ -18,7 +18,7 @@
 /***************************************************************************
  * Description: Platform specific, auto-detected types.                    *
  * Author:      Rainer Jung <rjung at apache.org>                             *
- * Version:     $Revision: 466585 $                                           *
+ * Version:     $Revision: 549224 $                                           *
  ***************************************************************************/
 
 #ifndef JK_TYPES_H
@@ -53,6 +53,9 @@
 /* And JK_UINT64_T_HEX_FMT */
 @uint64_t_hex_fmt@
 
+/* And JK_PID_T_FMT */
+ at pid_t_fmt@
+
 #ifdef __cplusplus
 }
 #endif                          /* __cplusplus */

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_uri_worker_map.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_uri_worker_map.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_uri_worker_map.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,7 +20,7 @@
  *                                                                         *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Mladen Turk <mturk at apache.org>                             *
- * Version:     $Revision: 511845 $                                          *
+ * Version:     $Revision: 562174 $                                          *
  ***************************************************************************/
 
 #include "jk_pool.h"
@@ -276,7 +276,7 @@
  * Delete all entries of a given source type
  */
 
-int uri_worker_map_clear(jk_uri_worker_map_t *uw_map,
+static int uri_worker_map_clear(jk_uri_worker_map_t *uw_map,
                          unsigned int source_type, jk_logger_t *l)
 {
     uri_worker_record_t *uwr = NULL;
@@ -535,6 +535,7 @@
                               const char *uri, jk_logger_t *l)
 {
     unsigned int i;
+    int reject_unsafe;
     const char *rv = NULL;
     char  url[JK_MAX_URI_LEN+1];
 
@@ -564,6 +565,7 @@
     /* Make the copy of the provided uri and strip
      * everything after the first ';' char.
      */
+    reject_unsafe = uw_map->reject_unsafe;
     for (i = 0; i < strlen(uri); i++) {
         if (i == JK_MAX_URI_LEN) {
             jk_log(l, JK_LOG_WARNING,
@@ -574,15 +576,21 @@
         }
         if (uri[i] == ';')
             break;
-        else
+        else {
             url[i] = uri[i];
+            if (reject_unsafe && (url[i] == '%' || url[i] == '\\')) {
+                jk_log(l, JK_LOG_INFO, "Potentially unsafe request url '%s' rejected", uri);
+                JK_TRACE_EXIT(l);
+                return NULL;
+            }
+        }
     }
     url[i] = '\0';
 
     if (JK_IS_DEBUG_LEVEL(l)) {
         char *url_rewrite = strstr(uri, JK_PATH_SESSION_IDENTIFIER);
         if (url_rewrite)
-            jk_log(l, JK_LOG_DEBUG, "separating session identifier '%s' from url '%s'",
+            jk_log(l, JK_LOG_DEBUG, "Found session identifier '%s' in url '%s'",
                    url_rewrite, uri);
     }
     if (JK_IS_DEBUG_LEVEL(l))
@@ -656,8 +664,8 @@
     jk_map_t *map;
 
     jk_map_alloc(&map);
-    if (jk_map_read_properties(map, uw_map->fname,
-                               &uw_map->modified, 0, l)) {
+    if (jk_map_read_properties(map, uw_map->fname, &uw_map->modified,
+                               JK_MAP_HANDLE_NORMAL, l)) {
         int i;
         if (JK_IS_DEBUG_LEVEL(l))
             jk_log(l, JK_LOG_DEBUG,
@@ -715,7 +723,7 @@
     if (uw_map->reload > 0 && difftime(now, uw_map->checked) > uw_map->reload) {
         struct stat statbuf;
         uw_map->checked = now;
-        if ((rc = stat(uw_map->fname, &statbuf)) == -1) {
+        if ((rc = jk_stat(uw_map->fname, &statbuf)) == -1) {
             jk_log(l, JK_LOG_ERROR,
                    "Unable to stat the %s (errno=%d)",
                    uw_map->fname, errno);

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_uri_worker_map.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_uri_worker_map.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_uri_worker_map.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -18,7 +18,7 @@
 /***************************************************************************
  * Description: URI to worker mapper header file                           *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 479601 $                                           *
+ * Version:     $Revision: 549885 $                                           *
  ***************************************************************************/
 
 #ifndef JK_URI_WORKER_MAP_H
@@ -111,6 +111,8 @@
     /* Dynamic config support */
 
     JK_CRIT_SEC cs;
+    /* should we forward potentially unsafe URLs */
+    int reject_unsafe;    
     /* uriworkermap filename */
     const char *fname;    
     /* uriworkermap reload check interval */

Added: trunk/tomcat5.5/connectors/jk/native/common/jk_url.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_url.c	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_url.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,124 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+/***************************************************************************
+ * Description: URL manipulation subroutines. (ported from mod_proxy).     *
+ * Version:     $Revision: 531816 $                                        *
+ ***************************************************************************/
+
+#include "jk_global.h"
+#include "jk_url.h"
+
+#ifdef HAVE_APR
+#define JK_ISXDIGIT(x) apr_isxdigit((x))
+#define JK_ISDIGIT(x)  apr_isdigit((x))
+#define JK_ISUPPER(x)  apr_isupper((x))
+#define JK_ISALNUM(x)  apr_isalnum((x))
+#else
+#define JK_ISXDIGIT(x) isxdigit((int)(unsigned char)((x)))
+#define JK_ISDIGIT(x)  isdigit((int)(unsigned char)((x)))
+#define JK_ISUPPER(x)  isupper((int)(unsigned char)((x)))
+#define JK_ISALNUM(x)  isalnum((int)(unsigned char)((x)))
+#endif
+
+static void jk_c2hex(int ch, char *x)
+{
+#if !CHARSET_EBCDIC
+    int i;
+
+    x[0] = '%';
+    i = (ch & 0xF0) >> 4;
+    if (i >= 10) {
+        x[1] = ('A' - 10) + i;
+    }
+    else {
+        x[1] = '0' + i;
+    }
+
+    i = ch & 0x0F;
+    if (i >= 10) {
+        x[2] = ('A' - 10) + i;
+    }
+    else {
+        x[2] = '0' + i;
+    }
+#else /*CHARSET_EBCDIC*/
+    static const char ntoa[] = { "0123456789ABCDEF" };
+    char buf[1];
+
+    ch &= 0xFF;
+
+    buf[0] = ch;
+    jk_xlate_to_ascii(buf, 1);
+
+    x[0] = '%';
+    x[1] = ntoa[(buf[0] >> 4) & 0x0F];
+    x[2] = ntoa[buf[0] & 0x0F];
+    x[3] = '\0';
+#endif /*CHARSET_EBCDIC*/
+}
+
+/*
+ * Convert a URL-encoded string to canonical form.
+ * It encodes those which must be encoded, and does not touch
+ * those which must not be touched.
+ * String x must be '\0'-terminated.
+ * String y must be pre-allocated with len maxlen
+ * (including the terminating '\0').
+ */
+int jk_canonenc(const char *x, char *y, int maxlen)
+{
+    int i, j;
+    int ch = x[0];
+    char *allowed;  /* characters which should not be encoded */
+    char *reserved; /* characters which much not be en/de-coded */
+
+/*
+ * N.B. in addition to :@&=, this allows ';' in an http path
+ * and '?' in an ftp path -- this may be revised
+ */
+    allowed = "~$-_.+!*'(),;:@&=";
+    reserved = "/";
+
+    for (i = 0, j = 0; ch != '\0' && j < maxlen; i++, j++, ch=x[i]) {
+/* always handle '/' first */
+        if (strchr(reserved, ch)) {
+            y[j] = ch;
+            continue;
+        }
+/* recode it, if necessary */
+        if (!JK_ISALNUM(ch) && !strchr(allowed, ch)) {
+            if (j+2<maxlen) {
+                jk_c2hex(ch, &y[j]);
+                j += 2;
+            }
+            else {
+                return JK_FALSE;
+            }
+        }
+        else {
+            y[j] = ch;
+        }
+    }
+    if (j<maxlen) {
+        y[j] = '\0';
+        return JK_TRUE;
+    }
+    else {
+        return JK_FALSE;
+    }
+}

Added: trunk/tomcat5.5/connectors/jk/native/common/jk_url.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_url.h	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_url.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,44 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+/***************************************************************************
+ * Description: URL manipulation subroutines header file. (mod_proxy)      *
+ * Version:     $Revision: 500534 $                                        *
+ ***************************************************************************/
+#ifndef _JK_URL_H
+#define _JK_URL_H
+
+#include "jk_global.h"
+#include "jk_pool.h"
+#include "jk_util.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif                          /* __cplusplus */
+
+/*
+ * Do a canonical encoding of the url x.
+ * String y contains the result and is pre-allocated
+ * for at least maxlen bytes, including a '\0' terminator.
+ */
+int jk_canonenc(const char *x, char *y, int maxlen);
+
+#ifdef __cplusplus
+}
+#endif  /* __cplusplus */
+#endif  /* _JK_URL_H */

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_util.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_util.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_util.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,7 +20,7 @@
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Henri Gomez <hgomez at apache.org>                            *
  * Author:      Rainer Jung <rjung at apache.org>                             *
- * Version:     $Revision: 511326 $                                          *
+ * Version:     $Revision: 559693 $                                          *
  ***************************************************************************/
 
 
@@ -65,6 +65,8 @@
 #define BALANCE_WORKERS             ("balance_workers")
 #define STICKY_SESSION              ("sticky_session")
 #define STICKY_SESSION_FORCE        ("sticky_session_force")
+#define LOCAL_WORKER_DEPRECATED     ("local_worker")
+#define LOCAL_WORKER_ONLY_DEPRECATED ("local_worker_only")
 #define JVM_ROUTE_OF_WORKER_DEPRECATED ("jvm_route")
 #define ROUTE_OF_WORKER             ("route")
 #define DOMAIN_OF_WORKER            ("domain")
@@ -76,6 +78,7 @@
 #define IS_WORKER_STOPPED_DEPRECATED  ("stopped")
 #define ACTIVATION_OF_WORKER        ("activation")
 #define WORKER_RECOVER_TIME         ("recover_time")
+#define MAX_REPLY_TIMEOUTS_OF_WORKER ("max_reply_timeouts")
 #define WORKER_MAX_PACKET_SIZE      ("max_packet_size")
 #define STYLE_SHEET_OF_WORKER       ("css")
 #define NAMESPACE_OF_WORKER         ("ns")
@@ -110,7 +113,6 @@
 #define TOMCAT50_BRIDGE_NAME        ("tomcat5")
 
 #define HUGE_BUFFER_SIZE (8*1024)
-#define LOG_LINE_SIZE    (1024)
 
 #define MAKE_WORKER_PARAM(P)     \
         strcpy(buf, "worker.");  \
@@ -124,9 +126,17 @@
  * [Mon Mar 26 19:44:48 2001] [jk_uri_worker_map.c (155)]: Into jk_uri_worker_map_t::uri_worker_map_alloc
  * log format used by apache in error.log
  */
-#ifndef JK_TIME_FORMAT
-#define JK_TIME_FORMAT "[%a %b %d %H:%M:%S %Y] "
-#endif
+#define JK_TIME_CONV_MILLI    "%Q"
+#define JK_TIME_CONV_MICRO    "%q"
+#define JK_TIME_PATTERN_MILLI "000"
+#define JK_TIME_PATTERN_MICRO "000000"
+#define JK_TIME_FORMAT_NONE   "[%a %b %d %H:%M:%S %Y] "
+#define JK_TIME_FORMAT_MILLI  "[%a %b %d %H:%M:%S." JK_TIME_CONV_MILLI " %Y] "
+#define JK_TIME_FORMAT_MICRO  "[%a %b %d %H:%M:%S." JK_TIME_CONV_MICRO " %Y] "
+#define JK_TIME_SUBSEC_NONE   (0)
+#define JK_TIME_SUBSEC_MILLI  (1)
+#define JK_TIME_SUBSEC_MICRO  (2)
+#define JK_TIME_MAX_SIZE      (64)
 
 /* Visual C++ Toolkit 2003 support */
 #if defined (_MSC_VER) && (_MSC_VER == 1310)
@@ -140,6 +150,7 @@
     USER_OF_WORKER,
     GOOD_RATING_OF_WORKER,
     BAD_RATING_OF_WORKER,
+    STATUS_FAIL_OF_WORKER,
     "list",
     NULL
 };
@@ -165,6 +176,8 @@
     LOAD_FACTOR_OF_WORKER,
     STICKY_SESSION,
     STICKY_SESSION_FORCE,
+    LOCAL_WORKER_DEPRECATED,
+    LOCAL_WORKER_ONLY_DEPRECATED,
     JVM_ROUTE_OF_WORKER_DEPRECATED,
     ROUTE_OF_WORKER,
     DOMAIN_OF_WORKER,
@@ -175,6 +188,7 @@
     IS_WORKER_STOPPED_DEPRECATED,
     ACTIVATION_OF_WORKER,
     WORKER_RECOVER_TIME,
+    MAX_REPLY_TIMEOUTS_OF_WORKER,
     WORKER_MAX_PACKET_SIZE,
     STYLE_SHEET_OF_WORKER,
     READ_ONLY_OF_WORKER,
@@ -184,7 +198,6 @@
     XML_NAMESPACE_OF_WORKER,
     XML_DOCTYPE_OF_WORKER,
     PROP_PREFIX_OF_WORKER,
-    STATUS_FAIL_OF_WORKER,
     USER_CASE_OF_WORKER,
     NULL
 };
@@ -206,6 +219,8 @@
     RECYCLE_TIMEOUT_DEPRECATED,
     BALANCED_WORKERS_DEPRECATED,
     JVM_ROUTE_OF_WORKER_DEPRECATED,
+    LOCAL_WORKER_DEPRECATED,
+    LOCAL_WORKER_ONLY_DEPRECATED,
     IS_WORKER_DISABLED_DEPRECATED,
     IS_WORKER_STOPPED_DEPRECATED,
     NULL
@@ -246,6 +261,8 @@
     BALANCE_WORKERS,
     STICKY_SESSION,
     STICKY_SESSION_FORCE,
+    LOCAL_WORKER_DEPRECATED,
+    LOCAL_WORKER_ONLY_DEPRECATED,
     JVM_ROUTE_OF_WORKER_DEPRECATED,
     ROUTE_OF_WORKER,
     DOMAIN_OF_WORKER,
@@ -257,6 +274,7 @@
     IS_WORKER_STOPPED_DEPRECATED,
     ACTIVATION_OF_WORKER,
     WORKER_RECOVER_TIME,
+    MAX_REPLY_TIMEOUTS_OF_WORKER,
     WORKER_MAX_PACKET_SIZE,
     STYLE_SHEET_OF_WORKER,
     NAMESPACE_OF_WORKER,
@@ -275,12 +293,11 @@
     MAINTAIN_PROPERTY_NAME
 };
 
-/* All entries need to have fixed length 8 chars! */
 static const char *jk_level_verbs[] = {
     "[" JK_LOG_TRACE_VERB "] ",
     "[" JK_LOG_DEBUG_VERB "] ",
-    "[" JK_LOG_INFO_VERB "]  ",
-    "[" JK_LOG_WARN_VERB "]  ",
+    "[" JK_LOG_INFO_VERB "] ",
+    "[" JK_LOG_WARN_VERB "] ",
     "[" JK_LOG_ERROR_VERB "] ",
     "[" JK_LOG_EMERG_VERB "] ",
     NULL
@@ -333,74 +350,133 @@
 #endif
 }
 
-static int set_time_str(char *str, int len, const char *jk_log_fmt)
+void jk_set_time_fmt(jk_logger_t *l, const char *jk_log_fmt)
 {
-    time_t t = time(NULL);
-    struct tm *tms;
+    if (l) {
+        char *s;
+        char log_fmt_safe[JK_TIME_MAX_SIZE];
+        char *fmt;
 
-    tms = localtime(&t);
-    if (jk_log_fmt)
-        return (int)strftime(str, len, jk_log_fmt, tms);
-    return (int)strftime(str, len, JK_TIME_FORMAT, tms);
+        if (!jk_log_fmt) {
+#ifndef NO_GETTIMEOFDAY
+            jk_log_fmt = JK_TIME_FORMAT_MILLI;
+#else
+            jk_log_fmt = JK_TIME_FORMAT_NONE;
+#endif
+        }
+        l->log_fmt_type = JK_TIME_SUBSEC_NONE;
+        l->log_fmt_offset = 0;
+        l->log_fmt_size = 0;
+        l->log_fmt_subsec = jk_log_fmt;
+        l->log_fmt = jk_log_fmt;
+
+        fmt = (char *)malloc(JK_TIME_MAX_SIZE + strlen(JK_TIME_PATTERN_MICRO));
+        if (fmt) {
+            strncpy(log_fmt_safe, jk_log_fmt, JK_TIME_MAX_SIZE);
+            if ((s = strstr(log_fmt_safe, JK_TIME_CONV_MILLI))) {
+                size_t offset = s - log_fmt_safe;
+                size_t len = strlen(JK_TIME_PATTERN_MILLI);
+
+                l->log_fmt_type = JK_TIME_SUBSEC_MILLI;
+                l->log_fmt_offset = offset;
+                strncpy(fmt, log_fmt_safe, offset);
+                strncpy(fmt + offset, JK_TIME_PATTERN_MILLI, len);
+                strncpy(fmt + offset + len,
+                        s + strlen(JK_TIME_CONV_MILLI),
+                        JK_TIME_MAX_SIZE - offset - len);
+                fmt[JK_TIME_MAX_SIZE-1] = '\0';
+                l->log_fmt_subsec = fmt;
+                l->log_fmt_size = strlen(fmt);
+            }
+            else if ((s = strstr(log_fmt_safe, JK_TIME_CONV_MICRO))) {
+                size_t offset = s - log_fmt_safe;
+                size_t len = strlen(JK_TIME_PATTERN_MICRO);
+
+                l->log_fmt_type = JK_TIME_SUBSEC_MICRO;
+                l->log_fmt_offset = offset;
+                strncpy(fmt, log_fmt_safe, offset);
+                strncpy(fmt + offset, JK_TIME_PATTERN_MICRO, len);
+                strncpy(fmt + offset + len,
+                        s + strlen(JK_TIME_CONV_MICRO),
+                        JK_TIME_MAX_SIZE - offset - len);
+                fmt[JK_TIME_MAX_SIZE-1] = '\0';
+                l->log_fmt_subsec = fmt;
+                l->log_fmt_size = strlen(fmt);
+            }
+        }
+    }
 }
 
-/* Write at most n characters to the buffer in str, return the
- * number of chars written or -1 if the buffer would have been
- * overflowed.
- *
- * This is portable to any POSIX-compliant system that has /dev/null
- */
-#if !defined(HAVE_VSNPRINTF) && !defined(HAVE_APR)
-static FILE *f = NULL;
-static int vsnprintf(char *str, size_t n, const char *fmt, va_list ap)
+static int set_time_str(char *str, int len, jk_logger_t *l)
 {
-    int res;
+    time_t t;
+    struct tm *tms;
+    int done;
+    char log_fmt[JK_TIME_MAX_SIZE];
 
-    if (f == NULL)
-        f = fopen("/dev/null", "w");
-    if (f == NULL)
-        return -1;
+    if (!l || !l->log_fmt) {
+        return 0;
+    }
 
-    setvbuf(f, str, _IOFBF, n);
+    log_fmt[0] = '\0';
 
-    res = vfprintf(f, fmt, ap);
+#ifndef NO_GETTIMEOFDAY
+    if ( l->log_fmt_type != JK_TIME_SUBSEC_NONE ) {
+        struct timeval tv;
+        int rc = 0;
 
-    if (res > 0 && res < n) {
-        res = vsprintf(str, fmt, ap);
+#ifdef WIN32
+        gettimeofday(&tv, NULL);
+#else
+        rc = gettimeofday(&tv, NULL);
+#endif
+        if (rc == 0) {
+            char subsec[7];
+            t = tv.tv_sec;
+            strncpy(log_fmt, l->log_fmt_subsec, l->log_fmt_size + 1);
+            if (l->log_fmt_type == JK_TIME_SUBSEC_MILLI) {
+                sprintf(subsec, "%03d", (int)(tv.tv_usec/1000));
+                strncpy(log_fmt + l->log_fmt_offset, subsec, 3);
+            }
+            else if (l->log_fmt_type == JK_TIME_SUBSEC_MICRO) {
+                sprintf(subsec, "%06d", (int)(tv.tv_usec));
+                strncpy(log_fmt + l->log_fmt_offset, subsec, 6);
+            }
+        }
+        else {
+            t = time(NULL);
+        }
     }
-    return res;
-}
+    else {
+        t = time(NULL);
+    }
+#else
+    t = time(NULL);
 #endif
-#if !defined(HAVE_SNPRINTF) && !defined(HAVE_APR)
-static int snprintf(char *str, size_t n, const char *fmt, ...)
-{
-    va_list ap;
-    int res;
+    tms = localtime(&t);
+    if (log_fmt[0])
+        done = (int)strftime(str, len, log_fmt, tms);
+    else
+        done = (int)strftime(str, len, l->log_fmt, tms);
+    return done;
 
-    va_start(ap, fmt);
-    res = vsnprintf(str, n, fmt, ap);
-    va_end(ap);
-    return res;
 }
-#endif
 
-static int JK_METHOD log_to_file(jk_logger_t *l, int level, const char *what)
+static int JK_METHOD log_to_file(jk_logger_t *l, int level, int used, char *what)
 {
     if (l &&
         (l->level <= level || level == JK_LOG_REQUEST_LEVEL) &&
         l->logger_private && what) {
-        size_t sz = strlen(what);
-        if (sz) {
-            file_logger_t *p = l->logger_private;
-            if (fwrite(what, 1, sz, p->logfile)) {
-                /* [V] Flush the dam' thing! */
-                fflush(p->logfile);
-            }
+        jk_file_logger_t *p = l->logger_private;
+        if (p->logfile) {
+            what[used++] = '\n';
+            what[used] = '\0';
+            fputs(what, p->logfile);
+            /* [V] Flush the dam' thing! */
+            fflush(p->logfile);
         }
-
         return JK_TRUE;
     }
-
     return JK_FALSE;
 }
 
@@ -436,20 +512,22 @@
 int jk_open_file_logger(jk_logger_t **l, const char *file, int level)
 {
     if (l && file) {
+
         jk_logger_t *rc = (jk_logger_t *)malloc(sizeof(jk_logger_t));
-        file_logger_t *p = (file_logger_t *) malloc(sizeof(file_logger_t));
+        jk_file_logger_t *p = (jk_file_logger_t *) malloc(sizeof(jk_file_logger_t));
         if (rc && p) {
             rc->log = log_to_file;
             rc->level = level;
-            rc->log_fmt = NULL;
+            jk_set_time_fmt(rc, NULL);
             rc->logger_private = p;
-#ifdef AS400
+#if defined(AS400) && !defined(AS400_UTF8)
             p->logfile = fopen(file, "a+, o_ccsid=0");
 #else
             p->logfile = fopen(file, "a+");
 #endif
             if (p->logfile) {
                 *l = rc;
+                jk_log(rc, JK_LOG_DEBUG, "log time stamp format is '%s'", rc->log_fmt);
                 return JK_TRUE;
             }
         }
@@ -468,7 +546,7 @@
 int jk_close_file_logger(jk_logger_t **l)
 {
     if (l && *l) {
-        file_logger_t *p = (*l)->logger_private;
+        jk_file_logger_t *p = (*l)->logger_private;
         if (p) {
             fflush(p->logfile);
             fclose(p->logfile);
@@ -487,12 +565,12 @@
            const char *fmt, ...)
 {
     int rc = 0;
-    /* Need to reserve space for newline and terminating zero byte. */
-#ifdef WIN32
-    static int usable_size = HUGE_BUFFER_SIZE-3;
-#else
-    static int usable_size = HUGE_BUFFER_SIZE-2;
-#endif
+    /*
+     * Need to reserve space for terminating zero byte
+     * and platform specific line endings added during the call
+     * to the output routing.
+     */
+    static int usable_size = HUGE_BUFFER_SIZE - 3;
     if (!l || !file || !fmt) {
         return -1;
     }
@@ -521,42 +599,53 @@
         if (NULL == buf)
             return -1;
 #endif
-        used = set_time_str(buf, usable_size, l->log_fmt);
+        used = set_time_str(buf, usable_size, l);
 
-        if (line) {
+        if (line) { /* line==0 only used for request log item */
             /* Log [pid:threadid] for all levels except REQUEST. */
             /* This information helps to correlate lines from different logs. */
             /* Performance is no issue, because with production log levels */
             /* we only call it often, if we have a lot of errors */
-#ifdef USE_SPRINTF              /* until we get a snprintf function */
-            rc = sprintf(&buf[used], "[%04d:%04d] ", getpid(),
-                            jk_gettid());
-#else
-            rc = snprintf(&buf[used], usable_size - used,
-                             "[%04d:%04d] ", getpid(), jk_gettid());
-#endif
+            rc = snprintf(buf + used, usable_size - used,
+                          "[%" JK_PID_T_FMT ":%" JK_UINT32_T_FMT "] ", getpid(), jk_gettid());
             used += rc;
-            if (rc < 0 || usable_size - used < 8) {
+            if (rc < 0 ) {
                 return 0;
             }
-            strcat(buf, jk_level_verbs[level]);
-            used += 8;
 
+            rc = (int)strlen(jk_level_verbs[level]);
+            if (usable_size - used >= rc) {
+                strncpy(buf + used, jk_level_verbs[level], rc);
+                used += rc;
+            }
+            else {
+                return 0;           /* [V] not sure what to return... */
+            }
+
             if (funcname) {
-                rc = (int)strlen(funcname) + 2;
-                if (usable_size - used >= rc) {
-                    strcat(buf, funcname);
-                    strcat(buf, "::");
+                rc = (int)strlen(funcname);
+                if (usable_size - used >= rc + 2) {
+                    strncpy(buf + used, funcname, rc);
                     used += rc;
+                    strncpy(buf + used, "::", 2);
+                    used += 2;
                 }
+                else {
+                    return 0;           /* [V] not sure what to return... */
+                }
             }
 
-#ifdef USE_SPRINTF              /* until we get a snprintf function */
-            rc = sprintf(&buf[used], "%s (%d): ", f, line);
-#else
-            rc = snprintf(&buf[used], usable_size - used,
-                             "%s (%d): ", f, line);
-#endif
+            rc = (int)strlen(f);
+            if (usable_size - used >= rc) {
+                strncpy(buf + used, f, rc);
+                used += rc;
+            }
+            else {
+                return 0;           /* [V] not sure what to return... */
+            }
+
+            rc = snprintf(buf + used, usable_size - used,
+                          " (%d): ", line);
             used += rc;
             if (rc < 0 || usable_size - used < 0) {
                 return 0;           /* [V] not sure what to return... */
@@ -564,23 +653,15 @@
         }
 
         va_start(args, fmt);
-#ifdef USE_VSPRINTF             /* until we get a vsnprintf function */
-        rc = vsprintf(buf + used, fmt, args);
-#else
         rc = vsnprintf(buf + used, usable_size - used, fmt, args);
-#endif
+        va_end(args);
         if ( rc <= usable_size - used ) {
             used += rc;
         } else {
             used = usable_size;
         }
-#ifdef WIN32
-        buf[used++] = '\r';
-#endif
-        buf[used] = '\n';
-        buf[used+1] = 0;
-        va_end(args);
-        l->log(l, level, buf);
+        l->log(l, level, used, buf);
+
 #ifdef NETWARE
         free(buf);
 #endif
@@ -783,6 +864,19 @@
     return jk_map_get_int(m, buf, def);
 }
 
+int jk_get_worker_max_reply_timeouts(jk_map_t *m, const char *wname, int def)
+{
+    char buf[1024];
+
+    if (!m || !wname) {
+        return -1;
+    }
+
+    MAKE_WORKER_PARAM(MAX_REPLY_TIMEOUTS_OF_WORKER);
+
+    return jk_map_get_int(m, buf, def);
+}
+
 int jk_get_worker_socket_buffer(jk_map_t *m, const char *wname, int def)
 {
     char buf[1024];
@@ -1082,17 +1176,21 @@
     return sz;
 }
 
-int jk_get_worker_fail_on_status(jk_map_t *m, const char *wname)
+int jk_get_worker_fail_on_status(jk_map_t *m, const char *wname,
+                                 int *list, unsigned int list_size)
 {
     char buf[1024];
-
-    if (!m || !wname) {
+    if (!m || !wname || !list) {
         return 0;
     }
-
     MAKE_WORKER_PARAM(STATUS_FAIL_OF_WORKER);
-    return jk_map_get_int(m, buf, 0);
+    if (list_size) {
+        return jk_map_get_int_list(m, buf,
+                                   list, list_size,
+                                   NULL);
+    }
 
+    return 0;
 }
 
 int jk_get_worker_user_case_insensitive(jk_map_t *m, const char *wname)
@@ -1441,18 +1539,36 @@
 }
 
 
+int jk_stat(const char *f, struct stat * statbuf)
+{
+  int rc;
+/**
+ * i5/OS V5R4 expect filename in ASCII for fopen but required them in EBCDIC for stat()
+ */
+#ifdef AS400_UTF8
+  char *ptr;
+
+  ptr = (char *)malloc(strlen(f) + 1);
+  jk_ascii2ebcdic((char *)f, ptr);
+  rc = stat(ptr, statbuf);
+  free(ptr);
+#else
+  rc = stat(f, statbuf);
+#endif
+
+  return (rc);
+}
+
+
 int jk_file_exists(const char *f)
 {
     if (f) {
         struct stat st;
-#ifdef AS400
-        if ((0 == stat(f, &st)) && (st.st_mode & _S_IFREG)) {
-#else
-        if ((0 == stat(f, &st)) && (st.st_mode & S_IFREG)) {
-#endif
-            return JK_TRUE;
-        }
+
+        if ((0 == jk_stat(f, &st)) && (st.st_mode & S_IFREG))
+      return JK_TRUE;
     }
+
     return JK_FALSE;
 }
 
@@ -1606,7 +1722,7 @@
 char **jk_parse_sysprops(jk_pool_t *p, const char *sysprops)
 {
     char **rc = NULL;
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
     char *lasts;
 #endif
 
@@ -1624,7 +1740,7 @@
             rc = jk_pool_alloc(p, (num_of_prps + 1) * sizeof(char *));
             if (rc) {
                 unsigned i = 0;
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
                 char *tmp = strtok_r(prps, "*", &lasts);
 #else
                 char *tmp = strtok(prps, "*");
@@ -1632,7 +1748,7 @@
 
                 while (tmp && i < num_of_prps) {
                     rc[i] = tmp;
-#if defined(AS400) || defined(_REENTRANT)
+#ifdef _REENTRANT
                     tmp = strtok_r(NULL, "*", &lasts);
 #else
                     tmp = strtok(NULL, "*");
@@ -1709,17 +1825,134 @@
 }
 
 #ifdef _MT_CODE_PTHREAD
-int jk_gettid()
+jk_uint32_t jk_gettid()
 {
-    pthread_t t = pthread_self();
+    union {
+        pthread_t tid;
+        jk_uint64_t alignme;
+    } u;
 #ifdef AS400
-    /* OS400 use 64 bits ThreadId, get only low 32 bits for now */
+    /* OS400 use 64 bits ThreadId */
     pthread_id_np_t       tid;
-    pthread_getunique_np(&t, &tid);
-    return ((int)(tid.intId.lo & 0xFFFFFFFF));
+#endif /* AS400 */
+    u.tid = pthread_self();
+#ifdef AS400
+    /* Get only low 32 bits for now */
+    pthread_getunique_np(&(u.tid), &tid);
+    return ((jk_uint32_t)(tid.intId.lo & 0xFFFFFFFF));
 #else
-    int tid = (int)(t & 0xFFFF);
-    return tid;
+    switch(sizeof(pthread_t)) {
+    case sizeof(jk_uint32_t):
+        return *(jk_uint32_t *)&u.tid;
+    case sizeof(jk_uint64_t):
+        return (*(jk_uint64_t *)&u.tid) & 0xFFFFFFFF;
+    default:
+        return 0;
+    }
 #endif /* AS400 */
 }
 #endif
+
+/***
+ * ASCII <-> EBCDIC conversions
+ *
+ * For now usefull only in i5/OS V5R4 where UTF and EBCDIC mode are mixed
+ */
+
+#ifdef AS400_UTF8
+
+/* EBCDIC to ASCII translation table */
+static u_char ebcdic_to_ascii[256] =
+{
+  0x00,0x01,0x02,0x03,0x20,0x09,0x20,0x7f, /* 00-07 */
+  0x20,0x20,0x20,0x0b,0x0c,0x0d,0x0e,0x0f, /* 08-0f */
+  0x10,0x11,0x12,0x13,0x20,0x0a,0x08,0x20, /* 10-17 */
+  0x18,0x19,0x20,0x20,0x20,0x1d,0x1e,0x1f, /* 18-1f */
+  0x20,0x20,0x1c,0x20,0x20,0x0a,0x17,0x1b, /* 20-27 */
+  0x20,0x20,0x20,0x20,0x20,0x05,0x06,0x07, /* 28-2f */
+  0x20,0x20,0x16,0x20,0x20,0x20,0x20,0x04, /* 30-37 */
+  0x20,0x20,0x20,0x20,0x14,0x15,0x20,0x1a, /* 38-3f */
+  0x20,0x20,0x83,0x84,0x85,0xa0,0xc6,0x86, /* 40-47 */
+  0x87,0xa4,0xbd,0x2e,0x3c,0x28,0x2b,0x7c, /* 48-4f */
+  0x26,0x82,0x88,0x89,0x8a,0xa1,0x8c,0x8b, /* 50-57 */
+  0x8d,0xe1,0x21,0x24,0x2a,0x29,0x3b,0xaa, /* 58-5f */
+  0x2d,0x2f,0xb6,0x8e,0xb7,0xb5,0xc7,0x8f, /* 60-67 */
+  0x80,0xa5,0xdd,0x2c,0x25,0x5f,0x3e,0x3f, /* 68-6f */
+  0x9b,0x90,0xd2,0xd3,0xd4,0xd6,0xd7,0xd8, /* 70-77 */
+  0xde,0x60,0x3a,0x23,0x40,0x27,0x3d,0x22, /* 78-7f */
+  0x9d,0x61,0x62,0x63,0x64,0x65,0x66,0x67, /* 80-87 */
+  0x68,0x69,0xae,0xaf,0xd0,0xec,0xe7,0xf1, /* 88-8f */
+  0xf8,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70, /* 90-97 */
+  0x71,0x72,0xa6,0xa7,0x91,0xf7,0x92,0xcf, /* 98-9f */
+  0xe6,0x7e,0x73,0x74,0x75,0x76,0x77,0x78, /* a8-a7 */
+  0x79,0x7a,0xad,0xa8,0xd1,0xed,0xe8,0xa9, /* a8-af */
+  0x5e,0x9c,0xbe,0xfa,0xb8,0x15,0x14,0xac, /* b0-b7 */
+  0xab,0xf3,0x5b,0x5d,0xee,0xf9,0xef,0x9e, /* b8-bf */
+  0x7b,0x41,0x42,0x43,0x44,0x45,0x46,0x47, /* c0-c7 */
+  0x48,0x49,0xf0,0x93,0x94,0x95,0xa2,0xe4, /* c8-cf */
+  0x7d,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50, /* d0-d7 */
+  0x51,0x52,0xfb,0x96,0x81,0x97,0xa3,0x98, /* d8-df */
+  0x5c,0xf6,0x53,0x54,0x55,0x56,0x57,0x58, /* e0-e7 */
+  0x59,0x5a,0xfc,0xe2,0x99,0xe3,0xe0,0xe5, /* e8-ef */
+  0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, /* f0-f7 */
+  0x38,0x39,0xfd,0xea,0x9a,0xeb,0xe9,0xff  /* f8-ff */
+};
+
+/* ASCII to EBCDIC translation table */
+static u_char ascii_to_ebcdic[256] =
+{
+  0x00,0x01,0x02,0x03,0x37,0x2d,0x2e,0x2f, /* 00-07 */
+  0x16,0x05,0x25,0x0b,0x0c,0x0d,0x0e,0x0f, /* 08-0f */
+  0x10,0x11,0x12,0x13,0x3c,0x3d,0x32,0x26, /* 10-17 */
+  0x18,0x19,0x3f,0x27,0x22,0x1d,0x1e,0x1f, /* 18-1f */
+  0x40,0x5a,0x7f,0x7b,0x5b,0x6c,0x50,0x7d, /* 20-27 */
+  0x4d,0x5d,0x5c,0x4e,0x6b,0x60,0x4b,0x61, /* 28-2f */
+  0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7, /* 30-37 */
+  0xf8,0xf9,0x7a,0x5e,0x4c,0x7e,0x6e,0x6f, /* 38-3f */
+  0x7c,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7, /* 40-47 */
+  0xc8,0xc9,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6, /* 48-4f */
+  0xd7,0xd8,0xd9,0xe2,0xe3,0xe4,0xe5,0xe6, /* 50-57 */
+  0xe7,0xe8,0xe9,0xba,0xe0,0xbb,0xb0,0x6d, /* 58-5f */
+  0x79,0x81,0x82,0x83,0x84,0x85,0x86,0x87, /* 60-67 */
+  0x88,0x89,0x91,0x92,0x93,0x94,0x95,0x96, /* 68-6f */
+  0x97,0x98,0x99,0xa2,0xa3,0xa4,0xa5,0xa6, /* 70-77 */
+  0xa7,0xa8,0xa9,0xc0,0x4f,0xd0,0xa1,0x07, /* 78-7f */
+  0x68,0xdc,0x51,0x42,0x43,0x44,0x47,0x48, /* 80-87 */
+  0x52,0x53,0x54,0x57,0x56,0x58,0x63,0x67, /* 88-8f */
+  0x71,0x9c,0x9e,0xcb,0xcc,0xcd,0xdb,0xdd, /* 90-97 */
+  0xdf,0xec,0xfc,0x70,0xb1,0x80,0xbf,0x40, /* 98-9f */
+  0x45,0x55,0xee,0xde,0x49,0x69,0x9a,0x9b, /* a8-a7 */
+  0xab,0xaf,0x5f,0xb8,0xb7,0xaa,0x8a,0x8b, /* a8-af */
+  0x40,0x40,0x40,0x40,0x40,0x65,0x62,0x64, /* b0-b7 */
+  0xb4,0x40,0x40,0x40,0x40,0x4a,0xb2,0x40, /* b8-bf */
+  0x40,0x40,0x40,0x40,0x40,0x40,0x46,0x66, /* c0-c7 */
+  0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x9f, /* c8-cf */
+  0x8c,0xac,0x72,0x73,0x74,0x89,0x75,0x76, /* d0-d7 */
+  0x77,0x40,0x40,0x40,0x40,0x6a,0x78,0x40, /* d8-df */
+  0xee,0x59,0xeb,0xed,0xcf,0xef,0xa0,0x8e, /* e0-e7 */
+  0xae,0xfe,0xfb,0xfd,0x8d,0xad,0xbc,0xbe, /* e8-ef */
+  0xca,0x8f,0x40,0xb9,0xb6,0xb5,0xe1,0x9d, /* f0-f7 */
+  0x90,0xbd,0xb3,0xda,0xea,0xfa,0x40,0x40  /* f8-ff */
+};
+
+void jk_ascii2ebcdic(char *src, char *dst) {
+    char c;
+
+    while ((c = *src++) != 0) {
+        *dst++ = ascii_to_ebcdic[(unsigned int)c];
+    }
+
+    *dst = 0;
+}
+
+void jk_ebcdic2ascii(char *src, char *dst) {
+    char c;
+
+    while ((c = *src++) != 0) {
+        *dst++ = ebcdic_to_ascii[(unsigned int)c];
+    }
+
+    *dst = 0;
+}
+
+#endif

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_util.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_util.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_util.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,7 +20,7 @@
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Henri Gomez <hgomez at apache.org>                            *
  * Author:      Rainer Jung <rjung at apache.org>                             *
- * Version:     $Revision: 511527 $                                          *
+ * Version:     $Revision: 559480 $                                          *
  ***************************************************************************/
 #ifndef _JK_UTIL_H
 #define _JK_UTIL_H
@@ -39,6 +39,8 @@
 
 void jk_sleep(int ms);
 
+void jk_set_time_fmt(jk_logger_t *l, const char *jk_log_fmt);
+
 int jk_parse_log_level(const char *level);
 
 int jk_open_file_logger(jk_logger_t **l, const char *file, int level);
@@ -86,6 +88,8 @@
 
 int jk_get_worker_recover_timeout(jk_map_t *m, const char *wname, int def);
 
+int jk_get_worker_max_reply_timeouts(jk_map_t *m, const char *wname, int def);
+
 const char *jk_get_worker_route(jk_map_t *m, const char *wname, const char *def);
 
 const char *jk_get_worker_domain(jk_map_t *m, const char *wname, const char *def);
@@ -199,8 +203,10 @@
 
 const char *jk_get_worker_prop_prefix(jk_map_t *m, const char *wname, const char *def);
 
-int jk_get_worker_fail_on_status(jk_map_t *m, const char *wname);
+int jk_get_worker_fail_on_status(jk_map_t *m, const char *wname,
+                                 int *list, unsigned int list_size);
 
+
 int jk_get_worker_user_case_insensitive(jk_map_t *m, const char *wname);
 
 #define TC32_BRIDGE_TYPE    32
@@ -209,6 +215,24 @@
 #define TC41_BRIDGE_TYPE    41
 #define TC50_BRIDGE_TYPE    50
 
+#ifdef AS400
+
+#define S_IFREG _S_IFREG
+
+#ifdef AS400_UTF8
+
+void jk_ascii2ebcdic(char *src, char *dst);
+void jk_ebcdic2ascii(char *src, char *dst);
+
+#endif /* AS400_UTF8 */
+
+#endif
+
+/* i5/OS V5R4 need ASCII-EBCDIC conversion before stat() call */
+/* added a stat() mapper function, jk_stat, for such purpose */
+
+int jk_stat(const char *f, struct stat * statbuf);
+
 #ifdef __cplusplus
 extern "C"
 {

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_version.h
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_version.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_version.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 
 /***************************************************************************
  * Description: JK version header file                                     *
- * Version:     $Revision: 513747 $                                           *
+ * Version:     $Revision: 563423 $                                           *
  ***************************************************************************/
 
 #ifndef __JK_VERSION_H
@@ -26,14 +26,14 @@
 /************** START OF AREA TO MODIFY BEFORE RELEASING *************/
 #define JK_VERMAJOR     1
 #define JK_VERMINOR     2
-#define JK_VERFIX       22
-#define JK_VERSTRING    "1.2.22"
+#define JK_VERFIX       25
+#define JK_VERSTRING    "1.2.25"
 
 /* Beta number */
 #define JK_VERBETA      0
 #define JK_BETASTRING   "0"
 /* set JK_VERISRELEASE to 1 when release (do not forget to commit!) */
-#define JK_VERISRELEASE 0
+#define JK_VERISRELEASE 1
 #define JK_VERRC        0
 #define JK_RCSTRING     "0"
 

Modified: trunk/tomcat5.5/connectors/jk/native/common/jk_worker.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/jk_worker.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/jk_worker.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: Workers controller                                         *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  * Author:      Henri Gomez <hgomez at apache.org>                            *
- * Version:     $Revision: 500805 $                                          *
+ * Version:     $Revision: 555180 $                                          *
  ***************************************************************************/
 
 #define _PLACE_WORKER_LIST_HERE
@@ -62,6 +62,7 @@
         return JK_FALSE;
     }
 
+    jk_map_dump(init_data, l);
     if (!jk_get_worker_list(init_data, &(we->worker_list),
                             &we->num_of_workers)) {
         JK_TRACE_EXIT(l);
@@ -184,7 +185,8 @@
                                        name, SOURCE_TYPE_WORKERDEF, l) == JK_FALSE) {
                     w->destroy(&w, l);
                     jk_log(l, JK_LOG_ERROR,
-                           "validate failed for %s", name);
+                           "mounting %s failed for %s",
+                           map_names[i], name);
                     JK_TRACE_EXIT(l);
                     return JK_FALSE;
                 }

Modified: trunk/tomcat5.5/connectors/jk/native/common/list.mk.in
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/list.mk.in	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/list.mk.in	2007-10-03 19:12:01 UTC (rev 4300)
@@ -8,4 +8,5 @@
                 ${JK}jk_ajp14${OEXT} ${JK}jk_ajp14_worker${OEXT} \
                 ${JK}jk_md5${OEXT} ${JK}jk_shm${OEXT} @JK_JNI_WORKER@ \
                 ${JK}jk_ajp_common${OEXT} ${JK}jk_context${OEXT} \
+                ${JK}jk_url${OEXT} \
                 ${JK}jk_status${OEXT}

Modified: trunk/tomcat5.5/connectors/jk/native/common/portable.h.sample
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/common/portable.h.sample	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/common/portable.h.sample	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,6 +1,6 @@
-/* On most platform this file is overwritten when doing configure */
-/* common/portable.h.  Generated by configure.  */
-/* common/portable.h.in.  Generated from configure.in by autoheader.  */
+/* Sample file for common/portable.h. */
+/* On most platforms the file common/portable.h is generated */
+/* by configure from common/portable.h.in. */
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define HAVE_DLFCN_H 1
@@ -80,6 +80,9 @@
 /* The size of `long long', as computed by sizeof. */
 #define SIZEOF_LONG_LONG 8
 
+/* The size of pid_t */
+#define SIZEOF_PID_T 4
+
 /* The size of `short', as computed by sizeof. */
 #define SIZEOF_SHORT 2
 
@@ -93,4 +96,4 @@
 #define USE_SO_SNDTIMEO 1
 
 /* Version number of package */
-#define VERSION "1.2.22"
+#define VERSION "1.2.25"

Modified: trunk/tomcat5.5/connectors/jk/native/configure.in
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/configure.in	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/configure.in	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,7 @@
 dnl
 dnl Process this file with autoconf to produce a configure script
 dnl
-AC_REVISION($Id: configure.in 513780 2007-03-02 14:25:46Z jfclere $)dnl
+AC_REVISION($Id: configure.in 563087 2007-08-06 10:07:40Z rjung $)dnl
 
 AC_PREREQ(2.13)
 AC_INIT(common/jk_worker.h)
@@ -11,21 +11,15 @@
 
 dnl package and version. (synchronization with common/jk_version.h ?)
 PACKAGE=mod_jk
-VERSION=1.2.22
+VERSION=1.2.25
 
 AM_INIT_AUTOMAKE(${PACKAGE}, ${VERSION})
 
-AC_PROG_CC
-AC_PROG_LD
+dnl
+dnl Include our own M4 macros
+dnl
+sinclude(scripts/build/jk_common.m4)
 
-dnl Not sure what it does, but the libtool manual seems to require this
-dnl It should use the native platform dlopen ( if available )
-AC_LIBTOOL_DLOPEN
-
-dnl AM_PROG_LIBTOOL often causes problems.
-dnl I have solved them once using aclocal --acdir=/usr/local/share/aclocal/
-AM_PROG_LIBTOOL
-
 AC_PATH_PROG(TEST,test,$PATH)dnl
 AC_SUBST(TEST)
 
@@ -47,7 +41,107 @@
 AC_PATH_PROG(MKDIR,mkdir,$PATH)dnl
 AC_SUBST(MKDIR)
 
-dnl AC_PATH_PROG(LIBTOOL,libtool,$PATH)dnl
+APACHE_CONFIG_VARS=`pwd`/scripts/build/config_vars.mk
+WEBSERVER=""
+apache_dir=""
+apache_include=""
+APXS="apxs"
+AC_ARG_WITH(apxs,
+[  --with-apxs[=FILE]      Build shared Apache module. FILE is the optional
+                        pathname to the apxs tool; defaults to finding
+			apxs in your PATH.],
+[
+    case "${withval}" in
+        y | yes | true) find_apxs=true ;;
+        n | no | false) find_apxs=false ;;
+        *) find_apxs=false ;;
+    esac
+
+    if ${TEST} ${find_apxs} ; then
+        AC_MSG_RESULT([need to check for Perl first, apxs depends on it...])
+        AC_PATH_PROG(PERL,perl,$PATH)dnl
+
+        if ${TEST} ${find_apxs} ; then
+            APXS=${withval}
+        else
+            AC_PATH_PROG(APXS,apxs,$PATH)dnl
+        fi
+
+        if ${TEST} -n "${APXS}" ; then
+            dnl Seems that we have it, but have to check if it is OK first
+            if ${TEST} ! -x "${APXS}" ; then
+                AC_MSG_ERROR(Invalid location for apxs: '${APXS}')
+            fi
+
+            ${APXS} -q PREFIX >/dev/null 2>/dev/null || apxs_support=false
+
+            if ${TEST} "${apxs_support}" = "false" ; then
+                AC_MSG_RESULT(could not find ${APXS})
+                AC_MSG_ERROR(You must specify a valid --with-apxs path)
+            fi
+
+            dnl apache_dir and apache_include are also needed.
+            apache_dir=`$APXS -q PREFIX`
+            apache_include="-I`$APXS -q INCLUDEDIR`"
+
+            dnl test apache version
+            APA=`${GREP} STANDARD20 ${APXS}`
+            if ${TEST} -z "$APA" ; then
+                WEBSERVER="apache-1.3"
+		APXSCC="`$APXS -q CC`"
+		APXSCFLAGS="`$APXS -q CFLAGS` -DJK_PREFORK"
+		APXS_CPPFLAGS=""
+            else
+                WEBSERVER="apache-2.0"
+              	APRINCLUDEDIR=""
+              	INCTEMP="`$APXS -q APR_INCLUDEDIR` `$APXS -q APU_INCLUDEDIR`"
+              	for INC in ${INCTEMP}; do
+              	    APRINCLUDEDIR="${APRINCLUDEDIR} -I${INC}"
+              	done
+                AC_MSG_RESULT([APRINCLUDEDIR is $APRINCLUDEDIR])
+		APXSCC="`$APXS -q CC`"
+              	APXSCFLAGS="`${APXS} -q CFLAGS` `${APXS} -q EXTRA_CFLAGS` -DHAVE_APR ${APRINCLUDEDIR}"
+              	APXSCPPFLAGS="`${APXS} -q EXTRA_CPPFLAGS`"
+                APACHE_CONFIG_VARS="`${APXS} -q exp_installbuilddir`/config_vars.mk"
+                LIBTOOL=`$APXS -q LIBTOOL`
+            fi
+            AC_MSG_RESULT([building connector for \"$WEBSERVER\"])
+            if ${TEST} -z "${CC}" ; then
+                CC="${APXSCC}"
+            else
+                if ${TEST} "${CC}" != "$APXSCC" ; then
+                    WARN_CC=1
+                fi
+            fi
+
+            AC_SUBST(APXS)
+        fi
+    fi
+],
+[
+	AC_MSG_RESULT(no apxs given)
+])
+
+AC_SUBST(APACHE_CONFIG_VARS)
+
+AC_PROG_CC
+AC_PROG_LD
+
+SAVE_LIBTOOL="$LIBTOOL"
+
+dnl Not sure what it does, but the libtool manual seems to require this
+dnl It should use the native platform dlopen ( if available )
+AC_LIBTOOL_DLOPEN
+
+dnl AM_PROG_LIBTOOL often causes problems.
+dnl I have solved them once using aclocal --acdir=/usr/local/share/aclocal/
+AM_PROG_LIBTOOL
+
+if ${TEST} -n "${SAVE_LIBTOOL}" ; then
+    LIBTOOL="$SAVE_LIBTOOL"
+fi
+AC_MSG_RESULT([LIBTOOL="$LIBTOOL"])
+
 AC_SUBST(LIBTOOL)
 
 dnl ----------------------------- Checks for standard typedefs
@@ -118,6 +212,32 @@
     AC_ERROR([could not detect a 64-bit integer type])
 fi
 
+JK_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], pid_t, 8)
+
+if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_short"; then
+    pid_t_fmt='#define JK_PID_T_FMT "hd"'
+elif test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_int"; then
+    pid_t_fmt='#define JK_PID_T_FMT "d"'
+elif test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_long"; then
+    pid_t_fmt='#define JK_PID_T_FMT "ld"'
+elif test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_long_long"; then
+    pid_t_fmt='#define JK_PID_T_FMT JK_INT64_T_FMT'
+else
+    pid_t_fmt='#error Can not determine the proper size for pid_t'
+fi
+
+# Basically, we have tried to figure out the correct format strings
+# for pid_t which varies between platforms, but we don't always get
+# it right.  If you find that we don't get it right for your platform,
+# you can override our decision below.
+case $host in
+   *-solaris*)
+       if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_long"; then
+           pid_t_fmt='#define JK_PID_T_FMT "ld"'
+       fi
+       ;;
+esac
+
 AC_SUBST(int32_value)
 AC_SUBST(int32_t_fmt) 
 AC_SUBST(uint32_t_fmt) 
@@ -126,6 +246,7 @@
 AC_SUBST(int64_t_fmt) 
 AC_SUBST(uint64_t_fmt) 
 AC_SUBST(uint64_t_hex_fmt) 
+AC_SUBST(pid_t_fmt) 
 
 dnl check for snprintf and vsnprintf.
 AC_CHECK_FUNC(snprintf, AC_DEFINE(HAVE_SNPRINTF,1,[Have snprintf()]))
@@ -177,79 +298,6 @@
 JK_CHECK_SETSOCKOPT(SO_RCVTIMEO)
 JK_CHECK_SETSOCKOPT(SO_SNDTIMEO)
 
-APACHE_CONFIG_VARS=`pwd`/scripts/build/config_vars.mk
-WEBSERVER=""
-apache_dir=""
-apache_include=""
-APXS="apxs"
-AC_ARG_WITH(apxs,
-[  --with-apxs[=FILE]      Build shared Apache module. FILE is the optional
-                        pathname to the apxs tool; defaults to finding
-			apxs in your PATH.],
-[
-    case "${withval}" in
-        y | yes | true) find_apxs=true ;;
-        n | no | false) find_apxs=false ;;
-        *) find_apxs=false ;;
-    esac
-
-    if ${TEST} ${find_apxs} ; then
-        AC_MSG_RESULT([need to check for Perl first, apxs depends on it...])
-        AC_PATH_PROG(PERL,perl,$PATH)dnl
-
-        if ${TEST} ${find_apxs} ; then
-            APXS=${withval}
-        else
-            AC_PATH_PROG(APXS,apxs,$PATH)dnl
-        fi
-
-        if ${TEST} -n "${APXS}" ; then
-            dnl Seems that we have it, but have to check if it is OK first
-            if ${TEST} ! -x "${APXS}" ; then
-                AC_MSG_ERROR(Invalid location for apxs: '${APXS}')
-            fi
-
-            ${APXS} -q PREFIX >/dev/null 2>/dev/null || apxs_support=false
-
-            if ${TEST} "${apxs_support}" = "false" ; then
-                AC_MSG_RESULT(could not find ${APXS})
-                AC_MSG_ERROR(You must specify a valid --with-apxs path)
-            fi
-
-            dnl apache_dir and apache_include are also needed.
-            apache_dir=`$APXS -q PREFIX`
-            apache_include="-I`$APXS -q INCLUDEDIR`"
-
-            dnl test apache version
-            APA=`${GREP} STANDARD20 ${APXS}`
-            if ${TEST} -z "$APA" ; then
-                WEBSERVER="apache-1.3"
-		APXSCFLAGS="`$APXS -q CFLAGS` -DJK_PREFORK"
-		APXS_CPPFLAGS=""
-            else
-                WEBSERVER="apache-2.0"
-              	APRINCLUDEDIR=""
-              	INCTEMP="`$APXS -q APR_INCLUDEDIR` `$APXS -q APU_INCLUDEDIR`"
-              	for INC in ${INCTEMP}; do
-              	    APRINCLUDEDIR="${APRINCLUDEDIR} -I${INC}"
-              	done
-                AC_MSG_RESULT([APRINCLUDEDIR is $APRINCLUDEDIR])
-              	APXSCFLAGS="`${APXS} -q CFLAGS` `${APXS} -q EXTRA_CFLAGS` -DHAVE_APR ${APRINCLUDEDIR}"
-              	APXSCPPFLAGS="`${APXS} -q EXTRA_CPPFLAGS`"
-                APACHE_CONFIG_VARS="`${APXS} -q exp_installbuilddir`/config_vars.mk"
-                LIBTOOL=`$APXS -q LIBTOOL`
-            fi
-            AC_MSG_RESULT([building connector for \"$WEBSERVER\"])
-
-            AC_SUBST(APXS)
-        fi
-    fi
-],
-[
-	AC_MSG_RESULT(no apxs given)
-])
-AC_SUBST(APACHE_CONFIG_VARS)
-
 dnl Apache-2.0 needs the os subdirectory to include os.h
 dnl this include is copy from os/config.m4
 sinclude(../support/os_apache.m4)
@@ -263,7 +311,7 @@
                         to the Apache source directory.],
 [
     if ${TEST} ! -z "$WEBSERVER" ; then
-        AC_MSG_ERROR([Sorry cannot use --with-apxs=${APXS} and --with-apache=${withval} togother, please choose one of both])
+        AC_MSG_ERROR([Sorry cannot use --with-apxs=${APXS} and --with-apache=${withval} together, please choose one of both])
     fi
 
     AC_MSG_CHECKING([for Apache source directory (assume static build)])
@@ -407,6 +455,22 @@
 ])
 AC_SUBST(CFLAGS)
 
+dnl CFLAGS for shared memory lock mode
+dnl it also allows the CFLAGS environment variable.
+CFLAGS="${CFLAGS}"
+AC_ARG_ENABLE(
+flock,
+[  --enable-flock   Turn on flock for shared locking if present],
+[
+case "${enableval}" in
+    y | Y | YES | yes | TRUE | true )
+        CFLAGS="${CFLAGS} -DJK_USE_FLOCK"
+        AC_MSG_RESULT([...Enabling flock() shared memory locking...])
+        ;;
+esac
+])
+AC_SUBST(CFLAGS)
+
 dnl the APXSCFLAGS is given by apxs to the C compiler
 dnl the APXSLDFLAGS is given to the linker (for APRVARS).
 dnl APXSLDFLAGS=""
@@ -640,3 +704,15 @@
 	common/jk_types.h
 	jni/Makefile
 	])
+
+if ${TEST} -n "${WARN_CC}" ; then
+    AC_MSG_WARN([Using CC from environment:])
+    AC_MSG_WARN([    CC="$CC"])
+    AC_MSG_WARN([instead of CC from apxs:])
+    AC_MSG_WARN([    CC="$APXSCC"])
+    AC_MSG_WARN([If "make" throws an error of the form])
+    AC_MSG_WARN([    "libtool: compile: unable to infer tagged configuration"])
+    AC_MSG_WARN([    "libtool: compile: specify a tag with `--tag'"])
+    AC_MSG_WARN([try running configure without setting CC,])
+    AC_MSG_WARN([or at least CC should start with "$APXSCC"])
+fi

Modified: trunk/tomcat5.5/connectors/jk/native/iis/Makefile.amd64
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/Makefile.amd64	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/iis/Makefile.amd64	2007-10-03 19:12:01 UTC (rev 4300)
@@ -3,12 +3,6 @@
 # SetEnv.cmd /X64 /RETAIL
 # nmake -f Makefile.amd64
 #
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE 
-NULL=nul
-!ENDIF 
-
 CPP=cl.exe
 MTL=midl.exe
 RSC=rc.exe
@@ -18,10 +12,22 @@
 OutDir=.\Release_amd64
 # End Custom Macros
 
+!IF "$(RECURSE)" == "0" 
+
 ALL : "$(OUTDIR)\isapi_redirect.dll"
 
+!ELSE 
 
+ALL : "pcre_amd64" "$(OUTDIR)\isapi_redirect.dll"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"pcre_amd64CLEAN" 
+!ELSE 
 CLEAN :
+!ENDIF 
+	- at erase "$(INTDIR)\isapi_redirect.res"
 	- at erase "$(INTDIR)\isapi_redirector_src.idb"
 	- at erase "$(INTDIR)\isapi_redirector_src.pdb"
 	- at erase "$(INTDIR)\jk_ajp12_worker.obj"
@@ -44,6 +50,7 @@
 	- at erase "$(INTDIR)\jk_sockbuf.obj"
 	- at erase "$(INTDIR)\jk_status.obj"
 	- at erase "$(INTDIR)\jk_uri_worker_map.obj"
+	- at erase "$(INTDIR)\jk_url.obj"
 	- at erase "$(INTDIR)\jk_util.obj"
 	- at erase "$(INTDIR)\jk_worker.obj"
 	- at erase "$(OUTDIR)\isapi_redirect.dll"
@@ -59,7 +66,7 @@
 BSC32_SBRS= \
 	
 LINK32=link.exe
-LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib bufferoverflowu.lib strsafe.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:AMD64 /def:".\isapi.def" /out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
+LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib strsafe.lib bufferoverflowu.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:AMD64 /def:".\isapi.def" /out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
 DEF_FILE= \
 	".\isapi.def"
 LINK32_OBJS= \
@@ -83,15 +90,20 @@
 	"$(INTDIR)\jk_sockbuf.obj" \
 	"$(INTDIR)\jk_status.obj" \
 	"$(INTDIR)\jk_uri_worker_map.obj" \
+	"$(INTDIR)\jk_url.obj" \
 	"$(INTDIR)\jk_util.obj" \
-	"$(INTDIR)\jk_worker.obj"
+	"$(INTDIR)\jk_worker.obj" \
+	"$(INTDIR)\isapi_redirect.res" \
+	".\pcre\Release_amd64\pcre.lib"
 
 "$(OUTDIR)\isapi_redirect.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
+	IF EXIST $(OUTDIR)\isapi_redirect.manifest \
+		mt -nologo -manifest $(OUTDIR)\isapi_redirect.manifest -outputresource:$(OUTDIR)\isapi_redirect.dll;2
 
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AMD64_=1" -DWIN64 /D "_WIN64" /Wp64 /FIPRE64PRA.H /D "ISAPI_EXPORTS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\isapi_redirector_src" /FD /c 
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\common" /I "pcre" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AMD64_=1" -DWIN64 /D "_WIN64" /Wp64 /FIPRE64PRA.H /D "ISAPI_EXPORTS" /D "HAS_PCRE" /D "PCRE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\isapi_redirector_src" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -124,7 +136,14 @@
 <<
 
 MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
+RSC_PROJ=/l 0x809 /fo"$(INTDIR)\isapi_redirect.res" /d "NDEBUG" 
 
+SOURCE=.\isapi_redirect.rc
+
+"$(INTDIR)\isapi_redirect.res" : $(SOURCE) "$(INTDIR)"
+	$(RSC) $(RSC_PROJ) $(SOURCE)
+
+
 SOURCE=..\common\jk_ajp12_worker.c
 
 "$(INTDIR)\jk_ajp12_worker.obj" : $(SOURCE) "$(INTDIR)"
@@ -244,6 +263,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\common\jk_url.c
+
+"$(INTDIR)\jk_url.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\common\jk_util.c
 
 "$(INTDIR)\jk_util.obj" : $(SOURCE) "$(INTDIR)"
@@ -255,3 +280,13 @@
 "$(INTDIR)\jk_worker.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
+
+"pcre_amd64" : 
+   cd ".\pcre"
+   $(MAKE) /$(MAKEFLAGS) /F ".\pcre.amd64"
+   cd ".."
+
+"pcre_amd64CLEAN" : 
+   cd ".\pcre"
+   $(MAKE) /$(MAKEFLAGS) /F ".\pcre.amd64" RECURSE=1 CLEAN 
+   cd ".."

Modified: trunk/tomcat5.5/connectors/jk/native/iis/Makefile.ia64
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/Makefile.ia64	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/iis/Makefile.ia64	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,14 +1,8 @@
 # Microsoft Developer Studio Generated NMAKE File, Based on isapi.dsp
 # Use Platform SDK:
 # SetEnv.cmd /SRV64 /RETAIL
-# nmake -f Makefile.amd64
+# nmake -f Makefile.ia64
 #
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE 
-NULL=nul
-!ENDIF 
-
 CPP=cl.exe
 MTL=midl.exe
 RSC=rc.exe
@@ -18,10 +12,22 @@
 OutDir=.\Release_ia64
 # End Custom Macros
 
+!IF "$(RECURSE)" == "0" 
+
 ALL : "$(OUTDIR)\isapi_redirect.dll"
 
+!ELSE 
 
+ALL : "pcre_ia64" "$(OUTDIR)\isapi_redirect.dll"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"pcre_ia64CLEAN" 
+!ELSE 
 CLEAN :
+!ENDIF 
+	- at erase "$(INTDIR)\isapi_redirect.res"
 	- at erase "$(INTDIR)\isapi_redirector_src.idb"
 	- at erase "$(INTDIR)\isapi_redirector_src.pdb"
 	- at erase "$(INTDIR)\jk_ajp12_worker.obj"
@@ -44,6 +50,7 @@
 	- at erase "$(INTDIR)\jk_sockbuf.obj"
 	- at erase "$(INTDIR)\jk_status.obj"
 	- at erase "$(INTDIR)\jk_uri_worker_map.obj"
+	- at erase "$(INTDIR)\jk_url.obj"
 	- at erase "$(INTDIR)\jk_util.obj"
 	- at erase "$(INTDIR)\jk_worker.obj"
 	- at erase "$(OUTDIR)\isapi_redirect.dll"
@@ -59,7 +66,7 @@
 BSC32_SBRS= \
 	
 LINK32=link.exe
-LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib bufferoverflowu.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:IA64 /def:".\isapi.def" /out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
+LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib strsafe.lib bufferoverflowu.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:IA64 /def:".\isapi.def" /out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
 DEF_FILE= \
 	".\isapi.def"
 LINK32_OBJS= \
@@ -83,15 +90,20 @@
 	"$(INTDIR)\jk_sockbuf.obj" \
 	"$(INTDIR)\jk_status.obj" \
 	"$(INTDIR)\jk_uri_worker_map.obj" \
+	"$(INTDIR)\jk_url.obj" \
 	"$(INTDIR)\jk_util.obj" \
-	"$(INTDIR)\jk_worker.obj"
+	"$(INTDIR)\jk_worker.obj" \
+	"$(INTDIR)\isapi_redirect.res" \
+	".\pcre\Release_ia64\pcre.lib"
 
 "$(OUTDIR)\isapi_redirect.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
     $(LINK32) @<<
   $(LINK32_FLAGS) $(LINK32_OBJS)
 <<
+	IF EXIST $(OUTDIR)\isapi_redirect.manifest \
+		mt -nologo -manifest $(OUTDIR)\isapi_redirect.manifest -outputresource:$(OUTDIR)\isapi_redirect.dll;2
 
-CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\common" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_IA64_=1" /D "WIN64" /D "_WIN64" /Wp64 /FIPRE64PRA.H /D "ISAPI_EXPORTS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\isapi_redirector_src" /FD /c 
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\common" /I "pcre" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_IA64_=1" -DWIN64 /D "_WIN64" /Wp64 /FIPRE64PRA.H /D "ISAPI_EXPORTS" /D "HAS_PCRE" /D "PCRE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\isapi_redirector_src" /FD /c 
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
@@ -124,7 +136,14 @@
 <<
 
 MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
+RSC_PROJ=/l 0x809 /fo"$(INTDIR)\isapi_redirect.res" /d "NDEBUG" 
 
+SOURCE=.\isapi_redirect.rc
+
+"$(INTDIR)\isapi_redirect.res" : $(SOURCE) "$(INTDIR)"
+	$(RSC) $(RSC_PROJ) $(SOURCE)
+
+
 SOURCE=..\common\jk_ajp12_worker.c
 
 "$(INTDIR)\jk_ajp12_worker.obj" : $(SOURCE) "$(INTDIR)"
@@ -244,6 +263,12 @@
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+SOURCE=..\common\jk_url.c
+
+"$(INTDIR)\jk_url.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 SOURCE=..\common\jk_util.c
 
 "$(INTDIR)\jk_util.obj" : $(SOURCE) "$(INTDIR)"
@@ -255,3 +280,13 @@
 "$(INTDIR)\jk_worker.obj" : $(SOURCE) "$(INTDIR)"
 	$(CPP) $(CPP_PROJ) $(SOURCE)
 
+
+"pcre_ia64" : 
+   cd ".\pcre"
+   $(MAKE) /$(MAKEFLAGS) /F ".\pcre.ia64"
+   cd ".."
+
+"pcre_ia64CLEAN" : 
+   cd ".\pcre"
+   $(MAKE) /$(MAKEFLAGS) /F ".\pcre.ia64" RECURSE=1 CLEAN 
+   cd ".."

Added: trunk/tomcat5.5/connectors/jk/native/iis/Makefile.x86
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/Makefile.x86	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/iis/Makefile.x86	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,285 @@
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+OUTDIR=.\Release_x86
+INTDIR=.\Release_x86
+# Begin Custom Macros
+OutDir=.\Release_x86
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : "$(OUTDIR)\isapi_redirect.dll"
+
+!ELSE 
+
+ALL : "pcre_x86" "$(OUTDIR)\isapi_redirect.dll"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"pcre_x86CLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	- at erase "$(INTDIR)\isapi_redirect.res"
+	- at erase "$(INTDIR)\isapi_redirector_src.idb"
+	- at erase "$(INTDIR)\isapi_redirector_src.pdb"
+	- at erase "$(INTDIR)\jk_ajp12_worker.obj"
+	- at erase "$(INTDIR)\jk_ajp13.obj"
+	- at erase "$(INTDIR)\jk_ajp13_worker.obj"
+	- at erase "$(INTDIR)\jk_ajp14.obj"
+	- at erase "$(INTDIR)\jk_ajp14_worker.obj"
+	- at erase "$(INTDIR)\jk_ajp_common.obj"
+	- at erase "$(INTDIR)\jk_connect.obj"
+	- at erase "$(INTDIR)\jk_context.obj"
+	- at erase "$(INTDIR)\jk_isapi_plugin.obj"
+	- at erase "$(INTDIR)\jk_jni_worker.obj"
+	- at erase "$(INTDIR)\jk_lb_worker.obj"
+	- at erase "$(INTDIR)\jk_map.obj"
+	- at erase "$(INTDIR)\jk_md5.obj"
+	- at erase "$(INTDIR)\jk_msg_buff.obj"
+	- at erase "$(INTDIR)\jk_nwmain.obj"
+	- at erase "$(INTDIR)\jk_pool.obj"
+	- at erase "$(INTDIR)\jk_shm.obj"
+	- at erase "$(INTDIR)\jk_sockbuf.obj"
+	- at erase "$(INTDIR)\jk_status.obj"
+	- at erase "$(INTDIR)\jk_uri_worker_map.obj"
+	- at erase "$(INTDIR)\jk_url.obj"
+	- at erase "$(INTDIR)\jk_util.obj"
+	- at erase "$(INTDIR)\jk_worker.obj"
+	- at erase "$(OUTDIR)\isapi_redirect.dll"
+	- at erase "$(OUTDIR)\isapi_redirect.exp"
+	- at erase "$(OUTDIR)\isapi_redirect.lib"
+	- at erase "$(OUTDIR)\isapi_redirect.pdb"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\isapi.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib strsafe.lib /nologo /base:"0x6A6B0000" /dll /incremental:no /pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:I386 /def:".\isapi.def" /out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
+DEF_FILE= \
+	".\isapi.def"
+LINK32_OBJS= \
+	"$(INTDIR)\jk_ajp12_worker.obj" \
+	"$(INTDIR)\jk_ajp13.obj" \
+	"$(INTDIR)\jk_ajp13_worker.obj" \
+	"$(INTDIR)\jk_ajp14.obj" \
+	"$(INTDIR)\jk_ajp14_worker.obj" \
+	"$(INTDIR)\jk_ajp_common.obj" \
+	"$(INTDIR)\jk_connect.obj" \
+	"$(INTDIR)\jk_context.obj" \
+	"$(INTDIR)\jk_isapi_plugin.obj" \
+	"$(INTDIR)\jk_jni_worker.obj" \
+	"$(INTDIR)\jk_lb_worker.obj" \
+	"$(INTDIR)\jk_map.obj" \
+	"$(INTDIR)\jk_md5.obj" \
+	"$(INTDIR)\jk_msg_buff.obj" \
+	"$(INTDIR)\jk_nwmain.obj" \
+	"$(INTDIR)\jk_pool.obj" \
+	"$(INTDIR)\jk_shm.obj" \
+	"$(INTDIR)\jk_sockbuf.obj" \
+	"$(INTDIR)\jk_status.obj" \
+	"$(INTDIR)\jk_uri_worker_map.obj" \
+	"$(INTDIR)\jk_url.obj" \
+	"$(INTDIR)\jk_util.obj" \
+	"$(INTDIR)\jk_worker.obj" \
+	"$(INTDIR)\isapi_redirect.res" \
+	".\pcre\Release_x86\pcre.lib"
+
+"$(OUTDIR)\isapi_redirect.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /I "..\common" /I "pcre" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "ISAPI_EXPORTS" /D "HAS_PCRE" /D "PCRE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\isapi_redirector_src" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
+RSC_PROJ=/l 0x809 /fo"$(INTDIR)\isapi_redirect.res" /d "NDEBUG" 
+
+SOURCE=.\isapi_redirect.rc
+
+"$(INTDIR)\isapi_redirect.res" : $(SOURCE) "$(INTDIR)"
+	$(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_ajp12_worker.c
+
+"$(INTDIR)\jk_ajp12_worker.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_ajp13.c
+
+"$(INTDIR)\jk_ajp13.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_ajp13_worker.c
+
+"$(INTDIR)\jk_ajp13_worker.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_ajp14.c
+
+"$(INTDIR)\jk_ajp14.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_ajp14_worker.c
+
+"$(INTDIR)\jk_ajp14_worker.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_ajp_common.c
+
+"$(INTDIR)\jk_ajp_common.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_connect.c
+
+"$(INTDIR)\jk_connect.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_context.c
+
+"$(INTDIR)\jk_context.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\jk_isapi_plugin.c
+
+"$(INTDIR)\jk_isapi_plugin.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=..\common\jk_jni_worker.c
+
+"$(INTDIR)\jk_jni_worker.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_lb_worker.c
+
+"$(INTDIR)\jk_lb_worker.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_map.c
+
+"$(INTDIR)\jk_map.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_md5.c
+
+"$(INTDIR)\jk_md5.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_msg_buff.c
+
+"$(INTDIR)\jk_msg_buff.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_nwmain.c
+
+"$(INTDIR)\jk_nwmain.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_pool.c
+
+"$(INTDIR)\jk_pool.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_shm.c
+
+"$(INTDIR)\jk_shm.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_sockbuf.c
+
+"$(INTDIR)\jk_sockbuf.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_status.c
+
+"$(INTDIR)\jk_status.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_uri_worker_map.c
+
+"$(INTDIR)\jk_uri_worker_map.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_url.c
+
+"$(INTDIR)\jk_url.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_util.c
+
+"$(INTDIR)\jk_util.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\common\jk_worker.c
+
+"$(INTDIR)\jk_worker.obj" : $(SOURCE) "$(INTDIR)"
+	$(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+"pcre_x86" : 
+   cd ".\pcre"
+   $(MAKE) /$(MAKEFLAGS) /F ".\pcre.x86" CFG="pcre_x86" 
+   cd ".."
+
+"pcre_x86CLEAN" : 
+   cd ".\pcre"
+   $(MAKE) /$(MAKEFLAGS) /F ".\pcre.x86" CFG="pcre_x86" RECURSE=1 CLEAN 
+   cd ".."

Modified: trunk/tomcat5.5/connectors/jk/native/iis/README
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/README	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/iis/README	2007-10-03 19:12:01 UTC (rev 4300)
@@ -37,8 +37,7 @@
    1. Change directory to the isapi redirector plugins source directory.
    
    2. Execute the following command:
-      MSDEV isapi.dsp /MAKE ALL
-      If msdev is not in your path, enter the full path to msdev.exe
+      nmake -f Makefile.x86
 
 This will build both release and debug versions of the redirector plugin.
 

Added: trunk/tomcat5.5/connectors/jk/native/iis/installer/conf/rewrite.properties
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/installer/conf/rewrite.properties	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/iis/installer/conf/rewrite.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,13 @@
+# rewrite.properties - IIS
+#
+# Form of the file
+# requested=replacement
+#
+# Note: Requested must be present in the
+#       uriworkermap.properies file and mapped to
+#       the desired worker.
+#
+# Next will send /examples/servlets/ to the container
+# for the /servlets-examples request.
+#
+# /servlets-examples/=/examples/servlets/

Modified: trunk/tomcat5.5/connectors/jk/native/iis/installer/conf/uriworkermap.properties
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/installer/conf/uriworkermap.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/iis/installer/conf/uriworkermap.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -9,6 +9,7 @@
 /manager/*=wlb
 /jsp-examples/*=wlb
 /servlets-examples/*=wlb
+/examples/*=wlb
 
 # Optionally filter out all .jpeg files inside that context
 # For no mapping the url has to start with exclamation (!)

Modified: trunk/tomcat5.5/connectors/jk/native/iis/installer/isapi-redirector-win32-msi.ism
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/installer/isapi-redirector-win32-msi.ism	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/iis/installer/isapi-redirector-win32-msi.ism	2007-10-03 19:12:01 UTC (rev 4300)
@@ -3409,7 +3409,7 @@
 		<row><td>ProductID</td><td>none</td><td/></row>
 		<row><td>ProductLanguage</td><td>1033</td><td/></row>
 		<row><td>ProductName</td><td>Tomcat Isapi Redirector</td><td/></row>
-		<row><td>ProductVersion</td><td>1.2.22</td><td/></row>
+		<row><td>ProductVersion</td><td>1.2.25</td><td/></row>
 		<row><td>ProgressType0</td><td>install</td><td/></row>
 		<row><td>ProgressType1</td><td>Installing</td><td/></row>
 		<row><td>ProgressType2</td><td>installed</td><td/></row>
@@ -3473,6 +3473,7 @@
 		<col def="S0">Value</col>
 		<col def="s72">Component_</col>
 		<col def="I4">ISAttributes</col>
+		<row><td>Registry1</td><td>2</td><td>SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0</td><td>rewrite_rule_file</td><td>[INSTALLDIR]conf\rewrite.properties</td><td>ISRegistryComponent1</td><td>0</td></row>
 		<row><td>Registry10</td><td>2</td><td>SOFTWARE\Apache Software Foundation</td><td/><td/><td>ISRegistryComponent1</td><td>0</td></row>
 		<row><td>Registry11</td><td>2</td><td>SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector</td><td/><td/><td>ISRegistryComponent1</td><td>0</td></row>
 		<row><td>Registry12</td><td>2</td><td>SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0</td><td/><td/><td>ISRegistryComponent1</td><td>0</td></row>

Modified: trunk/tomcat5.5/connectors/jk/native/iis/isapi.dsp
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/isapi.dsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/iis/isapi.dsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -43,7 +43,7 @@
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ISAPI_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /Zi /O2 /I "..\common" /I "pcre" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "ISAPI_EXPORTS" /D "HAS_PCRE" /Fd"Release/isapi_redirector_src" /FD /c
+# ADD CPP /nologo /MD /W3 /Zi /O2 /I "..\common" /I "pcre" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "ISAPI_EXPORTS" /D "HAS_PCRE" /D "PCRE_STATIC" /Fd"Release/isapi_redirector_src" /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x809 /d "NDEBUG"
@@ -69,7 +69,7 @@
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ISAPI_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\common" /I "pcre" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ISAPI_EXPORTS" /D "HAS_PCRE" /Fd"Debug/isapi_redirector_src" /FD /c
+# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "..\common" /I "pcre" /I "$(JAVA_HOME)\include" /I "$(JAVA_HOME)\include\win32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ISAPI_EXPORTS" /D "HAS_PCRE" /D "PCRE_STATIC" /Fd"Debug/isapi_redirector_src" /FD /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD BASE RSC /l 0x809 /d "_DEBUG"
@@ -176,6 +176,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\common\jk_url.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\common\jk_util.c
 # End Source File
 # Begin Source File
@@ -276,6 +280,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\common\jk_url.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\common\jk_util.h
 # End Source File
 # Begin Source File

Modified: trunk/tomcat5.5/connectors/jk/native/iis/isapi_redirect.rc
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/isapi_redirect.rc	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/iis/isapi_redirect.rc	2007-10-03 19:12:01 UTC (rev 4300)
@@ -14,13 +14,13 @@
                     "specific language governing permissions and " \
                     "limitations under the License."
 
-#define JK_VERSION_STR  "1.2.22"
+#define JK_VERSION_STR  "1.2.25"
 #define JK_DLL_BASENAME "isapi_redirect-" JK_VERSION_STR
 
 
 1 VERSIONINFO
- FILEVERSION 1,2,22,0
- PRODUCTVERSION 1,2,22,0
+ FILEVERSION 1,2,25,0
+ PRODUCTVERSION 1,2,25,0
  FILEFLAGSMASK 0x3fL
 #if defined(_DEBUG)
  FILEFLAGS 0x01L

Modified: trunk/tomcat5.5/connectors/jk/native/iis/jk_isapi_plugin.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/jk_isapi_plugin.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/iis/jk_isapi_plugin.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -21,7 +21,7 @@
  * Author:      Larry Isaacs <larryi at apache.org>                           *
  * Author:      Ignacio J. Ortega <nacho at apache.org>                       *
  * Author:      Mladen Turk <mturk at apache.org>                             *
- * Version:     $Revision: 511888 $                                        *
+ * Version:     $Revision: 562198 $                                        *
  ***************************************************************************/
 
 // This define is needed to include wincrypt,h, needed to get client certificates
@@ -32,6 +32,7 @@
 #include <wininet.h>
 
 #include "jk_global.h"
+#include "jk_url.h"
 #include "jk_util.h"
 #include "jk_map.h"
 #include "jk_pool.h"
@@ -39,7 +40,13 @@
 #include "jk_worker.h"
 #include "jk_uri_worker_map.h"
 #include "jk_shm.h"
+#include "jk_ajp13.h"
+#include "pcre.h"
 
+#ifndef POSIX_MALLOC_THRESHOLD
+#define POSIX_MALLOC_THRESHOLD (10)
+#endif
+
 #include <strsafe.h>
 
 #define VERSION_STRING "Jakarta/ISAPI/" JK_VERSTRING
@@ -89,11 +96,13 @@
 #define URI_SELECT_PARSED_VERB      ("parsed")
 #define URI_SELECT_UNPARSED_VERB    ("unparsed")
 #define URI_SELECT_ESCAPED_VERB     ("escaped")
+#define URI_SELECT_PROXY_VERB       ("proxy")
 #define URI_REWRITE_TAG             ("rewrite_rule_file")
 #define SHM_SIZE_TAG                ("shm_size")
 #define WORKER_MOUNT_RELOAD_TAG     ("worker_mount_reload")
 #define STRIP_SESSION_TAG           ("strip_session")
 #define AUTH_COMPLETE_TAG           ("auth_complete")
+#define REJECT_UNSAFE_TAG           ("reject_unsafe")
 
 
 #define TRANSLATE_HEADER            ("Translate:")
@@ -104,19 +113,33 @@
 #define BAD_PATH        -2
 #define MAX_SERVERNAME  128
 
-#define HTML_ERROR_400          "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"  \
-                                "<HTML><HEAD><TITLE>Bad request!</TITLE></HEAD>"                    \
-                                "<BODY><H1>Bad request!</H1><DL><DD>\n"                             \
-                                "Your browser (or proxy) sent a request that "                      \
-                                "this server could not understand.</DL></DD></BODY></HTML>"
+char HTML_ERROR_400[] =         "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
+                                "<HTML><HEAD><TITLE>Bad request!</TITLE></HEAD>\n"
+                                "<BODY><H1>Bad request!</H1>\n<P>"
+                                "Your browser (or proxy) sent a request that "
+                                "this server could not understand.</P></BODY></HTML>";
 
-#define HTML_ERROR_404          "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"  \
-                                "<HTML><HEAD><TITLE>Object not found!</TITLE></HEAD>"               \
-                                "<BODY><H1>The requested URL was not found on this server"          \
-                                "</H1><DL><DD>\nIf you entered the URL manually please check your"  \
-                                "spelling and try again.</DL></DD></BODY></HTML>"
+char HTML_ERROR_404[] =         "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
+                                "<HTML><HEAD><TITLE>Object not found!</TITLE></HEAD>\n"
+                                "<BODY><H1>The requested URL was not found on this server"
+                                "</H1>\n<P>If you entered the URL manually please check your"
+                                "spelling and try again.</P></BODY></HTML>";
 
+char HTML_ERROR_500[] =         "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
+                                "<HTML><HEAD><TITLE>Server error!</TITLE></HEAD>\n"
+                                "<BODY><H1>Internal server error!</H1>\n<P>"
+                                "The server encountered an internal error and was "
+                                "unable to complete your request.</P></BODY></HTML>";
 
+char HTML_ERROR_503[] =         "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n"
+                                "<HTML><HEAD><TITLE>Service unavailable!</TITLE></HEAD>\n"
+                                "<BODY><H1>Service temporary unavailable!</H1>\n<P>"
+                                "The server is temporarily unable to service your "
+                                "request due to maintenance downtime or capacity problems. "
+                                "Please try again later.</P></BODY></HTML>";
+
+
+#define STRNULL_FOR_NULL(x) ((x) ? (x) : "(null)")
 #define JK_TOLOWER(x)   ((char)tolower((BYTE)(x)))
 
 #define GET_SERVER_VARIABLE_VALUE(name, place)          \
@@ -154,6 +177,7 @@
 static jk_uri_worker_map_t *uw_map = NULL;
 static jk_map_t *workers_map = NULL;
 static jk_map_t *rewrite_map = NULL;
+static jk_map_t *rregexp_map = NULL;
 
 static jk_logger_t *logger = NULL;
 static char *SERVER_NAME = "SERVER_NAME";
@@ -172,12 +196,14 @@
 static int strip_session = 0;
 static DWORD auth_notification_flags = 0;
 static int   use_auth_notification_flags = 1;
+static int reject_unsafe = 0;
 
 #define URI_SELECT_OPT_PARSED       0
 #define URI_SELECT_OPT_UNPARSED     1
 #define URI_SELECT_OPT_ESCAPED      2
+#define URI_SELECT_OPT_PROXY        3
 
-static int uri_select_option = URI_SELECT_OPT_PARSED;
+static int uri_select_option = URI_SELECT_OPT_PROXY;
 
 static jk_worker_env_t worker_env;
 
@@ -511,7 +537,35 @@
     pfc->WriteClient(pfc, msg, &len, 0);
 }
 
+static void write_error_message(LPEXTENSION_CONTROL_BLOCK lpEcb, int err)
+{
+    DWORD len;
+    if (err = 500) {
+        lpEcb->ServerSupportFunction(lpEcb->ConnID,
+                                     HSE_REQ_SEND_RESPONSE_HEADER,
+                                     "500 Internal Server Error",
+                                     0,
+                                     (LPDWORD)CONTENT_TYPE);
+        len = (DWORD)(sizeof(HTML_ERROR_500) - 1);
+        lpEcb->WriteClient(lpEcb->ConnID,
+                           HTML_ERROR_503, &len, 0);
+    }
+    else if (err == 503) {
+        lpEcb->ServerSupportFunction(lpEcb->ConnID,
+                                     HSE_REQ_SEND_RESPONSE_HEADER,
+                                     "503 Service Unavailable",
+                                     0,
+                                     (LPDWORD)CONTENT_TYPE);
+        len = (DWORD)(sizeof(HTML_ERROR_503) - 1);
+        lpEcb->WriteClient(lpEcb->ConnID,
+                           HTML_ERROR_503, &len, 0);
+    }
+    else {
+        return;
+    }
+}
 
+
 static int JK_METHOD start_response(jk_ws_service_t *s,
                                     int status,
                                     const char *reason,
@@ -534,8 +588,8 @@
         int rv = JK_TRUE;
         isapi_private_data_t *p = s->ws_private;
         if (!p->request_started) {
-            HSE_SEND_HEADER_EX_INFO hi;
             char *status_str;
+            DWORD status_str_len;
             char *headers_str = NULL;
             BOOL keep_alive = FALSE;
             p->request_started = JK_TRUE;
@@ -548,14 +602,13 @@
             }
             status_str = (char *)malloc((6 + strlen(reason)));
             StringCbPrintf(status_str, 6 + strlen(reason), "%d %s", status, reason);
-            hi.pszStatus = status_str;
-            hi.cchStatus = (DWORD)strlen(status_str);
+            status_str_len = (DWORD)strlen(status_str);
 
             /*
              * Create response headers string
              */
             if (num_of_headers) {
-                size_t i, len_of_headers;
+                size_t i, len_of_headers = 0;
                 for (i = 0, len_of_headers = 0; i < num_of_headers; i++) {
                     len_of_headers += strlen(header_names[i]);
                     len_of_headers += strlen(header_values[i]);
@@ -573,20 +626,20 @@
                     StringCbCat(headers_str, len_of_headers, crlf);
                 }
                 StringCbCat(headers_str, len_of_headers, crlf);
-                hi.pszHeader = headers_str;
-                hi.cchHeader = (DWORD)strlen(headers_str);
             }
             else {
-                hi.pszHeader = crlf;
-                hi.cchHeader = 2;
+                headers_str = crlf;
             }
-            hi.fKeepConn = keep_alive;
+
             if (!p->lpEcb->ServerSupportFunction(p->lpEcb->ConnID,
-                                                 HSE_REQ_SEND_RESPONSE_HEADER_EX,
-                                                 &hi,
-                                                 NULL, NULL)) {
+                                                 HSE_REQ_SEND_RESPONSE_HEADER,
+                                                 status_str,
+                                                 &status_str_len,
+                                                 (LPDWORD)headers_str)) {
+
                 jk_log(logger, JK_LOG_ERROR,
-                       "HSE_REQ_SEND_RESPONSE_HEADER_EX failed");
+                       "HSE_REQ_SEND_RESPONSE_HEADER failed with error=%08x",
+                       GetLastError());
                 rv = JK_FALSE;
             }
             if (headers_str)
@@ -611,12 +664,24 @@
     if (s && s->ws_private && b && a) {
         isapi_private_data_t *p = s->ws_private;
 
+        if (JK_IS_DEBUG_LEVEL(logger)) {
+            jk_log(logger, JK_LOG_DEBUG,
+                   "Preparing to read %d bytes. "
+                   "ECB reports %d bytes total, with %d available.",
+                   l, p->lpEcb->cbTotalBytes, p->lpEcb->cbAvailable);
+        }
+
         *a = 0;
         if (l) {
             char *buf = b;
             DWORD already_read = p->lpEcb->cbAvailable - p->bytes_read_so_far;
 
             if (already_read >= l) {
+                if (JK_IS_DEBUG_LEVEL(logger)) {
+                    jk_log(logger, JK_LOG_DEBUG,
+                           "Already read %d bytes - supplying %d bytes from buffer",
+                           already_read, l);
+                }
                 memcpy(buf, p->lpEcb->lpbData + p->bytes_read_so_far, l);
                 p->bytes_read_so_far += l;
                 *a = l;
@@ -626,6 +691,11 @@
                  * Try to copy what we already have
                  */
                 if (already_read > 0) {
+                    if (JK_IS_DEBUG_LEVEL(logger)) {
+                        jk_log(logger, JK_LOG_DEBUG,
+                               "Supplying %d bytes from buffer",
+                               already_read);
+                    }
                     memcpy(buf, p->lpEcb->lpbData + p->bytes_read_so_far,
                            already_read);
                     buf += already_read;
@@ -638,6 +708,10 @@
                 /*
                  * Now try to read from the client ...
                  */
+                if (JK_IS_DEBUG_LEVEL(logger)) {
+                    jk_log(logger, JK_LOG_DEBUG,
+                           "Attempting to read %d bytes from client", l);
+                }
                 if (p->lpEcb->ReadClient(p->lpEcb->ConnID, buf, (LPDWORD)&l)) {
                     *a += l;
                 }
@@ -728,6 +802,285 @@
     return rv;
 }
 
+
+#define AP_REG_ICASE    0x01 /** use a case-insensitive match */
+#define AP_REG_NEWLINE  0x02 /** don't match newlines against '.' etc */
+#define AP_REG_NOTBOL   0x04 /** ^ will not match against start-of-string */
+#define AP_REG_NOTEOL   0x08 /** $ will not match against end-of-string */
+
+#define AP_REG_EXTENDED (0)  /** unused */
+#define AP_REG_NOSUB    (0)  /** unused */
+/** The max number of regex captures that can be expanded by ap_pregsub */
+#define AP_MAX_REG_MATCH 10
+
+/* Error values: */
+enum {
+    AP_REG_ASSERT = 1,  /** internal error ? */
+    AP_REG_ESPACE,      /** failed to get memory */
+    AP_REG_INVARG,      /** invalid argument */
+    AP_REG_NOMATCH      /** match failed */
+};
+
+/* The structure representing a compiled regular expression. */
+typedef struct {
+    void *re_pcre;
+    size_t re_nsub;
+    size_t re_erroffset;
+    const char *real;
+    const char *fake;
+} ap_regex_t;
+
+/* The structure in which a captured offset is returned. */
+typedef struct {
+    int rm_so;
+    int rm_eo;
+} ap_regmatch_t;
+
+
+/* Table of error strings corresponding to POSIX error codes; must be
+ * kept in synch with include/ap_regex.h's AP_REG_E* definitions. */
+
+static const char *const pstring[] = {
+  "",                                /* Dummy for value 0 */
+  "internal error",                  /* AP_REG_ASSERT */
+  "failed to get memory",            /* AP_REG_ESPACE */
+  "bad argument",                    /* AP_REG_INVARG */
+  "match failed"                     /* AP_REG_NOMATCH */
+};
+
+static size_t ap_regerror(int errcode, const ap_regex_t *preg,
+                          char *errbuf, size_t errbuf_size)
+{
+    const char *message, *addmessage;
+    size_t length, addlength;
+
+    message = (errcode >= (int)(sizeof(pstring)/sizeof(char *))) ?
+                                "unknown error code" : pstring[errcode];
+    length = strlen(message) + 1;
+
+    addmessage = " at offset ";
+    addlength = (preg != NULL && (int)preg->re_erroffset != -1)?
+                                        strlen(addmessage) + 6 : 0;
+
+    if (errbuf_size > 0) {
+        if (addlength > 0 && errbuf_size >= length + addlength)
+            StringCbPrintf(errbuf, sizeof(errbuf), "%s%s%-6d",
+                          message, addmessage,
+                          (int)preg->re_erroffset);
+        else {
+            strncpy(errbuf, message, errbuf_size - 1);
+            errbuf[errbuf_size-1] = 0;
+        }
+    }
+
+    return length + addlength;
+}
+
+/*************************************************
+ *           Free store held by a regex          *
+ *************************************************/
+
+static void ap_regfree(ap_regex_t *preg)
+{
+    (pcre_free)(preg->re_pcre);
+}
+
+
+
+
+/*************************************************
+ *            Compile a regular expression       *
+ *************************************************/
+
+/*
+Arguments:
+  preg        points to a structure for recording the compiled expression
+  pattern     the pattern to compile
+  cflags      compilation flags
+
+Returns:      0 on success
+              various non-zero codes on failure
+*/
+
+static int ap_regcomp(ap_regex_t *preg, const char *pattern, int cflags)
+{
+    const char *errorptr;
+    int erroffset;
+    int options = 0;
+
+    if ((cflags & AP_REG_ICASE) != 0) options |= PCRE_CASELESS;
+    if ((cflags & AP_REG_NEWLINE) != 0) options |= PCRE_MULTILINE;
+
+    preg->re_pcre = pcre_compile(pattern, options, &errorptr, &erroffset, NULL);
+    preg->re_erroffset = erroffset;
+
+    if (preg->re_pcre == NULL) return AP_REG_INVARG;
+
+    preg->re_nsub = pcre_info((const pcre *)preg->re_pcre, NULL, NULL);
+    return 0;
+}
+
+/*************************************************
+ *              Match a regular expression       *
+ *************************************************/
+
+/* Unfortunately, PCRE requires 3 ints of working space for each captured
+substring, so we have to get and release working store instead of just using
+the POSIX structures as was done in earlier releases when PCRE needed only 2
+ints. However, if the number of possible capturing brackets is small, use a
+block of store on the stack, to reduce the use of malloc/free. The threshold is
+in a macro that can be changed at configure time. */
+
+static int ap_regexec(const ap_regex_t *preg, const char *string,
+                      int nmatch, ap_regmatch_t pmatch[],
+                      int eflags)
+{
+    int rc;
+    int options = 0;
+    int *ovector = NULL;
+    int small_ovector[POSIX_MALLOC_THRESHOLD * 3];
+    int allocated_ovector = 0;
+
+    if ((eflags & AP_REG_NOTBOL) != 0) options |= PCRE_NOTBOL;
+    if ((eflags & AP_REG_NOTEOL) != 0) options |= PCRE_NOTEOL;
+
+    ((ap_regex_t *)preg)->re_erroffset = (size_t)(-1);  /* Only has meaning after compile */
+
+    if (nmatch > 0) {
+        if (nmatch <= POSIX_MALLOC_THRESHOLD) {
+            ovector = &(small_ovector[0]);
+        }
+        else {
+            ovector = (int *)malloc(sizeof(int) * nmatch * 3);
+            if (ovector == NULL)
+                return AP_REG_ESPACE;
+            allocated_ovector = 1;
+        }
+    }
+
+    rc = pcre_exec((const pcre *)preg->re_pcre, NULL, string,
+                   (int)strlen(string),
+                    0, options, ovector, nmatch * 3);
+
+    if (rc == 0)
+        rc = nmatch;    /* All captured slots were filled in */
+    if (rc >= 0) {
+        int i;
+        for (i = 0; i < rc; i++) {
+            pmatch[i].rm_so = ovector[i*2];
+            pmatch[i].rm_eo = ovector[i*2+1];
+        }
+        if (allocated_ovector)
+            free(ovector);
+        for (; i < nmatch; i++)
+            pmatch[i].rm_so = pmatch[i].rm_eo = -1;
+        return 0;
+    }
+    else {
+        if (allocated_ovector)
+            free(ovector);
+        switch(rc) {
+            case PCRE_ERROR_NOMATCH: return AP_REG_NOMATCH;
+            case PCRE_ERROR_NULL: return AP_REG_INVARG;
+            case PCRE_ERROR_BADOPTION: return AP_REG_INVARG;
+            case PCRE_ERROR_BADMAGIC: return AP_REG_INVARG;
+            case PCRE_ERROR_UNKNOWN_NODE: return AP_REG_ASSERT;
+            case PCRE_ERROR_NOMEMORY: return AP_REG_ESPACE;
+#ifdef PCRE_ERROR_MATCHLIMIT
+            case PCRE_ERROR_MATCHLIMIT: return AP_REG_ESPACE;
+#endif
+#ifdef PCRE_ERROR_BADUTF8
+            case PCRE_ERROR_BADUTF8: return AP_REG_INVARG;
+#endif
+#ifdef PCRE_ERROR_BADUTF8_OFFSET
+            case PCRE_ERROR_BADUTF8_OFFSET: return AP_REG_INVARG;
+#endif
+            default: return AP_REG_ASSERT;
+        }
+    }
+}
+
+/* This function substitutes for $0-$9, filling in regular expression
+ * submatches. Pass it the same nmatch and pmatch arguments that you
+ * passed ap_regexec(). pmatch should not be greater than the maximum number
+ * of subexpressions - i.e. one more than the re_nsub member of ap_regex_t.
+ *
+ * input should be the string with the $-expressions, source should be the
+ * string that was matched against.
+ *
+ * It returns the substituted string, or NULL on error.
+ *
+ * Parts of this code are based on Henry Spencer's regsub(), from his
+ * AT&T V8 regexp package.
+ */
+
+static char *ap_pregsub(const char *input,
+                        const char *source, size_t nmatch,
+                        ap_regmatch_t pmatch[])
+{
+    const char *src = input;
+    char *dest, *dst;
+    char c;
+    size_t no;
+    int len;
+
+    if (!source)
+        return NULL;
+    if (!nmatch)
+        return strdup(src);
+
+    /* First pass, find the size */
+    len = 0;
+
+    while ((c = *src++) != '\0') {
+        if (c == '&')
+            no = 0;
+        else if (c == '$' && isdigit((unsigned char)*src))
+            no = *src++ - '0';
+        else
+            no = 10;
+
+        if (no > 9) {                /* Ordinary character. */
+            if (c == '\\' && (*src == '$' || *src == '&'))
+                c = *src++;
+            len++;
+        }
+        else if (no < nmatch && pmatch[no].rm_so < pmatch[no].rm_eo) {
+            len += pmatch[no].rm_eo - pmatch[no].rm_so;
+        }
+
+    }
+
+    dest = dst = calloc(1, len + 1);
+
+    /* Now actually fill in the string */
+
+    src = input;
+
+    while ((c = *src++) != '\0') {
+        if (c == '&')
+            no = 0;
+        else if (c == '$' && isdigit((unsigned char)*src))
+            no = *src++ - '0';
+        else
+            no = 10;
+
+        if (no > 9) {                /* Ordinary character. */
+            if (c == '\\' && (*src == '$' || *src == '&'))
+                c = *src++;
+            *dst++ = c;
+        }
+        else if (no < nmatch && pmatch[no].rm_so < pmatch[no].rm_eo) {
+            len = pmatch[no].rm_eo - pmatch[no].rm_so;
+            memcpy(dst, source + pmatch[no].rm_so, len);
+            dst += len;
+        }
+
+    }
+    *dst = '\0';
+    return dest;
+}
+
 static int simple_rewrite(char *uri)
 {
     if (rewrite_map) {
@@ -735,6 +1088,8 @@
         char buf[INTERNET_MAX_URL_LENGTH];
         for (i = 0; i < jk_map_size(rewrite_map); i++) {
             const char *src = jk_map_name_at(rewrite_map, i);
+            if (*src == '~')
+                continue;   /* Skip regexp rewrites */
             if (strncmp(uri, src, strlen(src)) == 0) {
                 StringCbCopy(buf, INTERNET_MAX_URL_LENGTH, jk_map_value_at(rewrite_map, i));
                 StringCbCat(buf,  INTERNET_MAX_URL_LENGTH, uri + strlen(src));
@@ -746,6 +1101,35 @@
     return 0;
 }
 
+static int rregex_rewrite(char *uri)
+{
+    ap_regmatch_t regm[AP_MAX_REG_MATCH];
+
+    if (rregexp_map) {
+        int i;
+        for (i = 0; i < jk_map_size(rregexp_map); i++) {
+            ap_regex_t *regexp = (ap_regex_t *)jk_map_value_at(rregexp_map, i);
+            if (!ap_regexec(regexp, uri, AP_MAX_REG_MATCH, regm, 0)) {
+                char *subs = ap_pregsub(regexp->fake, uri,
+                                       AP_MAX_REG_MATCH, regm);
+                if (subs) {
+                    char buf[INTERNET_MAX_URL_LENGTH];
+                    size_t diffsz = strlen(subs) - (regm[0].rm_eo - regm[0].rm_so);
+                    memcpy(&buf[0], uri, regm[0].rm_so);
+                    StringCbCopy(&buf[regm[0].rm_so], INTERNET_MAX_URL_LENGTH - regm[0].rm_so, subs);
+                    StringCbCat(&buf[0], INTERNET_MAX_URL_LENGTH, uri + regm[0].rm_eo);
+                    StringCbCopy(uri, INTERNET_MAX_URL_LENGTH, &buf[0]);
+                    free(subs);
+                    return 1;
+                }
+            }
+        }
+    }
+    return 0;
+}
+
+static int init_error = 0;
+
 DWORD WINAPI HttpFilterProc(PHTTP_FILTER_CONTEXT pfc,
                             DWORD dwNotificationType, LPVOID pvNotification)
 {
@@ -764,6 +1148,14 @@
         if (!is_mapread)
             is_inited = JK_FALSE;
     }
+    if (!is_inited && !is_mapread) {
+        /* In case the initialization failed
+         * return error. This will make entire IIS
+         * unusable like with Apache servers
+         */
+         SetLastError(ERROR_INVALID_FUNCTION);
+         return SF_STATUS_REQ_ERROR;
+    }
     if (auth_notification_flags == dwNotificationType) {
         char uri[INTERNET_MAX_URL_LENGTH];
         char snuri[INTERNET_MAX_URL_LENGTH] = "/";
@@ -887,23 +1279,24 @@
              * Check if somebody is feading us with his own TOMCAT data headers.
              * We reject such postings !
              */
-            if (JK_IS_DEBUG_LEVEL(logger))
-                jk_log(logger, JK_LOG_DEBUG,
-                       "check if [%s] is points to the web-inf directory",
-                       uri);
+            if (worker) {
+                char *forwardURI;
 
-            if (uri_is_web_inf(uri)) {
-                jk_log(logger, JK_LOG_EMERG,
-                       "[%s] points to the web-inf or meta-inf directory.\nSomebody try to hack into the site!!!",
-                       uri);
+                if (JK_IS_DEBUG_LEVEL(logger))
+                    jk_log(logger, JK_LOG_DEBUG,
+                           "check if [%s] is points to the web-inf directory",
+                        uri);
 
-                write_error_response(pfc, "404 Not Found",
-                                     HTML_ERROR_404);
-                return SF_STATUS_REQ_FINISHED;
-            }
+                if (uri_is_web_inf(uri)) {
+                    jk_log(logger, JK_LOG_EMERG,
+                           "[%s] points to the web-inf or meta-inf directory. "
+                           "Somebody try to hack into the site!!!",
+                           uri);
 
-            if (worker) {
-                char *forwardURI;
+                    write_error_response(pfc, "404 Not Found",
+                                         HTML_ERROR_404);
+                    return SF_STATUS_REQ_FINISHED;
+                }
 
                 /* This is a servlet, should redirect ... */
                 if (JK_IS_DEBUG_LEVEL(logger))
@@ -939,6 +1332,21 @@
                                snuri);
                     forwardURI = snuri;
                 }
+                else if (uri_select_option == URI_SELECT_OPT_PROXY) {
+                    if (!jk_canonenc(uri, snuri, INTERNET_MAX_URL_LENGTH)) {
+                        jk_log(logger, JK_LOG_ERROR,
+                               "[%s] re-encoding request exceeds maximum buffer size.",
+                               uri);
+                        write_error_response(pfc, "400 Bad Request",
+                                             HTML_ERROR_400);
+                        return SF_STATUS_REQ_FINISHED;
+                    }
+                    if (JK_IS_DEBUG_LEVEL(logger))
+                        jk_log(logger, JK_LOG_DEBUG,
+                               "fowarding escaped URI [%s]",
+                               snuri);
+                    forwardURI = snuri;
+                }
                 else {
                     forwardURI = uri;
                 }
@@ -956,9 +1364,15 @@
                                "rewriten URI [%s]->[%s]",
                                duri, forwardURI);
                     }
+                    else if (rregex_rewrite(forwardURI)) {
+                        jk_log(logger, JK_LOG_DEBUG,
+                               "rewriten URI [%s]->[%s]",
+                               duri, forwardURI);
+                    }
                 }
                 else {
-                    simple_rewrite(forwardURI);
+                    if (!simple_rewrite(forwardURI))
+                        rregex_rewrite(forwardURI);
                 }
 
                 if (!AddHeader(pfc, URI_HEADER_NAME, forwardURI) ||
@@ -968,6 +1382,7 @@
                     !SetHeader(pfc, "url", extension_uri)) {
                     jk_log(logger, JK_LOG_ERROR,
                            "error while adding request headers");
+                    SetLastError(ERROR_INVALID_PARAMETER);
                     return SF_STATUS_REQ_ERROR;
                 }
 
@@ -1105,7 +1520,8 @@
                 s.retries = worker->retries;
                 if (worker->get_endpoint(worker, &e, logger)) {
                     int is_error = JK_HTTP_SERVER_ERROR;
-                    if (e->service(e, &s, logger, &is_error)) {
+                    int result;
+                    if ((result = e->service(e, &s, logger, &is_error)) > 0) {
                         rc = HSE_STATUS_SUCCESS;
                         lpEcb->dwHttpStatusCode = HTTP_STATUS_OK;
                         if (JK_IS_DEBUG_LEVEL(logger))
@@ -1113,9 +1529,16 @@
                                    "service() returned OK");
                     }
                     else {
+                        if ((result == JK_CLIENT_ERROR) && (is_error == JK_HTTP_OK)) {
+                            jk_log(logger, JK_LOG_INFO,
+                                   "service() failed because client aborted connection");
+                        }
+                        else {
+                            jk_log(logger, JK_LOG_ERROR,
+                                   "service() failed with http error %d", is_error);
+                        }
                         lpEcb->dwHttpStatusCode = is_error;
-                        jk_log(logger, JK_LOG_ERROR,
-                               "service() failed");
+                        write_error_message(lpEcb, is_error);
                     }
                     e->done(&e, logger);
                 }
@@ -1166,8 +1589,22 @@
         }
         if (workers_map) {
             jk_map_free(&workers_map);
-            workers_map = NULL;
         }
+        if (rewrite_map) {
+            jk_map_free(&rewrite_map);
+        }
+        if (rregexp_map) {
+            int i;
+            for (i = 0; i < jk_map_size(rregexp_map); i++) {
+                ap_regex_t *regexp = (ap_regex_t *)jk_map_value_at(rregexp_map, i);
+                if (regexp) {
+                    ap_regfree(regexp);
+                    free(regexp);
+                }
+            }
+            jk_map_free(&rregexp_map);
+        }
+        jk_shm_close();
         wc_close(logger);
         if (logger) {
             jk_close_file_logger(&logger);
@@ -1273,12 +1710,39 @@
     }
 
     if (rewrite_rule_file[0] && jk_map_alloc(&rewrite_map)) {
-        if (jk_map_read_properties(rewrite_map, rewrite_rule_file, NULL, 1, logger)) {
+        if (jk_map_read_properties(rewrite_map, rewrite_rule_file,
+                                   NULL, JK_MAP_HANDLE_RAW, logger)) {
+            int i;
             if (JK_IS_DEBUG_LEVEL(logger)) {
                 jk_log(logger, JK_LOG_DEBUG, "Loaded rewrite rule file %s.",
                        rewrite_rule_file);
 
             }
+            jk_map_alloc(&rregexp_map);
+            for (i = 0; i < jk_map_size(rewrite_map); i++) {
+                const char *src = jk_map_name_at(rewrite_map, i);
+                if (*src == '~') {
+                    ap_regex_t *regexp = malloc(sizeof(ap_regex_t));
+                    const char *val = jk_map_value_at(rewrite_map, i);
+                    /* Skip leading tilde */
+                    regexp->real = src + 1;
+                    regexp->fake = val;
+                    if (!ap_regcomp(regexp, regexp->real, AP_REG_EXTENDED)) {
+                        jk_map_add(rregexp_map, regexp->real, regexp);
+                        if (JK_IS_DEBUG_LEVEL(logger)) {
+                            jk_log(logger, JK_LOG_DEBUG,
+                                   "Added regular expression rule %s -> %s",
+                                   regexp->real, regexp->fake);
+                        }
+                    }
+                    else {
+                        jk_log(logger, JK_LOG_ERROR,
+                               "Unable to compile regular expression %s",
+                               regexp->real);
+                        free(regexp);
+                    }
+                }
+            }
         }
         else {
             jk_map_free(&rewrite_map);
@@ -1288,6 +1752,10 @@
 
     if (uri_worker_map_alloc(&uw_map, NULL, logger)) {
         rc = JK_FALSE;
+        if (reject_unsafe)
+            uw_map->reject_unsafe = 1;
+        else
+            uw_map->reject_unsafe = 0;
         uw_map->fname = worker_mount_file;
         uw_map->reload = worker_mount_reload;
         if (worker_mount_file[0])
@@ -1296,7 +1764,8 @@
     if (rc) {
         rc = JK_FALSE;
         if (jk_map_alloc(&workers_map)) {
-            if (jk_map_read_properties(workers_map, worker_file, NULL, 1, logger)) {
+            if (jk_map_read_properties(workers_map, worker_file, NULL,
+                                       JK_MAP_HANDLE_DUPLICATES, logger)) {
                 /* we add the URI->WORKER MAP since workers using AJP14 will feed it */
 
                 if (jk_map_resolve_references(workers_map, "worker.", 1, 1, logger) == JK_FALSE) {
@@ -1320,7 +1789,11 @@
             }
         }
     }
-
+    if (rc) {
+        jk_log(logger, JK_LOG_INFO,
+               "isapi_redirect/%s initialized",
+               JK_VERSTRING);
+    }
     return rc;
 }
 
@@ -1348,6 +1821,10 @@
         return URI_SELECT_OPT_ESCAPED;
     }
 
+    if (0 == strcasecmp(uri_select, URI_SELECT_PROXY_VERB)) {
+        return URI_SELECT_OPT_PROXY;
+    }
+
     return -1;
 }
 
@@ -1360,7 +1837,8 @@
     jk_map_t *map = NULL;
 
     if (jk_map_alloc(&map)) {
-        if (jk_map_read_properties(map, ini_file_name, NULL, 1, logger)) {
+        if (jk_map_read_properties(map, ini_file_name, NULL,
+                                   JK_MAP_HANDLE_DUPLICATES, logger)) {
             using_ini_file = JK_TRUE;
             src = map;
         }
@@ -1399,6 +1877,7 @@
     worker_mount_reload = get_config_int(src, WORKER_MOUNT_RELOAD_TAG, JK_URIMAP_DEF_RELOAD);
     strip_session = get_config_bool(src, STRIP_SESSION_TAG, JK_FALSE);
     use_auth_notification_flags = get_config_int(src, AUTH_COMPLETE_TAG, 1);
+    reject_unsafe = get_config_bool(src, REJECT_UNSAFE_TAG, JK_FALSE);
     if (using_ini_file) {
         jk_map_free(&map);
     }
@@ -1539,7 +2018,7 @@
     GET_SERVER_VARIABLE_VALUE_INT("SERVER_PORT_SECURE", s->is_ssl, 0);
 
     s->method = private_data->lpEcb->lpszMethod;
-    s->content_length = private_data->lpEcb->cbTotalBytes;
+    s->content_length = (jk_uint64_t)private_data->lpEcb->cbTotalBytes;
 
     s->ssl_cert = NULL;
     s->ssl_cert_len = 0;
@@ -1755,6 +2234,23 @@
         return JK_FALSE;
     }
 
+    /* Dump all connection param so we can trace what's going to
+     * the remote tomcat
+     */
+    if (JK_IS_DEBUG_LEVEL(logger)) {
+        jk_log(logger, JK_LOG_DEBUG,
+               "Service protocol=%s method=%s host=%s addr=%s name=%s port=%d auth=%s user=%s uri=%s",
+               STRNULL_FOR_NULL(s->protocol),
+               STRNULL_FOR_NULL(s->method),
+               STRNULL_FOR_NULL(s->remote_host),
+               STRNULL_FOR_NULL(s->remote_addr),
+               STRNULL_FOR_NULL(s->server_name),
+               s->server_port,
+               STRNULL_FOR_NULL(s->auth_type),
+               STRNULL_FOR_NULL(s->remote_user),
+               STRNULL_FOR_NULL(s->req_uri));
+    }
+
     return JK_TRUE;
 }
 

Added: trunk/tomcat5.5/connectors/jk/native/iis/pcre/dftables.x86
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/pcre/dftables.x86	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/iis/pcre/dftables.x86	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,94 @@
+CPP=cl.exe
+RSC=rc.exe
+OUTDIR=.
+INTDIR=.\Release_x86
+# Begin Custom Macros
+OutDir=.
+# End Custom Macros
+
+ALL : "$(OUTDIR)\dftables.exe"
+
+
+CLEAN :
+	- at erase "$(INTDIR)\dftables.idb"
+	- at erase "$(INTDIR)\dftables.obj"
+	- at erase "$(OUTDIR)\dftables.exe"
+
+"$(INTDIR)" :
+    if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)"
+
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\dftables.bsc" 
+BSC32_SBRS= \
+	
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\Release\dftables.pdb" /machine:I386 /out:"$(OUTDIR)\dftables.exe" /opt:ref 
+LINK32_OBJS= \
+	"$(INTDIR)\dftables.obj"
+
+"$(OUTDIR)\dftables.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+CPP_PROJ=/nologo /MD /W3 /O2 /D "_WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\dftables" /FD /wd4996 /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+
+!IF "$(CFG)" == "dftables_x86"
+SOURCE=.\dftables.c
+
+"$(INTDIR)\dftables.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\config.hw
+InputPath=.\config.hw
+
+".\config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\config.hw > .\config.h
+<< 
+	
+SOURCE=.\maketables.c
+SOURCE=.\pcre.hw
+InputPath=.\pcre.hw
+
+".\pcre.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\pcre.hw > .\pcre.h
+<< 
+	
+
+!ENDIF 
+

Added: trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.amd64
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.amd64	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.amd64	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,131 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on pcre.dsp
+# Use Platform SDK:
+# SetEnv.cmd /X64 /RETAIL
+# nmake -f pcre.amd64
+#
+
+CPP=cl.exe
+RSC=rc.exe
+OUTDIR=.\Release_amd64
+INTDIR=.\Release_amd64
+# Begin Custom Macros
+OutDir=.\Release_amd64
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : "$(OUTDIR)\pcre.lib"
+
+!ELSE 
+
+ALL : "$(OUTDIR)\pcre.lib"
+
+!ENDIF 
+
+CLEAN :
+	- at erase "$(INTDIR)\get.obj"
+	- at erase "$(INTDIR)\maketables.obj"
+	- at erase "$(INTDIR)\pcre.obj"
+	- at erase "$(INTDIR)\pcre_src.idb"
+	- at erase "$(INTDIR)\pcre_src.pdb"
+	- at erase "$(INTDIR)\study.obj"
+	- at erase "$(OUTDIR)\pcre.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\pcre.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\pcre.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\get.obj" \
+	"$(INTDIR)\maketables.obj" \
+	"$(INTDIR)\pcre.obj" \
+	"$(INTDIR)\study.obj"
+
+"$(OUTDIR)\pcre.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /D "_WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AMD64_=1" -DWIN64 /D "_WIN64" /Wp64 /FIPRE64PRA.H /D "PCRE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\pcre_src" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+SOURCE=.\dftables.exe
+InputPath=.\dftables.exe
+
+".\chartables.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	.\dftables.exe chartables.c 
+<< 
+	
+SOURCE=.\get.c
+
+"$(INTDIR)\get.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\maketables.c
+
+"$(INTDIR)\maketables.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\pcre.c
+
+"$(INTDIR)\pcre.obj" : $(SOURCE) "$(INTDIR)" ".\chartables.c" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\study.c
+
+"$(INTDIR)\study.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\config.hw
+InputPath=.\config.hw
+
+".\config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\config.hw > .\config.h
+<< 
+	
+SOURCE=.\pcre.hw
+InputPath=.\pcre.hw
+
+".\pcre.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\pcre.hw > .\pcre.h
+<< 

Added: trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.ia64
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.ia64	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.ia64	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,132 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on pcre.dsp
+# Use Platform SDK:
+# SetEnv.cmd /SRV64 /RETAIL
+# nmake -f pcre.amd64
+#
+
+CPP=cl.exe
+RSC=rc.exe
+OUTDIR=.\Release_ia64
+INTDIR=.\Release_ia64
+# Begin Custom Macros
+OutDir=.\Release_ia64
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : "$(OUTDIR)\pcre.lib"
+
+!ELSE 
+
+ALL : "$(OUTDIR)\pcre.lib"
+
+!ENDIF 
+
+CLEAN :
+	- at erase "$(INTDIR)\get.obj"
+	- at erase "$(INTDIR)\maketables.obj"
+	- at erase "$(INTDIR)\pcre.obj"
+	- at erase "$(INTDIR)\pcre_src.idb"
+	- at erase "$(INTDIR)\pcre_src.pdb"
+	- at erase "$(INTDIR)\study.obj"
+	- at erase "$(OUTDIR)\pcre.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\pcre.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\pcre.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\get.obj" \
+	"$(INTDIR)\maketables.obj" \
+	"$(INTDIR)\pcre.obj" \
+	"$(INTDIR)\study.obj"
+
+"$(OUTDIR)\pcre.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /D "_WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_IA64_=1" -DWIN64 /D "_WIN64" /Wp64 /FIPRE64PRA.H /D "PCRE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\pcre_src" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+SOURCE=.\dftables.exe
+InputPath=.\dftables.exe
+
+".\chartables.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	.\dftables.exe chartables.c 
+<< 
+	
+SOURCE=.\get.c
+
+"$(INTDIR)\get.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\maketables.c
+
+"$(INTDIR)\maketables.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\pcre.c
+
+"$(INTDIR)\pcre.obj" : $(SOURCE) "$(INTDIR)" ".\chartables.c" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\study.c
+
+"$(INTDIR)\study.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\config.hw
+InputPath=.\config.hw
+
+".\config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\config.hw > .\config.h
+<< 
+	
+SOURCE=.\pcre.hw
+InputPath=.\pcre.hw
+
+".\pcre.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\pcre.hw > .\pcre.h
+<< 
+	

Added: trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.x86
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.x86	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/iis/pcre/pcre.x86	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,139 @@
+CPP=cl.exe
+RSC=rc.exe
+OUTDIR=.\Release_x86
+INTDIR=.\Release_x86
+# Begin Custom Macros
+OutDir=.\Release_x86
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : "$(OUTDIR)\pcre.lib"
+
+!ELSE 
+
+ALL : "dftables_x86" "$(OUTDIR)\pcre.lib"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"dftables_x86CLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+	- at erase "$(INTDIR)\get.obj"
+	- at erase "$(INTDIR)\maketables.obj"
+	- at erase "$(INTDIR)\pcre.obj"
+	- at erase "$(INTDIR)\pcre_src.idb"
+	- at erase "$(INTDIR)\pcre_src.pdb"
+	- at erase "$(INTDIR)\study.obj"
+	- at erase "$(OUTDIR)\pcre.lib"
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\pcre.bsc" 
+BSC32_SBRS= \
+	
+LIB32=link.exe -lib
+LIB32_FLAGS=/nologo /out:"$(OUTDIR)\pcre.lib" 
+LIB32_OBJS= \
+	"$(INTDIR)\get.obj" \
+	"$(INTDIR)\maketables.obj" \
+	"$(INTDIR)\pcre.obj" \
+	"$(INTDIR)\study.obj"
+
+"$(OUTDIR)\pcre.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
+    $(LIB32) @<<
+  $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
+<<
+
+CPP_PROJ=/nologo /MD /W3 /Zi /O2 /D "_WIN32" /D "NDEBUG" /D "_WINDOWS" /D "PCRE_STATIC" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\pcre_src" /FD /c 
+
+.c{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.obj::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.c{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cpp{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+.cxx{$(INTDIR)}.sbr::
+   $(CPP) @<<
+   $(CPP_PROJ) $< 
+<<
+
+SOURCE=.\dftables.exe
+InputPath=.\dftables.exe
+
+".\chartables.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	.\dftables.exe chartables.c 
+<< 
+	
+SOURCE=.\get.c
+
+"$(INTDIR)\get.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\maketables.c
+
+"$(INTDIR)\maketables.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\pcre.c
+
+"$(INTDIR)\pcre.obj" : $(SOURCE) "$(INTDIR)" ".\chartables.c" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\study.c
+
+"$(INTDIR)\study.obj" : $(SOURCE) "$(INTDIR)" ".\config.h" ".\pcre.h"
+
+
+SOURCE=.\config.hw
+InputPath=.\config.hw
+
+".\config.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\config.hw > .\config.h
+<< 
+	
+SOURCE=.\pcre.hw
+InputPath=.\pcre.hw
+
+".\pcre.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+	<<tempfile.bat 
+	@echo off 
+	type .\pcre.hw > .\pcre.h
+<< 
+
+"dftables_x86" : 
+   cd "."
+   $(MAKE) /$(MAKEFLAGS) /F ".\dftables.x86" CFG="dftables_x86" 
+   cd "."
+
+"dftables_x86CLEAN" : 
+   cd "."
+   $(MAKE) /$(MAKEFLAGS) /F ".\dftables.x86" CFG="dftables_x86" RECURSE=1 CLEAN 
+   cd "."

Modified: trunk/tomcat5.5/connectors/jk/native/jni/Makefile.netware
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/jni/Makefile.netware	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/jni/Makefile.netware	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,6 +1,6 @@
 #
 # Makefile for jk_nsapi_plugin (NetWare version - gnu make)
-# created by Guenter Knauf <eflash at gmx.net>
+# created by Guenter Knauf <fuankg at apache.org>
 #
 
 # Edit the path below to point to the base of your Netscape includes.
@@ -15,12 +15,16 @@
 ifndef NDKBASE
 NDKBASE	= c:/novell
 endif
-INSTDIR = /mnt/sys/novonyx/modules
 
+ifndef INSTDIR
+INSTDIR	= s:/sys/novonyx/modules
+endif
+
 # Edit the vars below to change NLM target settings.
 TARGET  = jni_conn
 VERSION	= $(JK_VERSION)
-COPYR	= Copyright (c) 2000-2004 The Apache Software Foundation. All rights reserved.
+#COPYR	= Copyright (c) 2000-2007 The Apache Software Foundation. All rights reserved.
+COPYR	= Licensed under the Apache License, Version 2.0
 DESCR	= JNI natives for Tomcat $(JK_VERSION_STR)
 MTSAFE	= NO
 STACK	= 64000
@@ -67,15 +71,16 @@
 # CP	= cp -fv
 # if you want to mark the target as MTSAFE you will need a tool for
 # generating the xdc data for the linker; here's a minimal tool:
-# http://www.gknw.com/development/prgtools/mkxdc.zip
+# http://www.gknw.net/development/prgtools/mkxdc.zip
 MPKXDC	= mkxdc
+AWK	= awk
 
 # Global flags for all compilers
 CFLAGS	= $(OPT) -D$(DB) -DNETWARE -DXP_NETWARE -nostdinc
 
 ifeq ($(CC),mwccnlm)
 LD	= mwldnlm
-LDFLAGS	= -nostdlib $(PRELUDE) $(OBJDIR)/*.o -o $(OBJDIR)/$(TARGET).nlm -commandfile
+LDFLAGS	= -nostdlib $(OBJS) $(PRELUDE) $(LDLIBS) -o $@ -commandfile
 CFLAGS	+= -gccinc -inline off -opt nointrinsics
 #CFLAGS	+= -w on
 ifeq ($(LIBARCH),LIBC)
@@ -84,6 +89,7 @@
 #	CFLAGS += -D__ANSIC__
 else
 	PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
+	LDLIBS = "$(METROWERKS)/Novell Support/libraries/runtime/mwcrtl.lib"
 #	CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
 	CFLAGS += -align 1 -proc 586
 endif
@@ -101,8 +107,6 @@
 endif
 endif
 
-LDLIBS	=
-
 NDK_ROOT = $(NDKBASE)/ndk
 SDK_CLIB = $(NDK_ROOT)/nwsdk
 SDK_LIBC = $(NDK_ROOT)/libc
@@ -112,12 +116,14 @@
 INCLUDES += -I$(JKCOMMON) -I$(NW_JDK)/include -I$(NW_JDK)/include/netware 
 
 ifeq ($(LIBARCH),LIBC)
-	INCLUDES += -I$(SDK_LIBC)/include -I$(SDK_LIBC)/include/nks
+	INCLUDES += -I$(SDK_LIBC)/include
 	INCLUDES += -I$(SDK_LIBC)/include/winsock
 else
-	INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
-	INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete
+	INCLUDES += -I$(SDK_CLIB)/include/nlm
+	# INCLUDES += -I$(NDKBASE)/ws295sdk/include
 	CFLAGS += -DNETDB_USE_INTERNET
+	CFLAGS += -DNO_GETTIMEOFDAY
+	CFLAGS += -DJK_PREFORK
 endif
 CFLAGS	+= $(INCLUDES)
 
@@ -131,26 +137,25 @@
 endif
 
 OBJS	= \
+	$(OBJDIR)/jk_jnicb.o \
 	$(OBJDIR)/jk_nwmain.o \
 	$(OBJDIR)/jk_map.o \
 	$(OBJDIR)/jk_pool.o \
 	$(OBJDIR)/jk_util.o \
-	$(OBJDIR)/jk_jnicb.o
+	$(OBJDIR)/ap_snprintf.o
 
+vpath %.c . $(JKCOMMON)
 
+
 all: $(OBJDIR) $(OBJDIR)/version.inc $(OBJDIR)/$(TARGET).nlm 
 
 $(OBJDIR)/%.o: %.c
 	@echo Compiling $<
 	@$(CC) $(CFLAGS) -c $< -o $@
 
-$(OBJDIR)/%.o: $(JKCOMMON)/%.c
-	@echo Compiling $<
-	@$(CC) $(CFLAGS) -c $< -o $@
-
 $(OBJDIR)/version.inc: $(JKCOMMON)/jk_version.h $(OBJDIR)
 	@echo Creating $@
-	@awk -f ../../support/get_ver.awk $< > $@
+	@$(AWK) -f ../../support/get_ver.awk $< > $@
 
 dist: all
 	-$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv
@@ -236,6 +241,10 @@
 ifeq ($(LD),nlmconv)
 	@echo $(DL)input $(OBJS)$(DL) >> $@
 	@echo $(DL)input $(PRELUDE)$(DL) >> $@
-	@echo $(DL)output $(TARGET).nlm$(DL) >> $@
+ifdef LDLIBS
+	@echo $(DL)input $(LDLIBS)$(DL) >> $@
 endif
+	@echo $(DL)output $*.nlm$(DL) >> $@
+endif
 
+

Modified: trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.linux
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.linux	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.linux	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,14 +1,20 @@
 # Defines for example NSAPI programs running under Linux
 
-#gcc
+# gcc
 # If you get relocation errors, try:
 #   1. compiling with Sun's cc
 #   2. statically linking with libgcc
 #   3. Adjusting LD_LIBRARY_PATH to grab libgcc_s
-CC_CMD=gcc -fpic -DNET_SSL -DLinux -DLINUX -D_REENTRANT -DXP_UNIX
+CC=gcc
+# For 64 Bit builds, add "-m64" to EXTRA_CFLAGS
+EXTRA_CFLAGS=-fPIC -pthread
+LDFLAGS=-shared
 
-LD_SHAREDCMD=gcc -shared
+CC_CMD=$(CC) $(CFLAGS) $(EXTRA_CFLAGS) \
+	-DNET_SSL -DSOLARIS -D_REENTRANT -DXP_UNIX -DMCC_HTTPD -DSPAPI20
 
+LD_SHAREDCMD=$(CC) $(LDFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
+
 OS_TYPE=linux
 INCLUDEDIR=$(SUITSPOT_HOME)/include
 JAVA_INCLUDE=$(JAVA_HOME)/include
@@ -28,7 +34,7 @@
 all: nsapi_redirector.so 
 
 
-nsapi_redirector.so: $(PLUGIN_OBJ) $(JK_OBJS)
+nsapi_redirector.so: $(JK_OBJS) $(PLUGIN_OBJ)
 	$(LD_SHAREDCMD) $(JK_OBJS) $(PLUGIN_OBJ) -o nsapi_redirector.so $(EXTRA_LDDEFINES)
 
 clean:

Modified: trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.netware
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.netware	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.netware	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,6 +1,6 @@
 #
 # Makefile for jk_nsapi_plugin (NetWare version - gnu make)
-# created by Guenter Knauf <eflash at gmx.net>
+# created by Guenter Knauf <fuankg at apache.org>
 #
 
 # Edit the path below to point to the base of your Netscape includes.
@@ -15,15 +15,19 @@
 ifndef NDKBASE
 NDKBASE	= c:/novell
 endif
-INSTDIR = /mnt/sys/novonyx/modules
 
+ifndef INSTDIR
+INSTDIR	= s:/sys/novonyx/modules
+endif
+
 # Edit the vars below to change NLM target settings.
 TARGET  = nsapi_rd
 VERSION	= $(JK_VERSION)
-COPYR	= Copyright (c) 2000-2005 The Apache Software Foundation. All rights reserved.
+#COPYR	= Copyright (c) 2000-2007 The Apache Software Foundation. All rights reserved.
+COPYR	= Licensed under the Apache License, Version 2.0
 DESCR	= Netscape plugin for Tomcat $(JK_VERSION_STR)
 MTSAFE	= NO
-STACK	= 64000
+STACK	= 65536
 #SCREEN	= System Console
 MODULES	= nshttpd
 EXPORTS	= jk_init jk_service
@@ -60,15 +64,16 @@
 # CP	= cp -fv
 # if you want to mark the target as MTSAFE you will need a tool for
 # generating the xdc data for the linker; here's a minimal tool:
-# http://www.gknw.de/development/prgtools/mkxdc.zip
+# http://www.gknw.net/development/prgtools/mkxdc.zip
 MPKXDC	= mkxdc
+AWK	= awk
 
 # Global flags for all compilers
 CFLAGS	= $(OPT) -D$(DB) -DNETWARE -DXP_NETWARE -nostdinc
 
 ifeq ($(CC),mwccnlm)
 LD	= mwldnlm
-LDFLAGS	= -nostdlib $(PRELUDE) $(OBJDIR)/*.o -o $(OBJDIR)/$(TARGET).nlm -commandfile
+LDFLAGS	= -nostdlib $(OBJS) $(PRELUDE) $(LDLIBS) -o $@ -commandfile
 CFLAGS	+= -gccinc -inline off -opt nointrinsics
 #CFLAGS	+= -w on
 ifeq ($(LIBARCH),LIBC)
@@ -77,6 +82,7 @@
 #	CFLAGS += -D__ANSIC__
 else
 	PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
+	LDLIBS = "$(METROWERKS)/Novell Support/libraries/runtime/mwcrtl.lib"
 #	CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
 	CFLAGS += -align 1 -proc 586
 endif
@@ -94,8 +100,6 @@
 endif
 endif
 
-LDLIBS	=
-
 NDK_ROOT = $(NDKBASE)/ndk
 SDK_CLIB = $(NDK_ROOT)/nwsdk
 SDK_LIBC = $(NDK_ROOT)/libc
@@ -105,12 +109,14 @@
 INCLUDES += -I$(JKCOMMON) -I$(NW_JDK)/include -I$(NW_JDK)/include/netware 
 
 ifeq ($(LIBARCH),LIBC)
-	INCLUDES += -I$(SDK_LIBC)/include -I$(SDK_LIBC)/include/nks
+	INCLUDES += -I$(SDK_LIBC)/include
 	INCLUDES += -I$(SDK_LIBC)/include/winsock
 else
-	INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
-	INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete
+	INCLUDES += -I$(SDK_CLIB)/include/nlm
+	# INCLUDES += -I$(NDKBASE)/ws295sdk/include
 	CFLAGS += -DNETDB_USE_INTERNET
+	CFLAGS += -DNO_GETTIMEOFDAY
+	CFLAGS += -DJK_PREFORK
 endif
 CFLAGS	+= $(INCLUDES)
 
@@ -124,6 +130,7 @@
 endif
 
 OBJS	= \
+	$(OBJDIR)/jk_nsapi_plugin.o \
 	$(OBJDIR)/jk_nwmain.o \
 	$(OBJDIR)/jk_ajp12_worker.o \
 	$(OBJDIR)/jk_ajp13.o \
@@ -143,24 +150,23 @@
 	$(OBJDIR)/jk_sockbuf.o \
 	$(OBJDIR)/jk_status.o \
 	$(OBJDIR)/jk_uri_worker_map.o \
+	$(OBJDIR)/jk_url.o \
 	$(OBJDIR)/jk_util.o \
 	$(OBJDIR)/jk_worker.o \
-	$(OBJDIR)/jk_nsapi_plugin.o
+	$(OBJDIR)/ap_snprintf.o
 
+vpath %.c . $(JKCOMMON)
 
+
 all: $(OBJDIR) $(OBJDIR)/version.inc $(OBJDIR)/$(TARGET).nlm 
 
 $(OBJDIR)/%.o: %.c
 	@echo Compiling $<
 	@$(CC) $(CFLAGS) -c $< -o $@
 
-$(OBJDIR)/%.o: $(JKCOMMON)/%.c
-	@echo Compiling $<
-	@$(CC) $(CFLAGS) -c $< -o $@
-
 $(OBJDIR)/version.inc: $(JKCOMMON)/jk_version.h $(OBJDIR)
 	@echo Creating $@
-	@awk -f ../../support/get_ver.awk $< > $@
+	@$(AWK) -f ../../support/get_ver.awk $< > $@
 
 dist: all
 	-$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv
@@ -246,6 +252,10 @@
 ifeq ($(LD),nlmconv)
 	@echo $(DL)input $(OBJS)$(DL) >> $@
 	@echo $(DL)input $(PRELUDE)$(DL) >> $@
-	@echo $(DL)output $(TARGET).nlm$(DL) >> $@
+ifdef LDLIBS
+	@echo $(DL)input $(LDLIBS)$(DL) >> $@
 endif
+	@echo $(DL)output $*.nlm$(DL) >> $@
+endif
 
+

Modified: trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.solaris
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.solaris	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/netscape/Makefile.solaris	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,21 +1,28 @@
 # Defines for example NSAPI programs running under SOLARIS
 
-#gcc
+# Choose between the settings for gcc or Sun Studio compiler
+
+# gcc
 # If you get relocation errors, try:
 #   1. compiling with Sun's cc
 #   2. statically linking with libgcc
 #   3. Adjusting LD_LIBRARY_PATH to grab libgcc_s
-CC_CMD=gcc -DNET_SSL -DSOLARIS -D_REENTRANT -DXP_UNIX \
-	-DMCC_HTTPD -DSPAPI20 \
-	-fPIC
+CC=gcc
+# For 64 Bit builds, add "-m64" to EXTRA_CFLAGS
+EXTRA_CFLAGS=-fPIC -pthread
+LDFLAGS=-shared
 
-#SunStudio cc compiler
-#CC_CMD=cc -DNET_SSL -DSOLARIS -D_REENTRANT -DXP_UNIX \
-#	-DMCC_HTTPD -DSPAPI20 \
-#	-xcode=pic32
+# Sun Studio cc compiler
+#CC=cc
+# For 64 Bit builds, add "-xtarget=generic64" to EXTRA_CFLAGS
+#EXTRA_CFLAGS=-xcode=pic32 -mt
+#LDFLAGS=-G
 
-LD_SHAREDCMD=ld -G -fPIC
+CC_CMD=$(CC) $(CFLAGS) $(EXTRA_CFLAGS) \
+	-DNET_SSL -DSOLARIS -D_REENTRANT -DXP_UNIX -DMCC_HTTPD -DSPAPI20
 
+LD_SHAREDCMD=$(CC) $(LDFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
+
 all:
 
 prepare:
@@ -44,4 +51,4 @@
 	rm -f *.o nsapi_redirector.so $(JK_OBJS)
 
 %.o : %.c
-	$(CC_CMD) $(INCLUDE_FLAGS) -c $< 
+	$(CC_CMD) $(INCLUDE_FLAGS) -c $<

Modified: trunk/tomcat5.5/connectors/jk/native/netscape/README
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/netscape/README	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/netscape/README	2007-10-03 19:12:01 UTC (rev 4300)
@@ -5,9 +5,9 @@
 so having this environment is a prerequisite if you want to perform 
 a custom build on Windows systems
 
-On Unix system, a Makefile.solaris is provided and should be 
-adapted to tailor to your own configuration. Be sure to read
-the BUILDING file, one directory up.
+On Unix system, a Makefile.solaris and Makefile.linux are provided
+and should be adapted to tailor to your own configuration.
+Be sure to read the BUILDING file, one directory up.
 
 
 REQUIREMENT for Windows build

Modified: trunk/tomcat5.5/connectors/jk/native/netscape/jk_nsapi_plugin.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/netscape/jk_nsapi_plugin.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/netscape/jk_nsapi_plugin.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -18,22 +18,27 @@
 /***************************************************************************
  * Description: NSAPI plugin for Netscape servers                          *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
- * Version:     $Revision: 500880 $                                           *
+ * Version:     $Revision: 562175 $                                           *
  ***************************************************************************/
 
 
 #include "nsapi.h"
 #include "jk_global.h"
+#include "jk_url.h"
 #include "jk_util.h"
 #include "jk_map.h"
 #include "jk_pool.h"
 #include "jk_service.h"
 #include "jk_worker.h"
 #include "jk_shm.h"
+#include "jk_ajp13.h"
 
 #define URI_PATTERN "path"
 #define DEFAULT_WORKER_NAME ("ajp13")
+#define REJECT_UNSAFE_TAG   "reject_unsafe"
 
+#define STRNULL_FOR_NULL(x) ((x) ? (x) : "(null)")
+
 struct nsapi_private_data
 {
     jk_pool_t p;
@@ -90,11 +95,12 @@
     init_map = (jk_map_t *)init_d;
     /* we add the URI->WORKER MAP since workers using AJP14 will feed it */
     /* but where are they here in Netscape ? */
-    if (wc_open(init_map, &worker_env, logger)) {
-        if (uri_worker_map_alloc(&uw_map, NULL, logger)) {
-            uw_map->fname = "";
-            uw_map->reload = JK_URIMAP_DEF_RELOAD;
-            worker_env.uri_to_worker = uw_map;
+    if (uri_worker_map_alloc(&uw_map, NULL, logger)) {
+        uw_map->fname = "";
+        uw_map->reload = JK_URIMAP_DEF_RELOAD;
+        uw_map->reject_unsafe = jk_map_get_bool(init_map, "worker." REJECT_UNSAFE_TAG, JK_FALSE);
+        worker_env.uri_to_worker = uw_map;
+        if (wc_open(init_map, &worker_env, logger)) {
             init_on_other_thread_is_ok = JK_TRUE;
         }
         else {
@@ -225,12 +231,11 @@
     char *log_level_str = pblock_findval(JK_LOG_LEVEL_TAG, pb);
     char *log_file = pblock_findval(JK_LOG_FILE_TAG, pb);
     char *shm_file = pblock_findval(JK_SHM_FILE_TAG, pb);
+    char *shm_file_safe = "";
+    char *reject_unsafe = pblock_findval(REJECT_UNSAFE_TAG, pb);
 
     int rc = REQ_ABORTED;
 
-    fprintf(stderr,
-            "In jk_init.\n   Worker file = %s.\n   Log level = %s.\n   Log File = %s\n",
-            worker_prp_file, log_level_str, log_file);
     if (!worker_prp_file) {
         worker_prp_file = JK_WORKER_FILE_DEF;
     }
@@ -239,6 +244,27 @@
         log_level_str = JK_LOG_DEF_VERB;
     }
 
+    if (!log_file) {
+        fprintf(stderr,
+                "Missing attribute %s in magnus.conf (jk_init) - aborting!\n", JK_LOG_FILE_TAG);
+        return rc;
+    }
+
+    if (shm_file) {
+        shm_file_safe = shm_file;
+    }
+#if !defined(WIN32) && !defined(NETWARE)
+    else {
+        fprintf(stderr,
+                "Missing attribute %s in magnus.conf (jk_init) - aborting!\n", JK_SHM_FILE_TAG);
+        return rc;
+    }
+#endif
+
+    fprintf(stderr,
+            "In jk_init.\n   Worker file = %s.\n   Log level = %s.\n   Log File = %s\n   SHM File = %s\n",
+            worker_prp_file, log_level_str, log_file, shm_file);
+
     if (!jk_open_file_logger(&logger, log_file,
                              jk_parse_log_level(log_level_str))) {
         logger = NULL;
@@ -246,7 +272,8 @@
     
     jk_shm_open(shm_file, JK_SHM_DEF_SIZE, logger);
     if (jk_map_alloc(&init_map)) {
-        if (jk_map_read_properties(init_map, worker_prp_file, NULL, 1, logger)) {
+        if (jk_map_read_properties(init_map, worker_prp_file, NULL,
+                                   JK_MAP_HANDLE_DUPLICATES, logger)) {
             int sleep_cnt;
             SYS_THREAD s;
 
@@ -254,6 +281,9 @@
                 jk_log(logger, JK_LOG_ERROR, "Error in resolving configuration references");
             }
 
+            if (reject_unsafe) {
+                jk_map_add(init_map, "worker." REJECT_UNSAFE_TAG, reject_unsafe); 
+            }
             s = systhread_start(SYSTHREAD_DEFAULT_PRIORITY,
                                 0, init_workers_on_other_threads, init_map);
             for (sleep_cnt = 0; sleep_cnt < 60; sleep_cnt++) {
@@ -267,6 +297,8 @@
             if (init_on_other_thread_is_done && init_on_other_thread_is_ok) {
                 magnus_atrestart(jk_term, NULL);
                 rc = REQ_PROCEED;
+                jk_log(logger, JK_LOG_INFO, "nsapi_redirector/%s initialized",
+                       JK_VERSTRING);
             }
 
 /*            if(wc_open(init_map, NULL, logger)) {
@@ -296,14 +328,15 @@
         uri_worker_map_free(&uw_map, logger);
     }
 
+    if (init_map) {
+        jk_map_free(&init_map);
+    }
+
+    jk_shm_close();
     wc_close(logger);
     if (logger) {
         jk_close_file_logger(&logger);
     }
-
-    if (init_map) {
-    jk_map_free(&init_map);
-    }
 }
 
 NSAPI_PUBLIC int jk_service(pblock * pb, Session * sn, Request * rq)
@@ -342,15 +375,34 @@
 
         s.ws_private = &private_data;
         s.pool = &private_data.p;
+        s.retries = worker->retries;
 
         wc_maintain(logger);
         if (init_ws_service(&private_data, &s)) {
             jk_endpoint_t *e = NULL;
             if (worker->get_endpoint(worker, &e, logger)) {
-                int recover = JK_FALSE;
-                if (e->service(e, &s, logger, &recover)) {
+                int is_error = JK_HTTP_SERVER_ERROR;
+                int result;
+                if ((result = e->service(e, &s, logger, &is_error)) > 0) {
                     rc = REQ_PROCEED;
+                    if (JK_IS_DEBUG_LEVEL(logger))
+                        jk_log(logger, JK_LOG_DEBUG,
+                               "service() returned OK");
                 }
+                else {
+                    protocol_status(sn, rq, is_error, NULL);
+                    if ((result == JK_CLIENT_ERROR) && (is_error == JK_HTTP_OK)) {
+                        rc = REQ_EXIT;
+                        jk_log(logger, JK_LOG_INFO,
+                               "service() failed because client aborted connection");
+                    }
+                    else {
+                        rc = REQ_ABORTED;
+                        jk_log(logger, JK_LOG_ERROR,
+                               "service() failed with http error %d", is_error);
+                    }
+                }
+
                 e->done(&e, logger);
             }
         }
@@ -364,6 +416,7 @@
                            jk_ws_service_t *s)
 {
     char *tmp;
+    int size;
     int rc;
 
     s->route = NULL;
@@ -371,6 +424,9 @@
     s->read = ws_read;
     s->write = ws_write;
     s->flush = NULL;
+    s->flush_packets = JK_FALSE;
+    s->flush_header = JK_FALSE;
+    s->disable_reuse = JK_FALSE;
 
     /* Clear RECO status */
     s->reco_status = RECO_NONE;
@@ -384,7 +440,7 @@
                         &tmp, private_data->sn, private_data->rq);
 
     if ((rc != REQ_ABORTED) && tmp) {
-        s->content_length = atoi(tmp);
+        sscanf(tmp, "%" JK_UINT64_T_FMT, &(s->content_length));
     }
 
     s->method = pblock_findval("method", private_data->rq->reqpb);
@@ -393,7 +449,11 @@
     s->remote_host = session_dns(private_data->sn);
     s->remote_addr = pblock_findval("ip", private_data->sn->client);
 
-    s->req_uri = pblock_findval("uri", private_data->rq->reqpb);
+    tmp = pblock_findval("uri", private_data->rq->reqpb);
+    size = 3 * strlen(tmp) + 1;
+    s->req_uri = jk_pool_alloc(s->pool, size);
+    jk_canonenc(tmp, s->req_uri, size);
+
     s->query_string = pblock_findval("query", private_data->rq->reqpb);
 
     s->server_name = server_hostname;
@@ -449,7 +509,27 @@
         s->ssl_session = NULL;
     }
 
-    return setup_http_headers(private_data, s);
+    rc = setup_http_headers(private_data, s);
+
+    /* Dump all connection param so we can trace what's going to
+     * the remote tomcat
+     */
+    if (JK_IS_DEBUG_LEVEL(logger)) {
+        jk_log(logger, JK_LOG_DEBUG,
+               "Service protocol=%s method=%s host=%s addr=%s name=%s port=%d auth=%s user=%s uri=%s",
+               STRNULL_FOR_NULL(s->protocol),
+               STRNULL_FOR_NULL(s->method),
+               STRNULL_FOR_NULL(s->remote_host),
+               STRNULL_FOR_NULL(s->remote_addr),
+               STRNULL_FOR_NULL(s->server_name),
+               s->server_port,
+               STRNULL_FOR_NULL(s->auth_type),
+               STRNULL_FOR_NULL(s->remote_user),
+               STRNULL_FOR_NULL(s->req_uri));
+    }
+
+    return rc;
+
 }
 
 static int setup_http_headers(nsapi_private_data_t * private_data,

Modified: trunk/tomcat5.5/connectors/jk/native/netscape/nsapi.dsp
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/netscape/nsapi.dsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/netscape/nsapi.dsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -168,6 +168,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\common\jk_url.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\common\jk_util.c
 # End Source File
 # Begin Source File
@@ -260,6 +264,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=..\common\jk_url.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\common\jk_util.h
 # End Source File
 # Begin Source File

Modified: trunk/tomcat5.5/connectors/jk/native/nt_service/jk_nt_service.c
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/nt_service/jk_nt_service.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/native/nt_service/jk_nt_service.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
  * Description: NT System service for Tomcat                       *
  * Author:      Gal Shachor <shachor at il.ibm.com>                           *
  *              Dave Oxley <Dave at JungleMoss.com>                           *
- * Version:     $Revision: 500880 $                                           *
+ * Version:     $Revision: 550203 $                                           *
  ***************************************************************************/
 
 #include "jk_global.h"
@@ -382,7 +382,7 @@
         if (dst >= szTrueName + sizeof(szTrueName) - 1) {
             break;
         }
-        if (!isspace(*src) && *src != '/' && *src != '\\') {
+        if (!isspace((int)(*src)) && *src != '/' && *src != '\\') {
             *(dst++) = *src;
         }
     }
@@ -956,7 +956,8 @@
             jk_map_t *init_map;
             
             if(jk_map_alloc(&init_map)) {
-                if(jk_map_read_properties(init_map, prp_file, NULL, 1, NULL)) {
+                if(jk_map_read_properties(init_map, prp_file, NULL,
+                                          JK_MAP_HANDLE_DUPLICATES, NULL)) {
                     jk_tomcat_startup_data_t data;
                     jk_pool_t p;
                     jk_pool_atom_t buf[HUGE_POOL_SIZE];

Added: trunk/tomcat5.5/connectors/jk/native/scripts/build/jk_common.m4
===================================================================
--- trunk/tomcat5.5/connectors/jk/native/scripts/build/jk_common.m4	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/native/scripts/build/jk_common.m4	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,54 @@
+dnl -------------------------------------------------------- -*- autoconf -*-
+dnl Licensed to the Apache Software Foundation (ASF) under one or more
+dnl contributor license agreements.  See the NOTICE file distributed with
+dnl this work for additional information regarding copyright ownership.
+dnl The ASF licenses this file to You under the Apache License, Version 2.0
+dnl (the "License"); you may not use this file except in compliance with
+dnl the License.  You may obtain a copy of the License at
+dnl
+dnl     http://www.apache.org/licenses/LICENSE-2.0
+dnl
+dnl Unless required by applicable law or agreed to in writing, software
+dnl distributed under the License is distributed on an "AS IS" BASIS,
+dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+dnl See the License for the specific language governing permissions and
+dnl limitations under the License.
+
+dnl
+dnl jk_common.m4: JK's general-purpose autoconf macros
+dnl Mostly taken from APR.
+dnl
+
+dnl
+dnl JK_CHECK_SIZEOF_EXTENDED(INCLUDES, TYPE [, CROSS_SIZE])
+dnl
+dnl A variant of AC_CHECK_SIZEOF which allows the checking of
+dnl sizes of non-builtin types
+dnl
+AC_DEFUN([JK_CHECK_SIZEOF_EXTENDED],
+[changequote(<<,>>)dnl
+dnl The name to #define
+define(<<AC_TYPE_NAME>>, translit(sizeof_$2, [a-z *], [A-Z_P]))dnl
+dnl The cache variable
+define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$2, [ *],[<p>]))dnl
+changequote([, ])dnl
+AC_MSG_CHECKING(size of $2)
+AC_CACHE_VAL(AC_CV_NAME,
+[AC_TRY_RUN([#include <stdio.h>
+$1
+main()
+{
+  FILE *f=fopen("conftestval","w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof($2));
+  exit(0);
+}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$3],,,
+AC_CV_NAME=$3))])dnl
+AC_MSG_RESULT($AC_CV_NAME)
+AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The size of ]$2)
+undefine([AC_TYPE_NAME])dnl
+undefine([AC_CV_NAME])dnl
+])
+
+
+

Modified: trunk/tomcat5.5/connectors/jk/tools/jkrelease.sh
===================================================================
--- trunk/tomcat5.5/connectors/jk/tools/jkrelease.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/tools/jkrelease.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -8,19 +8,66 @@
 # libtoolize, aclocal, autoheader, automake, autoconf
 # tar, zip, gzip
 # gpg
-# And any one of: w3m, elinks, links
+# And any one of: w3m, elinks, links (links2)
 
+SVNROOT="http://svn.apache.org/repos/asf"
+SVNPROJ="tomcat/connectors"
+JK_CVST="tomcat-connectors"
+
+JK_OWNER="root"
+JK_GROUP="bin"
+
+COPY_TOP="KEYS LICENSE NOTICE"
+COPY_JK="BUILD.txt native jkstatus support tools xdocs"
+COPY_BUILD="docs"
+COPY_CONF="uriworkermap.properties workers.properties workers.properties.minimal"
+
+#################### NO CHANGE BELOW THIS LINE ##############
+
+#################### FUNCTIONS ##############
+
 usage() {
-    echo "Usage:: $0 -t VERSION [-T]"
+    echo "Usage:: $0 -t VERSION [-b BRANCH | -T | -d DIR]"
     echo "        -t: version to package"
+    echo "        -b: package from branch BRANCH"
     echo "        -T: package from trunk"
+    echo "        -d: package from local directory"
 }
 
-while getopts :t:T c
+copy_files() {
+    src=$1
+    target=$2
+    list="$3"
+
+    mkdir -p $target
+    for item in $list
+    do
+        echo "Copying $item from $src ..."
+        cp -pr $src/$item $target/
+    done
+}
+
+sign_and_verify() {
+    item=$1
+    echo "Signing $item..."
+    gpg -ba $item
+    echo "Verifying signature for $item..."
+    gpg --verify $item.asc
+}
+
+#################### MAIN ##############
+
+conflict=0
+while getopts :t:b:d:T c
 do
     case $c in
     t)         tag=$OPTARG;;
-    T)         trunk=trunk;;
+    b)         branch=$OPTARG
+               conflict=$(($conflict+1));;
+    T)         trunk=trunk
+               conflict=$(($conflict+1));;
+    d)         local_dir=$OPTARG
+               conflict=$(($conflict+1));;
     \:)        usage
                exit 2;;
     \?)        usage
@@ -29,32 +76,66 @@
 done
 shift `expr $OPTIND - 1`
 
-export ANT_HOME=/usr/local/ant
-export JAVA_HOME=/usr/local/jdk1.4.2
+if [ $conflict -gt 1 ]
+then
+    usage
+    echo "Only one of the options '-b', '-T'  and '-d' is allowed."
+    exit 2
+fi
 
-SVNROOT="http://svn.apache.org/repos/asf"
-SVNPROJ="tomcat/connectors"
-JK_CVST="tomcat-connectors"
+if [ -n "$local_dir" ]
+then
+    echo "Caution: Packaging from directory!"
+    echo "Make sure the directory is committed."
+    answer="x"
+    while [ "$answer" != "y" -a "$answer" != "n" ]
+    do
+        echo "Do you want to procede? [y/n]"
+        read answer
+    done
+    if [ "$answer" != "y" ]
+    then
+        echo "Aborting."
+        exit 4
+    fi
+fi
 
-JK_OWNER="asf"
-JK_GROUP="asf"
-
-COPY_TOP="KEYS LICENSE NOTICE"
-COPY_JK="BUILD.txt native jkstatus support tools xdocs"
-COPY_CONF="uriworkermap.properties workers.properties workers.properties.minimal"
-
-#################### NO CHANGE BELOW THIS LINE ##############
-
-if [ "X$tag" = "X" ]
+if [ -z "$tag" ]
 then
     usage
     exit 2
 fi
-if [ "X$trunk" = "Xtrunk" ]
+if [ -n "$trunk" ]
 then
     JK_SVN_URL="${SVNROOT}/${SVNPROJ}/trunk"
     JK_REV=`svn info ${JK_SVN_URL} | awk '$1 == "Revision:" {print $2}'`
+    if [ -z "$JK_REV" ]
+    then
+       echo "No Revision found at '$JK_SVN_URL'"
+       exit 3
+    fi
     JK_DIST=${JK_CVST}-${tag}-dev-${JK_REV}-src
+elif [ -n "$branch" ]
+then
+    JK_BRANCH=`echo $branch | sed -e 's#/#__#g'`
+    JK_SVN_URL="${SVNROOT}/${SVNPROJ}/branches/$branch"
+    JK_REV=`svn info ${JK_SVN_URL} | awk '$1 == "Revision:" {print $2}'`
+    if [ -z "$JK_REV" ]
+    then
+       echo "No Revision found at '$JK_SVN_URL'"
+       exit 3
+    fi
+    JK_DIST=${JK_CVST}-${tag}-dev-${JK_BRANCH}-${JK_REV}-src
+elif [ -n "$local_dir" ]
+then
+    JK_SVN_URL="$local_dir"
+    JK_REV=`svn info ${JK_SVN_URL} | awk '$1 == "Revision:" {print $2}'`
+    if [ -z "$JK_REV" ]
+    then
+       echo "No Revision found at '$JK_SVN_URL'"
+       exit 3
+    fi
+    JK_DIST=${JK_CVST}-${tag}-dev-local-`date +%y%m%d%H%M%S`-${JK_REV}-src
 else
     JK_VER=$tag
     JK_TAG=`echo $tag | sed -e 's#^#JK_#' -e 's#\.#_#g'`
@@ -81,42 +162,11 @@
 cd ../../..
 
 # Copying things into source distribution
-srcdir=${JK_DIST}.tmp
-targetdir=${JK_DIST}
-mkdir -p ${targetdir}
-for item in ${COPY_TOP}
-do
-    echo "Copying $item from ${srcdir} ..."
-    cp -pr ${srcdir}/$item ${targetdir}/
-done
+copy_files ${JK_DIST}.tmp $JK_DIST "$COPY_TOP"
+copy_files ${JK_DIST}.tmp/jk $JK_DIST "$COPY_JK"
+copy_files ${JK_DIST}.tmp/jk/build $JK_DIST "$COPY_BUILD"
+copy_files ${JK_DIST}.tmp/jk/conf $JK_DIST/conf "$COPY_CONF"
 
-srcdir=${JK_DIST}.tmp/jk
-targetdir=${JK_DIST}
-mkdir -p ${targetdir}
-for item in ${COPY_JK}
-do
-    echo "Copying $item from ${srcdir} ..."
-    cp -pr ${srcdir}/$item ${targetdir}/
-done
-
-srcdir=${JK_DIST}.tmp/jk/build
-targetdir=${JK_DIST}
-mkdir -p ${targetdir}
-for item in docs
-do
-    echo "Copying $item from ${srcdir} ..."
-    cp -pr ${srcdir}/$item ${targetdir}/
-done
-
-srcdir=${JK_DIST}.tmp/jk/conf
-targetdir=${JK_DIST}/conf
-mkdir -p ${targetdir}
-for item in ${COPY_CONF}
-do
-    echo "Copying $item from ${srcdir} ..."
-    cp -pr ${srcdir}/$item ${targetdir}/
-done
-
 # Remove extra directories and files
 targetdir=${JK_DIST}
 rm -rf ${targetdir}/xdocs/jk2
@@ -130,8 +180,8 @@
 
 # Check for links, elinks or w3m
 W3MOPTS="-dump -cols 80 -t 4 -S -O iso-8859-1 -T text/html"
-LNKOPTS="-dump"
-ELNKOPTS="--dump --no-numbering --no-home"
+ELNKOPTS="-dump -dump-width 80 -dump-charset iso-8859-1 -no-numbering -no-references -no-home"
+LNKOPTS="-dump -width 80 -codepage iso-8859-1 -no-g -html-numbered-links 0"
 failed=true
 for tool in `echo "w3m elinks links"`
 do
@@ -160,6 +210,7 @@
         ;;
     esac
     rm -f CHANGES
+    echo "Creating the CHANGES file using '$TOOL' ..."
     ${TOOL} ../docs/miscellaneous/printer/changelog.html > CHANGES 2>/dev/null
     if [ -f CHANGES -a -s CHANGES ]
     then
@@ -175,20 +226,32 @@
 fi
 
 # Export text docs
-${TOOL} ../docs/news/printer/20070301.html >NEWS
-${TOOL} ../docs/news/printer/20060101.html >>NEWS
-${TOOL} ../docs/news/printer/20050101.html >>NEWS
-${TOOL} ../docs/news/printer/20041100.html >>NEWS
+echo "Creating the NEWS file using '$TOOL' ..."
+rm -f NEWS
+touch NEWS
+for news in `ls -r ../xdocs/news/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].xml`
+do
+  print=`echo $news | sed -e 's#xdocs/news#docs/news/printer#' -e 's#\.xml#.html#'`
+  echo "Adding $print to NEWS file ..."
+  ${TOOL} $print >>NEWS
+done
+if [ ! -s NEWS ]
+then
+  echo "Can't convert html to text (NEWS)"
+  exit 1
+fi
 
 # Generate configure et. al.
 ./buildconf.sh
 cd ../../
 
-# Pack and sign
-tar cvf ${JK_DIST}.tar --owner="${JK_OWNER}" --group="${JK_GROUP}" ${JK_DIST}
-gzip ${JK_DIST}.tar
+# Pack
+tar cfz ${JK_DIST}.tar.gz --owner="${JK_OWNER}" --group="${JK_GROUP}" ${JK_DIST}
 perl ${JK_DIST}/tools/lineends.pl --cr ${JK_DIST}
 zip -9 -r ${JK_DIST}.zip ${JK_DIST}
-# Create detatched signature
-gpg -ba ${JK_DIST}.tar.gz
-gpg -ba ${JK_DIST}.zip
+
+# Create detached signature and verify it
+archive=${JK_DIST}.tar.gz
+sign_and_verify $archive
+archive=${JK_DIST}.zip
+sign_and_verify $archive

Modified: trunk/tomcat5.5/connectors/jk/xdocs/ajp/ajpv13a.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/ajp/ajpv13a.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/ajp/ajpv13a.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -25,7 +25,7 @@
 <title>AJPv13</title>
 <author email="danmil at shore.net">danmil at shore.net</author>
 <author email="jfrederic.clere at fujitsu-siemens.com">Jean-Frederic Clere</author>
-<date>$Date: 2006-12-03 05:55:56 -0700 (Sun, 03 Dec 2006) $</date>
+<date>$Date: 2007-06-09 22:38:06 +0200 (Sat, 09 Jun 2007) $</date>
 </properties>
 <body>
 <section name="Intro">
@@ -179,7 +179,9 @@
   which the servlet container is sending back -- with the terminating \0
   character, the C code can pass around references into a single buffer,
   without copying.  If the \0 was missing, the C code would have to copy
-  things out in order to get its notion of a string.</dd>
+  things out in order to get its notion of a string. Note a size of -1
+  (65535) indicates a null string and no data follow the length in this
+  case.</dd>
 </dl>
 </p>
 
@@ -526,6 +528,8 @@
   <tr><td>?ssl_session</td><td>0x09</td><td></td></tr>
   <tr><td>?req_attribute</td><td>0x0A</td><td>Name (the name of the attribut follows)</td></tr>
   <tr><td>?ssl_key_size</td><td>0x0B</td><td></td></tr>
+  <tr><td>?secret</td><td>0x0C</td><td></td></tr>
+  <tr><td>?stored_method</td><td>0x0D</td><td></td></tr>
   <tr><td>are_done</td><td>0xFF</td><td>request_terminator</td></tr>
 </table>
 

Modified: trunk/tomcat5.5/connectors/jk/xdocs/ajp/project.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/ajp/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/ajp/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,6 +24,7 @@
     <menu name="Generic HowTo">
         <item name="For the impatient"          href="../generic_howto/quick.html"/>
         <item name="All about workers"          href="../generic_howto/workers.html"/>
+        <item name="Timeouts"                   href="../generic_howto/timeouts.html"/>
         <item name="Load Balancing"             href="../generic_howto/loadbalancers.html"/>
     </menu>
 
@@ -49,6 +50,7 @@
     </menu>
 
     <menu name="News">
+        <item name="2007"                       href="../news/20070301.html"/>
         <item name="2006"                       href="../news/20060101.html"/>
         <item name="2005"                       href="../news/20050101.html"/>
         <item name="2004"                       href="../news/20041100.html"/>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/loadbalancers.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/loadbalancers.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/loadbalancers.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,8 +23,8 @@
 </copyright>
 <properties>
 <title>LoadBalancer HowTo</title>
-<author email="mturk at apache.org">Mladen Tur</author>
-<date>$Date: 2006-12-06 07:20:35 -0700 (Wed, 06 Dec 2006) $</date>
+<author email="mturk at apache.org">Mladen Turk</author>
+<date>$Date: 2007-07-25 08:06:20 -0600 (Wed, 25 Jul 2007) $</date>
 </properties>
 <body>
 <section name="Introduction"> 
@@ -66,6 +66,14 @@
 
 <p>
 The overall result is that workers managed by the same lb worker are load-balanced (based on their lbfactor and current user session) and also fall-backed so a single Tomcat process death will not "kill" the entire site.
+</p>
+<warn>
+If you want to use session stickyness, you must set different jvmRoute attributes
+in the Engine element in Tomcat's server.xml. Furthermore the names of the workers
+which are managed by the balancer have to be equal to the jvmRoute of the Tomcat
+instance they connect with.
+</warn>
+<p>
 The following table specifies some properties that the lb worker can accept:
 <ul>
 <li><b>balance_workers</b> is a comma separated list of workers that the load balancer need to manage. 

Modified: trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/project.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,6 +24,7 @@
     <menu name="Generic HowTo">
         <item name="For the impatient"          href="../generic_howto/quick.html"/>
         <item name="All about workers"          href="../generic_howto/workers.html"/>
+        <item name="Timeouts"                   href="../generic_howto/timeouts.html"/>
         <item name="Load Balancing"             href="../generic_howto/loadbalancers.html"/>
     </menu>
 
@@ -49,6 +50,7 @@
     </menu>
 
     <menu name="News">
+        <item name="2007"                       href="../news/20070301.html"/>
         <item name="2006"                       href="../news/20060101.html"/>
         <item name="2005"                       href="../news/20050101.html"/>
         <item name="2004"                       href="../news/20041100.html"/>

Added: trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/timeouts.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/timeouts.xml	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk/xdocs/generic_howto/timeouts.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE document [
+  <!ENTITY project SYSTEM "project.xml">
+]>
+<document url="timeouts.html">
+
+  &project;
+<copyright>
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+ 
+       http://www.apache.org/licenses/LICENSE-2.0
+ 
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+</copyright>
+<properties>
+<title>Timeouts HowTo</title>
+<author email="rjung at apache.org">Rainer Jung</author>
+<date>$Date: 2007-07-26 10:03:52 -0600 (Thu, 26 Jul 2007) $</date>
+</properties>
+<body>
+<section name="Introduction"> 
+<br/>
+<p>Setting communication timeouts is very important to improve the
+communication process. They help to detect problems and stabilize
+a distributed system. JK can use several different timeout types, which
+can be individually configured. For historical reasons, all of them are
+disabled by default. This HowTo explains their use and gives
+hints how to find appropriate values.
+</p>
+<p>All timeouts can be configured in the workers.properties file.
+For a complete reference of all worker configuration
+items, please consult the worker <a href="../reference/workers.html">reference</a>.
+This page assumes, that you are using at least version 1.2.16 of JK.
+Dependencies on newer versions will be mentioned where necessary.
+</p>
+<warn>
+Do not set timeouts to extreme values. Very small timeouts will likely
+be counterproductive.
+</warn>
+<warn>
+Long Garbage Collection pauses on the backend do not make a good
+fit with some timeouts. Try to optimize your Java memory and GC settings.
+</warn>
+</section>
+
+<section name="JK timeout attributes">
+<br/>
+<subsection name="CPing/CPong">
+<p>
+CPing/CPong is our notion for using small test packets to check the
+status of backend connections. JK can use such test packets directly after establishing
+a new backend connection and also directly before each request gets send to a backend.
+The maximum waiting time for a CPong answer to a CPing can be configured.
+</p>
+<p>
+The test packets will be answered by the backend very fast with a minimal amount of
+needed processing resources. A positive answer tells us, that the backend can be reached
+and is actively processing requests. It does not detect, if some context is deployed
+and working. The benefit of CPing/CPong is a fast detection of a communication
+problem with the backend. The downside is a slightly increased laterncy.
+</p>
+<p>
+The worker attribute <b>connect_timeout</b> sets the wait timeout for CPong during
+connection establishment. By default the value is "0", which disables CPing/CPong during
+connection establishment. Since JK usually uses persistent connections, opening new connections
+is a rare event. We therefore recommend using <b>connect_timeout</b>. Its value is given
+in milliseconds. Depending on your network latency and stability, good values often
+are between 5000 and 15000 milliseconds. Remember: don't use extremely small values.
+</p>
+<p>
+The worker attribute <b>prepost_timeout</b> sets the wait timeout for CPong before
+request forwarding. By default the value is "0", which disables CPing/CPong before
+request forwarding. Activating this type of CPing/CPong adds a small latency to each
+request. Usually this is small enough and the benefit of CPing/CPong is more important.
+In general we also recommend using <b>prepost_timeout</b>. Its value is given
+in milliseconds. Depending on your network latency and stability, good values often
+are between 5000 and 10000 milliseconds. Remember: don't use extremely small values.
+</p>
+</subsection>
+
+<subsection name="Low-Level TCP Timeouts">
+<p>
+Some platforms allow to set timeouts for all operations on TCP sockets.
+This is available for Linux and Windows, other patforms do not support this,
+e.g. Solaris. If your platform supports TCP send and receive timeouts,
+you can set them using the worker attribute <b>socket_timeout</b>.
+You can not set the two wimeouts to different values.
+</p>
+<p>
+JK will accept this attribute even if your platform does not support
+socket timeouts. In this case setting the attribute will have no effect.
+By default the value is "0" and the timeout is disabled.
+You can set the attribute to some seconds value (not: milliseconds).
+JK will then set the send and the receive timeouts of the backend
+connections to this value. The timeout is low-level, it is
+used for each read and write operation on the socket individually.
+</p>
+<p>
+Using this attribute will make JK react faster to some types of network problems.
+Unfortunately socket timeouts have negative side effects, because for most
+platforms, there is no good way to recover from such a timeout, once it fired.
+For JK there is no way to decide, if this timeout fired because of real network
+problems, or only because it didn't receive an answer packet from a backend in time.
+So remember: don't use extremely small values.
+</p>
+</subsection>
+
+<subsection name="Connection Pools and Idle Timeouts">
+<p>
+JK handles backend connections in a connection pool per web server process.
+The connections are used in a persistent mode. After a request completed
+successfully we keep the connection open and wait for the next
+request to forward. The connection pool is able to grow according
+to the number of threads that want to forward requests in parallel.
+</p>
+<p>
+Most applications have a varying load depending on the hour of the day
+or the day of the month. Other reasons for a growing connection pool
+would be temporary slowness of backends, leading to an increasing
+congestion of the frontends like web servers. Many backends use a dedicated
+thread for each incoming connection they handle. So usually one wants the
+connection pool to shrink, if the load diminishes.
+</p>
+<p>
+JK allows connections in the pool to get closed after some idle time.
+This maximum idle time can be configured with the attribute
+<b>connection_pool_timeout</b> which is given in units of seconds.
+The default value is "0", which disables closing idle connections.
+</p>
+<p>
+We generally recommend values around 10 minutes, so setting
+<b>connection_pool_timeout</b> to 600 (seconds). If you use this attribute,
+please also set the attribute <b>connectionTimeout</b> in the AJP
+Connector element of your Tomcat server.xml configuration file to
+an analogous value. <b>Caution</b>: connectionTimeout is in milliseconds.
+So if you set JK connection_pool_timeout to 600, you should set Tomcat
+connectionTimeout to 600000.
+</p>
+<p>
+JK connections do not get closed immediately after the timeout passed.
+Instead there is an automatic internal maintenance task
+running every 60 seconds, that checks the idle status of all connections.
+The 60 seconds interval
+can be adjusted with the global attribute worker.maintain. We do not
+recommend to change this value, because it has a lot of side effects.
+The maintenance task only runs, if requests get processed. So if your web
+server has processes that do not receive any requests for a long
+time, there is no way to close the idle connections in its pool.
+</p>
+<p>
+The maximum connection pool size can be configured with the
+attribute <b>connection_pool_size</b>. We generally do not recommend
+to use this attribute in combination with Apache httpd. For
+Apache httpd we automatically detect the number of threads per
+process and set the maximum pool size to this value. For IIS we use
+a default value of 250, for the Sun Web Server the default is "1".
+We recommend adjusting this value for IIS and the Sun Web Server
+to the number of requests one web server process should
+be able to send to a backend in parallel.
+</p>
+<p>
+The JK attribute <b>connection_pool_minsize</b> defines,
+how many idle connections remain when the pool gets shrinked.
+By default this is half of the maximum pool size.
+</p>
+</subsection>
+
+<subsection name="Firewall Connection Dropping">
+<p>
+One particular problem with idle connections comes from firewalls, that
+are often deployed between the web server layer and the backend.
+Depending on their configuration, they will silently drop
+connections from their status table if they are idle for to long.
+</p>
+<p>
+From the point of view of JK and of the web server, the other side
+simply doesn't answer any traffic. Since TCP is a reliable protocol
+it detects the missing TCP ACKs and tries to resend the packets for
+a relatively long time, typically several minutes.
+</p>
+<p>
+Many firewalls will allow connection closing, even if they dropped
+the connection for normal traffic. Therefore you should always use
+<a href="#Connection Pools and Idle Timeouts">connection_pool_timeout and
+connection_pool_minsize</a> on the JK side
+and connectionTimeout on the Tomcat side.
+</p>
+<p>
+Furthermore using the boolean attribute <b>socket_keepalive</b> you can
+set a standard socket option, that automatically sends TCP keepalive packets
+after some idle time on each connection. By default this is set to "False".
+If you suspect idle connection drops by firewalls you should set this to
+"True".
+</p>
+<p>
+Unfortunately the default intervals and algorithms for these packets
+are platform specific. You might need to inspect TCP tuning options for
+your platform on how to control TCP keepalive.
+Often the default intervals are much longer than the firewall timeouts
+for idle connections. Nevertheless we recommend talking to your firewall
+administration and your platform administration in order to make them agree
+on good configuration values for the firewall and the platform TCP tuning.
+</p>
+<p>
+In case none of our recommendations help and you are definitively having
+problems with idle connection drops, you can disable the use of persistent
+connections when using JK together with Apache httpd. For this you set
+"JkOptions +DisableReuse" in your Apache httpd configuration.
+This will have a huge negative performance impact!
+</p>
+</subsection>
+
+<subsection name="Reply Timeout">
+<p>
+JK can also use a timeout on request replies. This timeout does not
+measure the full processing time of the response. Instead it controls,
+how much time between consecutive response packets is allowed.
+</p>
+<p>
+In most cases, this is what one actually wants. Consider for example
+long running downloads. You would not be able to set an effective global
+reply timeout, because downloads could last for many minutes.
+Most applications though have limited processing time before starting
+to return the response. For those applications you could set an explicit
+reply timeout. Applications that do not harmonize with reply timeouts
+are batch type applications, data warehouse and reporting applications
+which are expected to observe long processing times.
+</p>
+<warn>
+If JK aborts waiting for a response, because a reply timeout fired,
+there is no way to stop processing on the backend. Although you free
+processing ressources in your web server, the request
+will continue to run on the backend - without any way to send back a
+result once the reply timout fired.
+</warn>
+<p>
+JK uses the worker attribute <b>reply_timeout</b> to set reply timeouts.
+The default value is "0" (timeout disabled) and you can set it to any
+millisecond value.
+</p>
+<p>
+In combination with a load balancing worker, JK will disable a member
+worker of the load balancer if a reply timeout fires. The worker will then
+no longer be used until it gets recovered during the next automatic
+maintenance task. Starting with JK 1.2.24 you can improve this behaviour using
+<b><a href="../reference/workers.html">max_reply_timeouts</a></b>. This
+attribute will allow occasional long running requests without disabling the
+worker. Only if those requests happen to often, the worker gets disabled by the
+load balancer.
+</p>
+</subsection>
+
+</section>
+
+</body>
+</document>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/index.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/index.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/index.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -29,10 +29,90 @@
 <section name="Headlines">
 <br />
 <ul>
+<li><a href="news/20070301.html#20070807.1">7 August 2007 - <b>JK-1.2.25 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.25 Stable.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.25/tomcat-connectors-1.2.25-src.tar.gz">JK 1.2.25 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.25/tomcat-connectors-1.2.25-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="news/20070301.html#20070727.1">27 July 2007 - <b>JK-1.2.24 released</b></a>
+<p><b>This release has been withdrawn.</b>
+</p>
+</li>
+<li><a href="news/20070301.html#20070518.1">18 May 2007 - <b>JK-1.2.23 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.23 Stable.
+</p>
+<p>This version addresses the security flaw:
+<br />
+<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1860"><b>CVE-2007-1860</b></a>
+A double encoded ".." in a URL can be used to access URLs on the AJP backend,
+for which no mod_jk forwarding rule exists (patch for CVE-2007-0450 was insufficient).
+</p><p>
+This version fixes the problem by using ForwardURICompatUnparsed
+as the default for the forwarding JkOption.
+You can similarly fix the problem for all previous versions of mod_jk by setting
+"JkOption ForwardURICompatUnparsed".
+If you upgrade to version 1.2.23 please ensure, that you do not have
+a different forwarding option in your existing configuration.
+We highly recommend, that you are consulting the
+<a href="reference/apache.html#Forwarding">forwarding documentation</a>,
+especially concerning the implications for interaction with mod_rewrite.
+</p><p>
+Please note that this issue only affects configurations,
+which use a prefix forwarding rule like "/myapp/*" or "/myapp/*.jsp"
+to restrict access to the context "/myapp". The issue will allow 
+malicious URLs to reach "/otherapp" or "/otherapp/*.jsp" as well.
+</p><p>
+The Tomcat Project thanks Kazu Nambo for his responsible reporting of this 
+vulnerability.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.23/tomcat-connectors-1.2.23-src.tar.gz">JK 1.2.23 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.23/tomcat-connectors-1.2.23-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
+<li><a href="news/20070301.html#20070417.1">17 April 2007 - <b>JK-1.2.22 released</b></a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.22 Stable.
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.22/tomcat-connectors-1.2.22-src.tar.gz">JK 1.2.22 release sources</a>
+ | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.22/tomcat-connectors-1.2.22-src.tar.gz.asc">PGP signature</a>
+</p>
+<p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/">binaries</a> for selected platforms.
+</p>
+</li>
 <li><a href="news/20070301.html#20070301.1">1 March 2007 - <b>JK-1.2.21 released</b></a>
 <p>The Apache Tomcat team is proud to announce the immediate availability
 of Tomcat Connectors 1.2.21 Stable.
 </p>
+<p>This version addresses the security flaw:
+<br />
+<a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0774"><b>CVE-2007-0774</b></a>
+A Long URL Stack Overflow Vulnerability exists in the URI handler for the mod_jk library.
+When parsing a long URL request, the URI worker map routine performs an
+unsafe memory copy. This results in a stack overflow condition which can
+be leveraged execute arbitrary code.
+</p><p>
+Please note this issue only affected versions 1.2.19 and 1.2.20 of the
+JK Apache Tomcat Connector and not previous versions.
+Tomcat 5.5.20 and Tomcat 4.1.34
+included a vulnerable version in their source packages.
+<strong>No </strong>other source code releases <strong> and no binary packages</strong>
+of Tomcat were affected.
+</p><p>
+The Apache Tomcat project recommends that all users who have built mod_jk from source apply the patch or upgrade to the latest level and rebuild. Providers of mod_jk-based modules in pre-compiled form will be able to determine if this vulnerability applies to their builds. That determination has no bearing on any other builds of mod_jk, and mod_jk users are urged to exercise caution and apply patches or upgrade unless they have specific instructions from the provider of their module.
+</p><p>
+The Tomcat Project thanks an anonymous researcher working with 
+TippingPoint (www.tippingpoint.com) and the Zero Day Initiative 
+(www.zerodayintiative.com) for their responsible reporting of this 
+vulnerability.
+</p>
 <p>Download the <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.21/tomcat-connectors-1.2.21-src.tar.gz">JK 1.2.21 release sources</a>
  | <a href="http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.21/tomcat-connectors-1.2.21-src.tar.gz.asc">PGP signature</a>
 </p>
@@ -110,6 +190,10 @@
 and using workers.
 </p>
 </li>
+<li><a href="generic_howto/timeouts.html"><b>Timeouts</b></a>
+<p>This page describes the possible timeout settings you can use.
+</p>
+</li>
 <li><a href="generic_howto/loadbalancers.html"><b>Load Balancing</b></a>
 <p>This page contains an introduction on load balancing with JK.
 </p>
@@ -193,12 +277,14 @@
 </p>
 
 <ul>
-<li><a href="news/2006"><b>2006</b></a>
+<li><a href="news/20070301.html"><b>2007</b></a>
 </li>
-<li><a href="news/2006"><b>2005</b></a>
+<li><a href="news/20060101.html"><b>2006</b></a>
 </li>
-<li><a href="news/2006"><b>2004</b></a>
+<li><a href="news/20050101.html"><b>2005</b></a>
 </li>
+<li><a href="news/20041100.html"><b>2004</b></a>
+</li>
 
 </ul>
 </section>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/miscellaneous/changelog.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/miscellaneous/changelog.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/miscellaneous/changelog.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -9,6 +9,7 @@
   <properties>
     <author email="mturk at apache.org">Mladen Turk</author>
     <author email="rjung at apache.org">Rainer Jung</author>
+    <author email="hgomez at apache.org">Henri Gomez</author>
     <title>Changelog</title>
   </properties>
 
@@ -22,8 +23,350 @@
   new documentation project for JK was started.
   </p>
 </section>
+<section name="Changes between 1.2.24 and 1.2.25">
+  <br />
+  <subsection name="Native">
+    <changelog>
+      <update>
+        IIS: Fix shm shutdown behaviour. (rjung)
+      </update>
+      <update>
+        General: fail_on_status used in a load balancer can optionally
+        do fail over without putting the failed worker in error state. (rjung)
+      </update>
+      <update>
+        NSAPI: Improve build description for Unix. (rjung)
+      </update>
+      <update>
+        NSAPI: Add initialization startup message containing JK version. (rjung)
+      </update>
+      <fix>
+        General: Declare static functions as static. (jim)
+      </fix>
+      <update>
+        Documentation: Clarify fail_on_status behaviour. (rjung)
+      </update>
+      <fix>
+        General: Do fail_on_status before returning the response headers. (rjung)
+      </fix>
+      <update>
+        NSAPI: Fix shm shutdown behaviour. (rjung)
+      </update>
+      <update>
+        NSAPI: Set return status even if request ended with an error. (rjung)
+      </update>
+      <update>
+        NSAPI: Allow using without shm_file on WIN32 and Netware. (rjung)
+      </update>
+      <fix>
+        NSAPI: Fix Crash of nsapi for log level debug and unset refect_unsafe. (rjung)
+      </fix>
+      <update>
+        NSAPI: Improve Solaris and Linux Makefiles for nsapi build. (rjung)
+      </update>
+      <fix>
+        Build: Improve pid_t type detection during configure on Solaris. (rjung)
+      </fix>
+      <update>
+        Build: Experimental build support for gcc on WIN32 and Netware. (fuankg)
+      </update>
+      <update>
+        Build: Makefile optimizations for Apache httpd 1.3/Netware . (fuankg)
+      </update>
+      <fix>
+        General: Fix missing flush bug introduced in 1.2.24. (rjung)
+      </fix>
+    </changelog>
+  </subsection>
+</section>
+<section name="Changes between 1.2.23 and 1.2.24">
+  <br />
+  <subsection name="Native">
+    <changelog>
+      <update>
+      Documentation: Improved workers.properties description in the
+      reference guide. (rjung)
+      </update>
+      <update>
+      Documentation: Add a HowTo about the various timeouts. rjung)
+      </update>
+      <update>
+      Logging: add milliseconds to the default timestamp format,
+      if we have gettimeofday(). (rjung)
+      </update>
+      <update>
+      Apache: add milliseconds (%Q) and microseconds (%q) as possible
+      JkLogStampFormat conversion specifiers. This does not use strftime(),
+      but needs gettimeofday(). (rjung)
+      </update>
+      <update>
+      IIS &amp; Sun: Log service failures also, if return code is negative. (rjung)
+      </update>
+      <fix>
+        <bug>42849</bug>: Abort startup of Apache httpd 1.3 in case
+        mod_jk initialization failed. We already do the same
+        for Apache httpd 2.x. (rjung)
+      </fix>
+      <fix>
+        <bug>42849</bug>: Refuse to operate with IIS in case the
+        initialization failed. Instead requesting isapi_redirect.dll
+        500 will be returned to the user. This is as closest as it
+        can get to Apache Httpd where we refuse to start the server
+        in case of fatal initialization errors. (mturk)
+      </fix>
+      <fix>
+      Load Balancer: Fix a deadlock in lb worker, which was exposed on Solaris
+      for threaded Apache MPMs. (rjung)
+      </fix>
+      <update>
+      Logging: handle LWP IDs as 32 Bit unsigned. Try to make
+      it work, although pthread IDs are opaque. (rjung)
+      </update>
+      <update>
+      JkStatus: Added manipulation of max_reply_timeouts. (rjung)
+      </update>
+      <update>
+      LB, Status: Add feature max_reply_timeouts, to make lb tolerant against
+      occasional long running requests. (rjung)
+      </update>
+      <update>
+      JkStatus: Added OK/IDLE as the successor of N/A. (rjung)
+      </update>
+      <update>
+      Status worker: Renamed runtime states. All states have a major
+      state (OK or ERR) and a substate. Changed the name N/A to OK/IDLE.
+      Added docs about the meaning of the states to the status worker
+      page in the reference guide.
+      No new states have been added to code. (rjung)
+      </update>
+      <update>
+      Common: Add recovery options for recovering idempotent http methods
+      HEAD and GET. (rjung)
+      </update>
+      <fix>
+      Correct documentation for worker attributes retries and
+      recovery_options. (rjung)
+      </fix>
+      <fix>
+      Make writing log lines and line endings more atomic. (rjung)
+      </fix>
+      <update>
+      Common: Refactored and unified jk_map_read_prop* and jk_map_load_prop*
+      for all use cases. (rjung)
+      </update>
+      <update>
+      Common/Apache/IIS/Netscape: Add an option to check decoded URLs for
+      potentially malicious constructions. (rjung)
+      </update>
+      <update>
+      IIS: Document auth_complete and uri_select. (rjung)
+      </update>
+      <update>
+      Apache/IIS/Netscape: Change the default forwarding encoding to the new
+      proxy method. (jfclere, rjung)
+      </update>
+      <update>
+      Common: Optionally reencode URIs before forwarding to the backend.
+      Based on the URI reencoding done bei httpd mod_proxy. (jfclere, rjung)
+      </update>
+      <update>
+      Common: auto-detect correct print format for pid_t.
+      This fixes at least compiler warnings on Solaris. (rjung)
+      </update>
+      <fix>
+        <bug>42608</bug>: Handle Content-length as unsigned 64Bit
+        to allow for huge up- and downloads. (rjung)
+      </fix>
+      <update>
+      Apache: Add forwarding uri to debug log. (rjung)
+      </update>
+      <update>
+      Docs: Clarify relation between worker names and jvmRoute for load balancing. (rjung)
+      </update>
+      <fix>
+      Use initial zero timeout for jk_is_socket_connected. The resulting
+      detection is the same but offers a huge performance increase
+      with mod_jk. In most cases the Operating System does not favor
+      the 1 microsecond timeout, but it rather rounds that up to much
+      higher value (frequency of interrupt timer which on most systems
+      defaults to 100Hz).
+      Patch provided by David McLaughlin. (mturk)
+      </fix>
+      <update>
+      NSAPI: Check correct log file and shm file configuration during startup. (rjung)
+      </update>
+      <fix>
+      NSAPI: Add support for the general options concerning retries, flushing
+      and connection persistance. (rjung)
+      </fix>
+      <fix>
+      NSAPI: fix crashes due to use of mount attribute in workers.properties.
+      Changed initialization order. (rjung)
+      </fix>
+      <fix>
+      Improved handling of libtool and discrepancies between CC env variable and
+      CC used during apache build by configure script. (rjung)
+      </fix>
+      <fix>
+      Always build with thread support, unless flag --enable-prefork
+      is set during for configure. (rjung)
+      </fix>
+      <update>
+      Use snprintf/vsnprintf from ap_snprintf.c for platforms other
+      than Windows, which might lack snprintf/vsnprintf implementations
+      when NOT build for Apache httpd 2.x/APR (e.g. Sub Web Server)
+      or without using configure. (fuankg)
+      </update>
+      <update>
+      Imported ap_snprintf() from Apache 1.3. (fuankg)
+      </update>
+      <fix>
+      Fix incorrect log object cleanup during statup,
+      leading to crashes at least on iSeries. (rjung)
+      </fix>
+      <update>
+      Add jk_stat() and jk_file_exists() as wrapper functions.
+      i5/OS V5R4 expects filename in ASCII for fopen but requires them
+      in EBCDIC for stat(). (hgomez)
+      </update>
+      <update>
+      i5/OS (AS/400) V5R4 port where Apache 2.0 modules should now use UTF8. (hgomez)
+      </update>
+      <update>
+      Docs: Add comments on i5/OS build for V5R4 and previous releases. (hgomez)
+      </update>
+    </changelog>
+  </subsection>
+</section>
+<section name="Changes between 1.2.22 and 1.2.23">
+  <br />
+  <subsection name="Native">
+    <changelog>
+      <update>
+      Change the default value of JkOptions to ForwardURICompatUnparsed.
+      The old default value was ForwardURICompat.
+      This should make URL interpretation between Apache httpd and
+      Tomcat consistent (prevent double decoding problems). (rjung)
+      </update>
+    </changelog>
+  </subsection>
+</section>
 <section name="Changes between 1.2.21 and 1.2.22">
   <br />
+  <subsection name="Native">
+    <changelog>
+      <fix>
+      Refactor line endings logging to make it correct for all
+      platforms and webservers. (mturk)
+      </fix>
+      <update>
+      Added command line windows make files. (mturk)
+      </update>
+      <update>
+      Allow fail_on_status directive to be multi line. (mturk)
+      </update>
+      <fix>
+        <bug>42076</bug>: Fix name of new option from ForwardCertChain to
+        ForwardSSLCertChain as documented. (rjung)
+      </fix>
+      <fix>
+      Docs: Fix a couple of typos, change format of a few tables,
+      fix links to news pages. (rjung)
+      </fix>
+      <fix>
+      Fix correct URL for TC 6 examples in new IIS rewrite.properties
+      configuration example file. (rjung)
+      </fix>
+      <fix>
+      Add svn properties to several files. (rjung)
+      </fix>
+      <update>
+      Add TC 6 examples to uriworkermap.properties in config examples. (rjung)
+      </update>
+      <update>
+      Allow multiple status codes for fail_on_status directive.
+      The status codes can be delimited by space or comma characters. (mturk)
+      </update>
+      <update>
+        IIS. Added pcre like regular expressions for url rewrite rules. (mturk)
+      </update>
+      <fix>
+        <bug>41922</bug>: Apache 1.3. Enable JkEnvVar. (mturk)
+      </fix>
+      <update>
+        Apache. Add --enable-flock configure parameter for explicit
+        compilation of faster flock() system calls for OS supporting
+        those calls. By default the fcntl system call for locking will
+        be used that is a little bit slower but it can work on NFS
+        mounted volumes as well. (mturk)
+      </update>
+      <fix>
+        <bug>41562</bug>: Add Debug logging for read from client in ISAPI Redirector.
+         Contributed by Tim Whittington. (mturk)
+      </fix>
+      <update>
+        Apache. Add ForwardSSLCertChain JkOption.
+        Contributed by Patrik Schnellmann. (mturk)
+      </update>
+      <fix>
+        IIS. Do not forbid access to web-inf or meta-inf if there is
+        no mapped worker. This allows to have resource with those names
+        that are outside mapped contexts. (mturk)
+      </fix>
+      <update>
+        Apache. Use process id for creating shared memory name and delete shared
+        memory and shared memory lock files on exit. (mturk)
+      </update>
+      <fix>
+        IIS. Fix Keep-Alive regression introduced in 1.2.21. (mturk)
+      </fix>
+      <update>
+      Delete unused check for empty init_map during startup. (rjung)
+      </update>
+      <fix>
+        <bug>41770</bug>: Fix startup error if no JkWorkersFile is used. (rjung)
+      </fix>
+      <update>
+      Use JK_TRUE/JK_FALSE instead of OK/!OK as return values in init_jk(). (rjung)
+      </update>
+      <update>
+      Minor adjustments to apache startup log messages (when to use STDERR, remove
+      deprecated NOERRNO flag, shm warning and warnings for usage of default files). (rjung)
+      </update>
+      <update>
+      Replace APR precompiler directive by httpd mpm_query to detect MPM threading.
+      Add a debug log message about auto-detected pool size. (rjung)
+      </update>
+      <fix>
+        Make MMN check easier to understand and a little more precise
+        (for new ap_get_server_banner()/ap_get_server_description()).
+        We use the new API only for Apache httpd 2.3. This way our binaries are not
+        tightly coupled to a minor 2.0 version, and we don't use ap_get_server_banner()
+        any way. (rjung)
+      </fix>
+      <fix>
+        Use the full description string ap_get_server_description() instead of
+        the truncated info from ap_get_server_banner(), because this info gets used internally
+        (status worker display and ajp14 backend communication) and is not send back to the
+        normal user. (rjung)
+      </fix>
+      <fix>
+        <bug>41757</bug>: Document the "--enable-prefork" flag of configure. (rjung)
+      </fix>
+      <update>
+      Enhance log messages for failures when parsing attribute maps. (rjung)
+      </update>
+      <fix>
+        Correct log message during worker initialization, in case remote host could not be
+        resolved. We logged the default host name "localhost" instead of the configured one. (rjung)
+      </fix>
+      <fix>
+        <bug>41770</bug>: Fix the second part of the bug: local_worker and local_worker_only
+        is missing from the list of deprecated attributes (and not supported either), so prevents
+        the web server from startup. (rjung)
+      </fix>
+    </changelog>
+  </subsection>
 </section>
 <section name="Changes between 1.2.20 and 1.2.21">
   <br />
@@ -31,9 +374,9 @@
     <changelog>
       <fix>
         <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0774"><b>CVE-2007-0774</b></a>
-        : Fix a buffer overflow in map_uri_to_worker().
-        URL longer that 4095 were crashing mod_jk.
-        This could have allow different kind of attacks. Reported by ZDI.
+        : A denial of service and critical remote code execution vulnerability.
+        Caused by buffer overflow in map_uri_to_worker() when URL were longer that 4095 bytes.
+        Reported by ZDI (www.zerodayintiative.com).
         Please note this issue only affected versions 1.2.19 and 1.2.20 of the
         Apache Tomcat JK Web Server Connector and not previous versions.
         Tomcat 5.5.20 and Tomcat 4.1.34
@@ -375,7 +718,7 @@
       LB: Cleanup of Mladens forced recovery. (rjung)
       </fix>
       <fix>
-      LB: Do not change lb_value for recovering workers to max, if 
+      LB: Do not change lb_value for recovering workers to max, if
       we are using BUSYNESS method. (rjung)
       </fix>
       <fix>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/miscellaneous/project.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/miscellaneous/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/miscellaneous/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,6 +24,7 @@
     <menu name="Generic HowTo">
         <item name="For the impatient"          href="../generic_howto/quick.html"/>
         <item name="All about workers"          href="../generic_howto/workers.html"/>
+        <item name="Timeouts"                   href="../generic_howto/timeouts.html"/>
         <item name="Load Balancing"             href="../generic_howto/loadbalancers.html"/>
     </menu>
 
@@ -49,6 +50,7 @@
     </menu>
 
     <menu name="News">
+        <item name="2007"                       href="../news/20070301.html"/>
         <item name="2006"                       href="../news/20060101.html"/>
         <item name="2005"                       href="../news/20050101.html"/>
         <item name="2004"                       href="../news/20041100.html"/>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/news/20041100.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/news/20041100.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/news/20041100.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,6 +23,7 @@
 -->
 <a name="20041224.1"> 
 <h3>17 December - JK-1.2.8 released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.8.
 </p>
@@ -33,10 +34,10 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 <a name="20041218.1"> 
 <h3>17 December - JK-1.2.8-rc-1 released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.8-rc-1 (Relase Canditate 1).
 </p>
@@ -51,10 +52,10 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 <a name="20041213.1"> 
 <h3>13 December - JK-1.2.7-beta-3 released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.7-beta-3. The release contains a fix to few configuration
 problems detected with JK-1.2.7-beta-2 version.
@@ -70,10 +71,10 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 <a name="20041207.1"> 
 <h3>7 December - JK-1.2.7-beta-2 released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.7-beta-2. The release contains a fix to few compilation
 problems detected with JK-1.2.7-beta version. This release also introduces a new
@@ -90,11 +91,11 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 
 <a name="20041130.1"> 
 <h3>30 November - JK-1.2.7-beta released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.7-beta. The release contains a significant number
 of bug fixes and new features. 
@@ -115,12 +116,12 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 
 <hr size="1" noshade="noshade" />
 
 <a name="20041115.1"> 
 <h3>15 November - JK2 is officially unsupported</h3>
+</a> 
 <p>JK2 has been put in maintainer mode and no further development will take place.
 The reason for shutting down JK2 development was the lack of developers interest.
 Other reason was lack of users interest in adopting JK2, caused by configuration
@@ -137,7 +138,6 @@
 <p>JK will be fully supported for all other web servers. The next JK release is
 planned for the end of November. Lots of code from JK2 has been ported to JK
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 
 </section>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/news/20050101.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/news/20050101.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/news/20050101.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,6 +23,7 @@
 -->
 <a name="20051108.1"> 
 <h3>8 November - JK-1.2.15 released</h3>
+</a>
 <p>The Apache Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.15. This is Stable release and it contains
 few bug fixes found in 1.2.14 version.
@@ -34,11 +35,11 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 
 <a name="20050713.1"> 
 <h3>13 July - JK-1.2.14 released</h3>
+</a>
 <p>The Apache Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.14. This is Stable release and it contains
 few bug fixes found in 1.2.13 version.
@@ -50,10 +51,10 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 <a name="20050516.1"> 
 <h3>7 May - JK-1.2.13 released</h3>
+</a>
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.13. This is development release and contains
 few bug fixes found in 1.2.12 version.
@@ -65,10 +66,10 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 <a name="20050507.1"> 
 <h3>7 May - JK-1.2.12 released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.12 The release contains a significant number
 of bug fixes and new features. 
@@ -84,10 +85,10 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 <a name="20050429.1"> 
 <h3>29 April - JK-1.2.11 released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.11 The release contains a significant number
 of bug fixes and new features. 
@@ -102,10 +103,10 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 <a name="20050330.1"> 
 <h3>30 March - JK-1.2.10 released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.10 The release contains a significant number
 of bug fixes and new features. 
@@ -126,10 +127,10 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 <a name="20050318.1"> 
 <h3>18 March - JK-1.2.9-beta released</h3>
+</a> 
 <p>The Apache Jakarta Tomcat team is proud to announce the immediate availability
 of Jakarta Tomcat Connectors 1.2.9-beta. The release contains a significant number
 of bug fixes and new features. 
@@ -150,7 +151,6 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a> 
 <hr size="1" noshade="noshade" />
 
 </section>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/news/20060101.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/news/20060101.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/news/20060101.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,6 +17,7 @@
 <br />
 <a name="20061210.1"> 
 <h3>10 December - JK-1.2.20 released</h3>
+</a>
 <p>The Apache Tomcat team is proud to announce the immediate availability
 of Tomcat Connectors 1.2.20. This is a stable release adding new features
 and a few bug fixes to version 1.2.19.
@@ -29,11 +30,11 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 
 <a name="20060917.1"> 
 <h3>17 September - JK-1.2.19 released</h3>
+</a>
 <p>The Apache Tomcat team is proud to announce the immediate availability
 of Tomcat Connectors 1.2.19. This is a stable release adding some features
 and a few bug fixes to version 1.2.18.
@@ -46,11 +47,11 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 
 <a name="20060720.1"> 
 <h3>13 July - JK-1.2.18 released</h3>
+</a>
 <p>The Apache Tomcat team is proud to announce the immediate availability
 of Tomcat Connectors 1.2.18. This is a stable release adding
 a few bug fixes to the not released 1.2.17 version.
@@ -62,22 +63,22 @@
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 
 <a name="20060708.1"> 
 <h3>JK-1.2.17 not released</h3>
+</a>
 <p>Version 1.2.17 of Tomcat Connectors 1.2.17 has not been released 
 due to a bug in the types chosen for socket arguments.
 </p>
 <p>
  Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 
 <a name="20060606.1"> 
 <h3>JK-1.2.16 not released</h3>
+</a>
 <p>Version 1.2.16 of Tomcat Connectors 1.2.16 has not been released 
 due to a bug in the jk status worker. This version adds some features
 and a few bug fixes to the 1.2.15 version. Furthermore some worker attributes
@@ -86,7 +87,6 @@
 <p>
  Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 
 </section>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/news/20070301.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/news/20070301.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/news/20070301.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -15,20 +15,71 @@
 
 <section name="2007 News &amp; Status">
 <br />
+<a name="20070807.1"> 
+<h3>7 August - JK-1.2.25 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.25. This is a stable release adding new features
+and a few bug fixes.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%206">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade="noshade" />
+<a name="20070727.1"> 
+<h3>27 July - JK-1.2.24 released</h3>
+</a>
+<p><b>This release has been withdrawn.</b>
+</p>
+<hr size="1" noshade="noshade" />
+<a name="20070518.1"> 
+<h3>18 May - JK-1.2.23 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.23. This is a stable release adding new features
+and a few bug fixes to version 1.2.23.
+</p><p>
+It fixes an <a href="http://tomcat.apache.org/security-jk.html">Important vulnerability</a>.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade="noshade" />
+<a name="20070417.1"> 
+<h3>17 April - JK-1.2.22 released</h3>
+</a>
+<p>The Apache Tomcat team is proud to announce the immediate availability
+of Tomcat Connectors 1.2.22. This is a stable release adding new features
+and a few bug fixes to version 1.2.22.
+</p><p>
+ Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
+</p>
+<p>If you find any bugs while using this release, please fill in the
+<a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
+Bug Report. When entering bug select <b>Native:JK</b> Component.
+</p>
+<hr size="1" noshade="noshade" />
 <a name="20070301.1"> 
 <h3>1 March - JK-1.2.21 released</h3>
+</a>
 <p>The Apache Tomcat team is proud to announce the immediate availability
 of Tomcat Connectors 1.2.21. This is a stable release adding new features
 and a few bug fixes to version 1.2.20.
-</p>
-<p>
+</p><p>
+It fixes a <a href="http://tomcat.apache.org/security-jk.html">Critical vulnerability</a> introduced in version 1.2.19
+</p><p>
  Please see the <a href="../miscellaneous/changelog.html">ChangeLog</a> for a full list of changes.
 </p>
 <p>If you find any bugs while using this release, please fill in the
 <a href="http://issues.apache.org/bugzilla/enter_bug.cgi?product=Tomcat%205">Bugzilla</a>
 Bug Report. When entering bug select <b>Native:JK</b> Component.
 </p>
-</a>
 <hr size="1" noshade="noshade" />
 
 </section>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/news/project.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/news/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/news/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,6 +24,7 @@
     <menu name="Generic HowTo">
         <item name="For the impatient"          href="../generic_howto/quick.html"/>
         <item name="All about workers"          href="../generic_howto/workers.html"/>
+        <item name="Timeouts"                   href="../generic_howto/timeouts.html"/>
         <item name="Load Balancing"             href="../generic_howto/loadbalancers.html"/>
     </menu>
 
@@ -49,6 +50,7 @@
     </menu>
 
     <menu name="News">
+        <item name="2007"                       href="../news/20070301.html"/>
         <item name="2006"                       href="../news/20060101.html"/>
         <item name="2005"                       href="../news/20050101.html"/>
         <item name="2004"                       href="../news/20041100.html"/>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/project.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,6 +24,7 @@
     <menu name="Generic HowTo">
         <item name="For the impatient"          href="generic_howto/quick.html"/>
         <item name="All about workers"          href="generic_howto/workers.html"/>
+        <item name="Timeouts"                   href="generic_howto/timeouts.html"/>
         <item name="Load Balancing"             href="generic_howto/loadbalancers.html"/>
     </menu>
 
@@ -49,6 +50,7 @@
     </menu>
 
     <menu name="News">
+        <item name="2007"                       href="news/20070301.html"/>
         <item name="2006"                       href="news/20060101.html"/>
         <item name="2005"                       href="news/20050101.html"/>
         <item name="2004"                       href="news/20041100.html"/>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/reference/apache.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/reference/apache.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/reference/apache.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -13,7 +13,8 @@
 
 <body>
 
-<section name="Configuration Directives"> <p>
+<section name="Configuration Directives">
+<p>
 Most of the directives are allowed once in the global part of the Apache httpd
 configuration and once in every &lt;VirtualHost&gt; elements. Exceptions from this rule are
 explicitely listed in the table below.
@@ -24,6 +25,14 @@
 Exceptions from this rule are
 again explicitely listed in the table below.
 </p>
+<p><b>Waring: If Apache httpd and Tomcat are configured to serve content from
+the same filing system location then care must be taken to ensure that httpd is
+not able to serve inappropriate content such as the contents of the WEB-INF
+directory or JSP source code.</b> This could occur if the httpd DocumentRoot
+overlaps with a Tomcat Host's appBase or the docBase of any Context. It could
+also occur when using the httpd Alias directive with a Tomcat Host's appBase or
+the docBase of any Context.
+</p>
 <p>
 Here are the all directives supported by Apache:
 </p>
@@ -114,8 +123,12 @@
 </p></attribute>
 <attribute name="JkAutoAlias" required="false"><p>
 Automatically Alias webapp context directories into the Apache
-document space. 
+document space.
 <br/>
+Care should be taken to ensure that only static content is served via httpd as a
+result of using this directive. Any static content served by httpd will bypass any
+security constraints defined in the application's web.xml.
+<br/>
 For inheritance rules, see: JkMountCopy.
 <br/>
 There is no default value.
@@ -157,10 +170,21 @@
 The default value is info.
 </p></attribute>
 <attribute name="JkLogStampFormat" required="false"><p>
-The Tomcat Connector module <b>date</b> log format, follow strftime syntax.
+The Tomcat Connector module <b>date</b> log format, using an
+extended strftime syntax.
 This format will be used for the time stamps in the JkLogFile.
+The maximum length of the format is 63 characters.
 <br/>
-The default value is "[%a %b %d %H:%M:%S %Y] ".
+Starting with version 1.2.24 of mod_jk you can also use %Q
+for adding milliseconds to the log and %q for microseconds. 
+These conversion specifiers are an extension to strftime.
+They will only work on platforms with a gettimeofday() function.
+You can use %Q and %q only once in the pattern and also not both
+together in the same pattern.
+<br/>
+The default value is "[%a %b %d %H:%M:%S %Y] " and beginning
+with version 1.2.24 on platforms with a gettimeofday()
+function it is "[%a %b %d %H:%M:%S.%Q %Y] ".
 </p></attribute>
 <attribute name="JkRequestLogFormat" required="false"><p>
 Request log format string. See detailed description below.
@@ -188,6 +212,11 @@
 <br/>
 The default value is "SSL_CIPHER".
 </p></attribute>
+<attribute name="JkCERTCHAINPrefix" required="false"><p>
+Name of the Apache environment (prefix) that contains SSL client chain certificates.
+<br/>
+The default value is "SSL_CLIENT_CERT_CHAIN_".
+</p></attribute>
 <attribute name="JkSESSIONIndicator" required="false"><p>
 Name of the Apache environment variable that contains SSL session.
 <br/>
@@ -204,7 +233,9 @@
 <br/>
 This directive can be used multiple times per virtual server.
 <br/>
-The default value is "ForwardURICompat".
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
 </p></attribute>
 <attribute name="JkEnvVar" required="false"><p>
 Adds a name and an optional default value of environment variable
@@ -410,10 +441,14 @@
 </p>
 
 <p>
-The three following options <b>+ForwardURIxxx</b> are mutually exclusive.
+The four following options <b>+ForwardURIxxx</b> are mutually exclusive.
 Exactly one of them is required, a negative sign prefix is not allowed with them.
-By default, the option ForwardURICompat is turned on.
-You can turn this off by switching on one of the other two.
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+You can turn the default off by switching on one of the other two options.
+You should leave this at it's default value, unless you have a very good
+reason to change it.
 <br/>
 <br/>
 </p>
@@ -430,12 +465,13 @@
 </p>
 
 <p>
-JkOptions <b>ForwardURICompat</b>, you ask mod_jk to send the URI to Tomcat normally, 
-which is less spec compliant but mod_rewrite compatible, 
-use it for compatibility with Tomcat 3.2.x engines (on by default).
+Using JkOptions <b>ForwardURIProxy</b>, the forwarded URI
+will be partially reencoded after processing inside Apache httpd and
+before forwarding to Tomcat. This will be compatible with local
+URL manipulation by mod_rewrite and with URL encoded session ids.
 
-<source>  
-  JkOptions     +ForwardURICompat
+<source>
+  JkOptions     +ForwardURIProxy
 </source>
 
 <br/>
@@ -443,10 +479,13 @@
 </p>
 
 <p>
-JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI 
-is unparsed, it's spec compliant but broke mod_rewrite.
+Using JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
+will be unparsed. It's spec compliant and secure.
+It will always forward the original request URI, so rewriting
+URIs with mod_rewrite and then forwarding the rewritten URI
+will not work.
 
-<source>  
+<source>
   JkOptions     +ForwardURICompatUnparsed
 </source>
 
@@ -455,10 +494,29 @@
 </p>
 
 <p>
-JkOptions <b>ForwardURIEscaped</b>, the forwarded URI is escaped and 
-Tomcat (since 3.3 rc2) will do the decoding part.
+Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will
+be decoded by Apache httpd. Encoded characters will be decoded and
+explicit path components like ".." will already be resolved.
+This is less spec compliant and is <b>not safe</b> if you are using
+prefix JkMount. This option will allow to rewrite URIs with
+mod_rewrite before forwarding.
 
-<source>  
+<source>
+  JkOptions     +ForwardURICompat
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will
+be the encoded form of the URI used by ForwardURICompat.
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs,
+but it will allow to rewrite URIs with mod_rewrite before forwarding.
+
+<source>
   JkOptions     +ForwardURIEscaped
 </source>
 
@@ -467,7 +525,31 @@
 </p>
 
 <p>
-JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b> 
+JkOptions <b>RejectUnsafeURI</b> will block all
+URLs, which contain percent signs '%' or backslashes '\'
+after decoding.
+<br/>
+<br/>
+</p>
+<p>
+Most web apps do not use such URLs. Using the option RejectUnsafeURI, you
+can block several well known URL encoding attacks. By default, this option
+is not set.
+</p>
+<p>
+You can also realize such a check with mod_rewrite, which is more powerful
+but also slightly more complicated.
+
+<source>  
+  JkOptions     +RejectUnsafeURI
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
+JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b>
 directive of Apache web server. As such mod_dir should be available to Apache,
 statically or dynamically (DSO)
 <br/>
@@ -488,7 +570,7 @@
 </p>
 
 <p>
-If ForwarDirectories is set to true and Apache doesn't find any files that
+If ForwardDirectories is set to true and Apache doesn't find any files that
 match, the request will be forwarded to Tomcat for resolution. This is used in
 cases when Apache cannot see the index files on the file system for various
 reasons: Tomcat is running on a different machine, the JSP file has been
@@ -583,6 +665,25 @@
 </p>
 
 <p>
+JkOptions <b>ForwardSSLCertChain</b>,  you ask mod_jk, when using ajp13,
+to forward SSL certificate chain (off by default).
+Mod_jk only passes the <code>SSL_CLIENT_CERT</code> to the AJP connector. This is not a
+problem with self-signed certificates or certificates directly signed by the
+root CA certificate. However, there's a large number of certificates signed by
+an intermediate CA certificate, where this is a significant problem: A servlet
+will not have the possibility to validate the client certificate on its own. The
+bug would be fixed by passing on the <code>SSL_CLIENT_CERT_CHAIN</code> to Tomcat via the AJP connector.
+<br/>
+This directive exists only since version 1.2.22.
+<source>  
+  JkOptions     +ForwardSSLCertChain
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
 The directive <b>JkEnvVar</b> allows you to forward environment variables from Apache server to Tomcat engine.
 The variables can be retrieved on the Tomcat side as request attributes.
 You can add a default value as a second parameter to the directive.
@@ -657,9 +758,12 @@
 the Apache document space. It enables Apache to serve a static context while Tomcat
 serving dynamic context. This directive is used for convenience so that you don't
 have to put an apache Alias directive for each application directory inside Tomcat's
-webapp directory.
+webapp directory. For security reasons is is strongly recommended that JkMount
+is used to pass all requests to Tomcat by default and JkUnMount is used to
+explicitly exclude static content to be served by httpd. It should also be noted
+that content served by httpd will bypass any security constraints defined in the
+application's web.xml.
 </p>
-
 <source>
   # enter the full path to the tomcat webapps directory
   JkAutoAlias /opt/tomtact/webapps

Modified: trunk/tomcat5.5/connectors/jk/xdocs/reference/iis.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/reference/iis.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/reference/iis.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -93,13 +93,73 @@
 A string value representing a boolean. If it is set to true,
 URL session suffixes of the form ";jsessionid=..." get stripped of URLs,
 even if the are served locally by the web server.
+</p>
+<p>
 A true value can be represented by the string "1" or any string starting
 with the letters "T" or "t". A false value will be assumed for "0"
 or any string starting with "F" or "f". The default value is false.
 </p>
 <p>This directive has been added in version 1.2.21</p>
 </attribute>
-
+<attribute name="auth_complete" required="false"><p>
+A DWORD value representing "0" or "1". This is needed because
+of minor incompatibilities with IIS 5.1.
+</p>
+<p>
+By default its value is 1, which means we use the SF_NOTIFY_AUTH_COMPLETE
+event. If you set this to 0, then we use SF_NOTIFY_PREPROC_HEADERS.
+This might be needed for IIS 5.1 when handling requests using the
+PUT HTTP method.
+</p>
+<p>This directive has been added in version 1.2.21</p>
+</attribute>
+<attribute name="uri_select" required="false"><p>
+A string value which influences, how URIs are decoded and reencoded
+between IIS and Tomcat. You should leave this at it's default value,
+unless you have a very good reason to change it.
+</p>
+<p>
+If the value is "parsed", the forwarded URI
+will be decoded and explicit path components like ".." will already
+be resolved. This is less spec compliant and is <b>not safe</b>
+if you are using prefix forwarding rules.
+</p>
+<p>
+If the value is "unparsed", the forwarded URI
+will be the original request URI. It's spec compliant and also
+the safest option. Rewriting the URI and then forwarding the rewritten
+URI will not work.
+</p>
+<p>
+If the value is "escaped", the forwarded URI
+will be the reencoded form of the URI used by "parsed".
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs.
+</p>
+<p>
+If the value is "proxy", the forwarded URI
+will be a partially reencoded form of the URI used by "parsed".
+Explicit path components like ".." will already be resolved.
+and problematic are reencoded.
+</p>
+<p>The default value since version 1.2.24 is "proxy". Before it was "parsed".</p>
+</attribute>
+<attribute name="reject_unsafe" required="false"><p>
+A string value representing a boolean. If it is set to true,
+URLs containing percent signs '%' or backslashes '\'
+after decoding will be rejected.
+</p>
+<p>
+Most web apps do not use such URLs. By enabling "reject_unsafe" you
+can block several well known URL encoding attacks.
+</p>
+<p>
+A true value can be represented by the string "1" or any string starting
+with the letters "T" or "t". A false value will be assumed for "0"
+or any string starting with "F" or "f". The default value is false.
+</p>
+<p>This directive has been added in version 1.2.24</p>
+</attribute>
 </attributes>
 </section> 
 <section name="Using a properties file for configuration">

Modified: trunk/tomcat5.5/connectors/jk/xdocs/reference/project.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/reference/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/reference/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,6 +24,7 @@
     <menu name="Generic HowTo">
         <item name="For the impatient"          href="../generic_howto/quick.html"/>
         <item name="All about workers"          href="../generic_howto/workers.html"/>
+        <item name="Timeouts"                   href="../generic_howto/timeouts.html"/>
         <item name="Load Balancing"             href="../generic_howto/loadbalancers.html"/>
     </menu>
 
@@ -49,6 +50,7 @@
     </menu>
 
     <menu name="News">
+        <item name="2007"                       href="../news/20070301.html"/>
         <item name="2006"                       href="../news/20060101.html"/>
         <item name="2005"                       href="../news/20050101.html"/>
         <item name="2004"                       href="../news/20041100.html"/>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/reference/status.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/reference/status.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/reference/status.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -287,13 +287,40 @@
 <p>
 The categorization is based on the activation state of the workers (active, disabled or stopped),
 which is a pure configuration state, and the runtime state
-(OK, N/A, busy, recovering, probing, forced recovery, error)
+(OK or ERR with possible substates idle, busy, recovering, probing, and forced recovery)
 which only depends on the runtime situation.
 </p>
 <p>
+The runtime substates have the following meaning:
+<ul>
+<li>
+<b>OK (idle)</b>: This worker didn't receive any request since the last balancer
+maintenance. By default balancer maintenance runs every 60 seconds. The
+worker should be OK, but since we didn't have to use it for some time, we
+can't be sure. This state has been called N/A before version 1.2.24.
+</li>
+<li>
+<b>OK (busy)</b>: All connections for this worker are in use for requests.
+</li>
+<li>
+<b>ERROR (recovering)</b>: The worker was in error state for some time and is now
+marked for recovery. The next request suitable for thi worker will use it.
+</li>
+<li>
+<b>ERROR (probing)</b>: After setting the worker to recovering, we received a request
+suitable for this worker. This request is now using the worker.
+</li>
+<li>
+<b>ERROR (forced recovery)</b>: The worker is in error, but we don't have an alternative
+worker, so we keep using it.
+</li>
+</ul>
+</p>
+<p>
 By default the status worker groups into "good" all members, that have activation "active" and
-runtime state not equal to "error". The "bad" group consists of the members, that have either activation
-"stopped", or are in runtime state "error".
+runtime state not equal to "error" with empty substate.
+The "bad" group consists of the members, that have either activation
+"stopped", or are in runtime state "error" with empty substate.
 </p>
 <p>
 Workers that fit neither of the two groups, are considered to be "degraded".
@@ -302,11 +329,11 @@
 You can define other rules for the grouping into good, bad and degraded.
 The two attributes "good" and "bad" can be populated by a comma-separated list ob single characters or
 dot-separated pairs. Each character stands for the first character of one of the possible states "active",
-"disabled", "stopped", "ok", "na", "busy", "recovering" and "error". The additional states "probing"
+"disabled", "stopped", "ok", "idle", "busy", "recovering" and "error". The additional states "probing"
 and "forced recovery" are always rated equivalent to "recovering".
 Comma-separated entries will be combined
 with logical "or", if you combine a configuration and a runtime state with a dot. the are combined with logical
-"and". So the default value for "good" is "a.o,a.n,a.b,a.r", for "bad" it is "e,s".
+"and". So the default value for "good" is "a.o,a.i,a.b,a.r", for "bad" it is "e,s".
 </p>
 <p>
 The status worker first tries to match against the "bad" definitions, if this doesn't succeed
@@ -400,6 +427,9 @@
 <b>lt</b>: recover_time (seconds)
 </li>
 <li>
+<b>lx</b>: max_reply_timeouts (number)
+</li>
+<li>
 <b>ls</b>: sticky_session (0/f/n/off=off, 1/t/y/on=on; case insensitive)
 </li>
 <li>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/reference/workers.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/reference/workers.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/reference/workers.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -44,29 +44,49 @@
 
 <p>
 There are probably more reasons for having multiple workers but I guess that this list is enough...
+</p>
+<p>
 Tomcat workers are defined in a properties file dubbed <b>workers.properties</b> and this tutorial
 explains how to work with it.
 </p>
 </section>
 
-<section name="Directives">
+<section name="Configuration File Basics">
 <br/>
-<p>Each workers.properties directive consists of three words separated by dot. The first word is always
-<b>worker</b>. The second word is the worker name that can be any name. The worker name reflects the
-name of the <b>jvmRoute</b> defined in Tomcat's server.xml configuration file.
+<p>Defining workers to the Tomcat web server plugin can be done using a properties file
+(a sample file named workers.properties is available in the conf/ directory).
 </p>
+
+<subsection name="Format, Comments, Whitespace">
+<br/>
 <p>
-<warn>
-The name of the worker can contain only the alphanumeric characters <b>[a-z][A-Z][0-9][_\-]</b> and is case sensitive.
-</warn>
+The lines in the file define properties. The general format is
 </p>
+<p><strong>&lt;name&gt;=&lt;value&gt;</strong></p>
+<p>
+</p>
+Dots are used as part of the name to represent a configuration hierarchie.
+<p>
+Invalid directives will be logged during web server startup and prevent the web server
+from working properly. Some directives have been deprecated. Although they will
+still work, you should replace them by their
+<a href="#Deprecated Worker Directives">successors</a>.
+</p>
+<p>
+Some directives are allowed multiple times. This will be explicitely
+noted in the tables below.
+</p>
+<p>
+Whitespace at the beginning and the end of a property name or value gets ignored.
+Comments can be placed in any line and start with a hash sign '#'.
+Any line contents behind the hash sign get ignored.
+</p>
+</subsection>
 
-<subsection name="Defining workers">
+<subsection name="Global Properties">
 <br/>
-<p>The generic workers.properties directive is in the form:</p>
-<p><strong>worker.&lt;worker name&gt;.&lt;directive&gt;=&lt;value&gt;</strong></p>
-<p>Defining workers to the Tomcat web server plugin can be done using a properties file
-(a sample file named workers.properties is available in the conf/ directory).
+<p>
+These directives have global scope.
 </p>
 <directives>
 <directive name="worker.list" default="ajp13" required="true">
@@ -93,10 +113,85 @@
 </directives>
 </subsection>
 
-<subsection name="Mandatory directives">
+<subsection name="Worker Properties">
 <br/>
+<p>
+Each worker configuration directive consists of three words separated by a dot:
+</p>
+<p><strong>worker.&lt;worker name&gt;.&lt;directive&gt;=&lt;value&gt;</strong></p>
+<p>
+The first word is always <b>worker</b>. 
+The second word is the worker name you can choose. In the case of load-balancing,
+the worker name has an additional meaning. Please consult the
+<a href="../generic_howto/loadbalancers.html">Load Balancer HowTo</a>.
+</p>
+<warn>
+The name of the worker can contain only the alphanumeric characters
+<b>[a-z][A-Z][0-9][_\-]</b> and is case sensitive.
+</warn>
+</subsection>
+
+<subsection name="Variables, Environment Variables">
+<br/>
+<p>
+You can define and use variables in the workers.properties file.
+To define a variable you use the syntax:
+</p>
+<p><strong>&lt;variable_name&gt;=&lt;value&gt;</strong></p>
+<p>
+Dots are allowed in the variable name, but you have to be careful
+not to use variable names, that clash with standard directives.
+Therefore variable names should never start with "worker.".
+</p>
+<p>
+To use a variable, you can insert "$(variable_name)" at any place
+on the value side of a property line. If a variable has not been
+defined before its use, we will search the process environment for
+a variable with the same name and use their value.
+</p>
+</subsection>
+
+<subsection name="Property Inheritance">
+<br/>
+<p>Often one wants to use the same property values for various workers.
+To reduce duplication of configuration lines and to ease the maintenance of
+the file, you can inherit properties from one worker to another, or even
+from a template to real workers.
+</p>
+<p>
+The directive "reference" allows to copy configurations between workers
+in a hierarchical way. If worker castor sets <b>worker.castor.reference=worker.pollux</b>
+then it inherits all properties of <b>pollux</b>, except for the ones that
+are explicitely set for <b>castor</b>.
+</p>
+<p>
+Please note, that the value of the directive is not only the name of the referred worker,
+but the complete prefix including "worker.".
+</p>
+<p>
+To use a template worker simply define it like a real worker, but do not add it
+to the "worker.list" or as a member to any load balancer. Such a template worker
+does not have to contain mandatory directives. This approach is especially useful,
+if one has a lot of balanced workers in a load balancer
+and these workers share most of their properties. You can set all of these properties
+in a template worker, e.g. using the prefix "worker.template1", and then simply
+reference those common properties in all balanced workers.
+</p>
+<p>
+References can be used to inherit properties over multiple hops in a hierarchical way.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.19</b>.
+</p>
+</subsection>
+</section>
+
+<section name="List of All Worker Directives">
+<br/>
+<subsection name="Mandatory Directives">
+<br/>
 <p>Mandatory directives are the one that each worker <b>must</b> contain. Without them the worker will
-be unavailable or will misbehave.
+be unavailable or will misbehave. Those directives will be marked with a <strong>strong</strong> font in the following tables.
 </p>
 <directives>
 <directive name="type" default="ajp13" required="true">
@@ -111,7 +206,8 @@
 </directives>
 </subsection>
 
-<subsection name="Connection directives">
+<subsection name="Connection Directives">
+<br/>
 <p>Connection directives defines the parameters needed to connect and maintain
 the connections pool of persistent connections between JK and remote Tomcat.
 </p>
@@ -143,17 +239,11 @@
 generally 120 minutes), and thus prevent the firewall to cut the connection.
 To enable keepalive set this property value to the <b>True</b>.
 <p>
-The problem with Firewall cutting inactive connections is that sometimes, neither webserver or tomcat
+The problem with Firewall cutting inactive connections is that sometimes, neither webserver or Tomcat
 have information about the cut and couldn't handle it.
 </p>
 </directive>
 
-<directive name="retries" default="2" required="false">
-The number of retries that the worker will try in case of error returned from remote
-Tomcat. If the number of retries set is greater than two (the default value), on
-each retry after default an extra wait of 100ms will be inserted.
-</directive>
-
 <directive name="connection_pool_size" default="see text" required="false">
 This defines the number of connections made to the AJP backend that
 are maintained as a connection pool.
@@ -165,7 +255,8 @@
 should reflect the number of threads per child process. JK will discover
 the number of threads per child process on Apache 2 web server with worker-mpm and set
 its default value to match the ThreadsPerChild Apache directive. For IIS the default
-value is 10. For other web servers than Apache or IIS this value has to be set manually.
+value is 250. For other web servers than Apache or IIS the default value is 1
+and you should adjust it manually.
 </p>
 <warn>Do not use connection_pool_size with values higher then 1 on <b>Apache 2.x prefork</b> or <b>Apache 1.3.x</b>!</warn>
 </directive>
@@ -212,7 +303,7 @@
 
 </subsection>
 
-<subsection name="Load balancing directives">
+<subsection name="Load Balancing Directives">
 <br/>
 <p>Load balancer is a virtual worker that does not really communicate with Tomcat workers.
 Instead it is responsible for the management of several "real" workers.
@@ -249,6 +340,17 @@
 The overall result is that workers managed by the same lb worker are load-balanced
 (based on their lbfactor and current user session) and also fall-backed so a single
 Tomcat process death will not "kill" the entire site.
+</p>
+<warn>
+If you want to use session stickyness, you must set different jvmRoute attributes
+in the Engine element in Tomcat's server.xml. Furthermore the names of the workers
+which are managed by the balancer have to be equal to the jvmRoute of the Tomcat
+instance they connect with.
+</warn>
+<p>
+The restriction on the worker names can be lifted, if you use the route attribute for the workers.
+</p>
+<p>
 The following table specifies properties that the lb worker can accept:
 </p>
 
@@ -271,7 +373,7 @@
 Tomcat worker. If sticky_session is set to <b>True</b> or <b>1</b> sessions are sticky, otherwise
 sticky_session is set to <b>False</b>. Set sticky_session to <b>False</b> when Tomcat
 is using a Session Manager which can persist session data across multiple
-instances of Tomcat. By default sticky_session is set to True.
+instances of Tomcat.
 </directive>
 
 <directive name="sticky_session_force" default="False" required="false">
@@ -349,11 +451,15 @@
 </p>
 </directive>
 
-<directive name="secret" default="" required="false">
-Set a default secret word for all defined workers.
-See worker secret attribute description for more info.
+<directive name="retries" default="2" required="false">
+<warn>This directive also exists for normal workers.
+For those it has a <a href="#Advanced Worker Directives">different meaning</a>.</warn>
+If the load balancer can not get a free connection for a member worker
+from the pool, it will try again a number of times given by <b>retries</b>.
+Before each retry, it will make a small pause, starting with 50 milliseconds
+and doubling before each retry until a maximum of 100 milliseconds.
 <p>
-This feature has been added in <b>jk 1.2.12</b>.
+Until version <b>1.2.16</b> the default value was 3.
 </p>
 </directive>
 
@@ -361,7 +467,7 @@
 
 </subsection>
 
-<subsection name="Status Worker directives">
+<subsection name="Status Worker Directives">
 <br />
 <p>
 The status worker does not communicate with Tomcat.
@@ -486,68 +592,133 @@
 </directives>
 </subsection>
 
-<subsection name="Advanced worker directives">
+<subsection name="Advanced Worker Directives">
 <br />
-<directives>
-<directive name="connect_timeout" default="0" required="false">
+<p>
+This table lists more advanced configuration options. Most of them only apply to
+some types of workers. We use the abbreviations <b>AJP</b> for ajp13/ajp14 workers
+used directly via the workers.list, <b>LB</b> for load balancer workers,
+and <b>SUB</b> for the workers used indirectly in a load balancer worker
+as a sub worker or member.
+</p>
+<advanceddirectives>
+<directive name="connect_timeout" workers="AJP,SUB" default="0" required="false">
 Connect timeout property told webserver to send a PING request on ajp13 connection after
 connection is established. The parameter is the delay in milliseconds to wait for the PONG reply.
 The default value zero disables the timeout (infinite timeout).
 <p>
-This features has been added in <b>jk 1.2.6</b> to avoid problem with hung tomcat's and require ajp13
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and require ajp13
 ping/pong support which has been implemented on Tomcat <b>3.3.2+, 4.1.28+ and 5.0.13+</b>.
 Disabled by default.
 </p>
 </directive>
 
-<directive name="prepost_timeout" default="0" required="false">
+<directive name="prepost_timeout" workers="AJP,SUB" default="0" required="false">
 Prepost timeout property told webserver to send a PING request on ajp13 connection before
 forwarding to it a request. The parameter is the delay in milliseconds to wait for the PONG reply.
 The default value zero disables the timeout (infinite timeout).
 <p>
-This features has been added in <b>jk 1.2.6</b> to avoid problem with hung tomcat's and require ajp13
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and require ajp13
 ping/pong support which has been implemented on <b>Tomcat 3.3.2+, 4.1.28+ and 5.0.13+</b>.
 Disabled by default.
 </p>
 </directive>
 
-<directive name="reply_timeout" default="0" required="false">
-Reply_timeout property told webserver to wait some time for reply to a forwarded request
-before considering the remote tomcat is dead and eventually switch to another tomcat in a cluster
-group. By default (value zero) the webserver will wait forever which could be an issue for you.
-The parameter is the number of milliseconds to wait for reply, so adjust it carefully if you
-have long running servlets.
+<directive name="reply_timeout" workers="AJP,SUB" default="0" required="false">
+The parameter is the number of milliseconds to wait for success during a read event.
+So this is not a timeout for the complete answer time of a request, but only
+for the maximum time between two packets received from Tomcat. Usually the longest
+pause is between sending the request and getting the first packet of the response.
 <p>
-This features has been added in <b>jk 1.2.6</b> to avoid problem with hung tomcat's and works on all
+If the timeout passes without any data received from Tomcat, the webserver will
+no longer wait for the rest of the response and send an error to the client (browser).
+Usually this does not mean, that the request is also aborted on the Tomcat backend.
+If the worker is a member of a load balancer, the load balancer might place the
+worker into an error state and retry the request on another member.
+See also <b>max_reply_timeouts</b>, <b>retries</b> and <b>recovery_options</b>.
+</p>
+<p>
+By default (value zero) the webserver will wait forever which could be an issue for you.
+If you set a reply_timeout, adjust it carefully if you have long running servlets.
+</p>
+<p>
+This features has been added in <b>jk 1.2.6</b> to avoid problem with hung Tomcat's and works on all
 servlet engines supporting ajp13.
-Disabled by default.
 </p>
 </directive>
 
-<directive name="recover_time" default="60" required="false">
-Only used for load balancer workers.
+<directive name="retries" workers="AJP,SUB" default="2" required="false">
+<warn>This directive also exists for load balancer workers.
+For those it has a <a href="#Load Balancing Directives">different meaning</a>.</warn>
+The maximum number of times that the worker will send a request to Tomcat
+in case of a communication error. Each retry will be done over another
+connection. The first time already gets counted, so retries=2 means
+one retry after error. If the value is greater than the default value, on
+each additional retry an extra wait of 100ms will be inserted.
 <p>
-The recover time is the time in seconds the load balancer will not try
-to use a worker, after it went into error state. Only after this time has passed,
-a worker in error state will be marked as in recovering, so that it will be
-tried for new requests.
+See also the attribute <b>recovery_options</b> for a more fine-grained control
+of retries.
 </p>
 <p>
-This interval is not checked every time a request is being processed.
-Instead it is being checked during global maintenance. The time between two
-runs of global maintenance is controlled by worker.maintain.
+Until version <b>1.2.16</b> the default value was 3.
 </p>
+</directive>
+
+<directive name="recovery_options" workers="AJP,SUB" default="0" required="false">
+Recovery options influence, how we should handle retries,
+in case we detect a problem with Tomcat.
+How often we will retry is controlled by the attribute <b>retries</b>.
 <p>
-Do not set recover_time to a very short time unless you understand the implications.
-Every recovery attempt for a worker in error is done by a real request!
+This attribute is a bit mask. The following bits are allowed:<br/>
+1: don't recover if Tomcat failed after getting the request<br/>
+2: don't recover if Tomcat failed after sending the headers to client<br/>
+4: close the connection to Tomcat, if we detect an error when writing back
+the answer to the client (browser)<br/>
+8: always recover requests for HTTP method HEAD (even if Bits 1 or 2 are set)<br/>
+16: always recover requests for HTTP method GET (even if Bits 1 or 2 are set)<br/>
 </p>
+<p>
+This features has been added in <b>jk 1.2.6</b>.
+Option 4 has been added in version <b>1.2.16</b>,
+options 8 and 16 in version <b>1.2.24</b>.
+</p>
 </directive>
 
-<directive name="max_packet_size" default="8192" required="false">
+<directive name="fail_on_status" workers="AJP,SUB" default="0" required="false">
+Set this value to the HTTP status code that will cause a worker to fail
+if returned from Servlet container. Use this directive to deal with
+cases when the servlet container can temporary return non-200 responses
+for a short amount of time, e.g during redeployment.
+<p>
+The error page, headers and status codes of the original response will not be send back
+to the client. Instead the request will result in a 503 response.
+If the worker is a member of a load balancer, the member will
+be put into an error state. Request failover and worker recovery will be handled
+with the usual load balancer procedures.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.20</b>.
+</p>
+<p>
+Starting with <b>jk 1.2.22</b> it is possible to define multiple
+status codes separated by space or comma characters.
+For example: <code>worker.xxx.fail_on_status=500,503</code>
+</p>
+<p>
+Starting with <b>jk 1.2.25</b> you can also tell the load
+balancer to not put a member into an error state, if a
+response returned with one of the status codes in
+fail_on_status. This feature gets enabled, by putting a minus sign in
+front of those status codes.
+For example: <code>worker.xxx.fail_on_status=-404,-500,503</code>
+</p>
+</directive>
+
+<directive name="max_packet_size" workers="AJP,SUB" default="8192" required="false">
 This attribute sets the maximal AJP packet size in Bytes.
 The maximum value is 65536. If you change it from the default,
 you <b>must</b> also change the packetSize attribute of your AJP
-connector on the tomcat side! The attribute packetSize is only available
+connector on the Tomcat side! The attribute packetSize is only available
 in Tomcat 5.5.20+ and 6.0.2+.
 <p>
 Normally it is not necessary to change the maximum packet size. Problems
@@ -559,85 +730,69 @@
 </p>
 </directive>
 
-<directive name="recovery_options" default="0" required="false">
-Only used for a member worker of a load balancer.
+<directive name="mount" workers="AJP,LB" default="" required="false">
+Space delimited list of uri maps the worker should handle. It is only used,
+if the worker is included in worker.list.
 <p>
-Recovery options property told webserver how to handle recovery when
-it detect that tomcat failed.
-By default, webserver will forward the request to another tomcat in LB mode
-(or to another ajp thread in ajp13 mode).
-values are : 0 (full recovery), 1 (don't recover if tomcat failed after getting the request),
-2 (don't recover if tomcat failed after sending the headers to client), 3 (don't recover if tomcat failed
-getting the request or after sending the headers to client).
+This directive can be used multiple times for the same worker.
 </p>
-<p>
-This features has been added in <b>jk 1.2.6</b> to avoid problem with hung/broken tomcat's
-and works on all servlet engines supporting ajp13.
-Full recovery by default.
-</p>
-<p>If the value 4 is added to the recovery options, the connection
-between the webserver and tomcat will be closed if the client connection
-to the webserver is terminated during the request/response cycle. This allows
-to inform the servlet engine about broken client connections during lengthy operations.
-This feature has been added in <b>jk 1.2.16</b>
-</p>
 </directive>
 
-<directive name="distance" default="0" required="false">
-Only used for a member worker of a load balancer.
+<directive name="secret" workers="AJP,LB,SUB" default="" required="false">
+You can set a secret keyword on the Tomcat AJP Connector. Then only requests
+from workers with the same secret keyword will be accepted.
 <p>
-An integer number to express preferences between
-the balanced workers of an lb worker.
-A load balancer will never choose some balanced worker 
-in case there is another usable worker with lower distance.
+Use <b>request.useSecret="true"</b> and <b>request.secret="secret key word"</b>
+in your Tomcat AJP Connector configuration.
 </p>
 <p>
-Only in case all workers below a given distance are in error, disabled or stopped,
-workers of a larger distance are eligible for balancing.
+If you set a secret on a load balancer, all its members will inherit this secret.
 </p>
 <p>
-This feature has been added in <b>jk 1.2.16</b>.
+This feature has been added in <b>jk 1.2.12</b>.
 </p>
 </directive>
 
-<directive name="domain" default="" required="false">
-Only used for a member worker of a load balancer.
+<directive name="max_reply_timeouts" workers="LB" default="0" required="false">
+If you use a <b>reply_timeout</b> for the members of a load balancer worker,
+and you want to tolerate a few requests taking longer than reply_timeout,
+you can set this attribute to some positive value.
 <p>
-Domain directive can be used only when the worker is a member of the load balancer.
-Workers that share the same domain name are treated as single worker. If sticky_session
-is used, then the domain name is used as session route.
+Long running requests will still time out after reply_timeout milliseconds waiting for
+data, but the corresponding member worker will only be put into an error state,
+if more than <b>max_reply_timeouts</b> requests have timed out.
+More precisely, the counter for those bad requests will be divided by two,
+whenever the load balancer does its internal maintenance (by default every 60
+seconds).
 </p>
 <p>
-This directive is used for large system with more then 6 Tomcats, to be able
-to cluster the Tomcats in two groups and thus lowering the session replication
-transfer between them.
+This features has been added in <b>jk 1.2.24</b> to make <b>reply_timeout</b> less
+sensitive for sporadic long running requests.
 </p>
-<p>
-This feature has been added in <b>jk 1.2.8</b>.
-</p>
 </directive>
 
-<directive name="redirect" default="" required="false">
-Only used for a member worker of a load balancer.
+<directive name="recover_time" workers="LB" default="60" required="false">
+The recover time is the time in seconds the load balancer will not try
+to use a worker, after it went into error state. Only after this time has passed,
+a worker in error state will be marked as in recovering, so that it will be
+tried for new requests.
 <p>
-Set to the preferred failover worker. If worker matching SESSION ID is in
-error state then the redirect worker will be used instead. It will be used
-even if being disabled, thus offering hot standby.
+This interval is not checked every time a request is being processed.
+Instead it is being checked during global maintenance. The time between two
+runs of global maintenance is controlled by worker.maintain.
 </p>
 <p>
-This feature has been added in <b>jk 1.2.9</b>.
+Do not set recover_time to a very short time unless you understand the implications.
+Every recovery attempt for a worker in error is done by a real request!
 </p>
 </directive>
 
-<directive name="activation" default="Active" required="false">
-Only used for a member worker of a load balancer.
-<p>
+<directive name="activation" workers="SUB" default="Active" required="false">
 Using this directive, a balanced worker of a load balancer
 can be configured as disabled or stopped. A disabled worker only gets
 requests, which belong to sessions for that worker. A stopped
 worker does not get any requests. Users will loose their sessions,
 unless session replication via clustering is used.
-</p>
 <p>
 Use <b>d</b> or <b>D</b> to disable and <b>s</b> or <b>S</b> to stop.
 If this directive is not present the deprecated directives
@@ -651,7 +806,7 @@
 </p>
 </directive>
 
-<directive name="route" default="worker name" required="false">
+<directive name="route" workers="SUB" default="worker name" required="false">
 Normally the name of a balanced worker in a load balancer is equal to the jvmRoute
 of the corresponding Tomcat instance. If you want to include a worker corresponding
 to a Tomcat instance into several load balancers with different balancing configuration
@@ -677,64 +832,47 @@
 </p>
 </directive>
 
-<directive name="reference" default="" required="false">
-This attribute can be used for normal workers and for load balancer workers.
+<directive name="distance" workers="SUB" default="0" required="false">
+An integer number to express preferences between
+the balanced workers of an lb worker.
+A load balancer will never choose some balanced worker 
+in case there is another usable worker with lower distance.
 <p>
-This directive allows to copy configurations between workers
-in a hierarchical way. If worker castor sets <b>worker.castor.reference=worker.pollux</b>
-then it inherits all properties of <b>pollux</b>, except for the ones that
-are explicitely set for <b>castor</b>.
+Only in case all workers below a given distance are in error, disabled or stopped,
+workers of a larger distance are eligible for balancing.
 </p>
 <p>
-Please note, that the value of the directive is not only the name of the referred worker,
-but the complete prefix including "worker.".
+This feature has been added in <b>jk 1.2.16</b>.
 </p>
-<p>
-This directive is especially useful, if one has a lot of balanced workers in a load balancer
-and these workers share most of their properties. You can set all of these properties
-in a phantom worker, e.g. using the prefix "worker.template1", and then simply
-reference those common properties in all balanced workers.
-</p>
-<p>
-This feature has been added in <b>jk 1.2.19</b>.
-</p>
 </directive>
 
-<directive name="secret" default="" required="false">
-This attribute can be used for normal workers and for load balancer workers.
+<directive name="domain" workers="SUB" default="" required="false">
+Domain directive can be used only when the worker is a member of the load balancer.
+Workers that share the same domain name are treated as single worker. If sticky_session
+is used, then the domain name is used as session route.
 <p>
-If set to AJP Connector secret keyword, only request with this keyword are successfull responding.
-Use <b>request.useSecret="true"</b> and <b>request.secret="secret key word"</b> at your tomcat ajp
-Connector configuration.
+This directive is used for large system with more then 6 Tomcats, to be able
+to cluster the Tomcats in two groups and thus lowering the session replication
+transfer between them.
 </p>
-</directive>
-
-<directive name="mount" default="" required="false">
-This attribute can be used for normal workers and for load balancer workers.
 <p>
-Space delimited list of uri maps the worker should handle. It is only used,
-if the worker is included in worker.list.
+This feature has been added in <b>jk 1.2.8</b>.
 </p>
-<p>
-This directive can be used multiple times for the same worker.
-</p>
 </directive>
 
-<directive name="fail_on_status" default="0" required="false">
-Set this value to the HTTP status code that will cause a worker to fail
-if returned from Servlet contatiner. Use this directive to deal with
-cases when the servlet container can temporary return non-200 responses
-for a short amount of time, e.g during redeployment.
+<directive name="redirect" workers="SUB" default="" required="false">
+Set to the preferred failover worker. If worker matching SESSION ID is in
+error state then the redirect worker will be used instead. It will be used
+even if being disabled, thus offering hot standby.
 <p>
-This feature has been added in <b>jk 1.2.20</b>.
+This feature has been added in <b>jk 1.2.9</b>.
 </p>
 </directive>
 
-
-</directives>
+</advanceddirectives>
 </subsection>
 
-<subsection name="Deprecated worker directives">
+<subsection name="Deprecated Worker Directives">
 <br/>
 <p>The following directives have been deprecated in the past. We include their documentation
 in case you need to use an older version of mod_jk. We urge you to update and not use

Modified: trunk/tomcat5.5/connectors/jk/xdocs/style.xsl
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/style.xsl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/style.xsl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!-- Content Stylesheet for "tomcat-docs" Documentation -->
 
-<!-- $Id: style.xsl 478537 2006-11-23 11:30:34Z rjung $ -->
+<!-- $Id: style.xsl 560181 2007-07-27 10:12:34Z rjung $ -->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">
@@ -279,7 +279,7 @@
     </table>
   </xsl:template>
 
-  <!-- Process an directives list with nested directive elements -->
+  <!-- Process a directives list with nested directive elements -->
   <xsl:template match="directives">
     <table border="1" cellpadding="5">
       <tr>
@@ -323,7 +323,66 @@
     </table>
   </xsl:template>
 
-  <!-- Process an directives list with nested directive elements -->
+  <!-- Process an advanced directives list with nested directive elements -->
+  <xsl:template match="advanceddirectives">
+    <table border="1" cellpadding="5">
+      <tr>
+        <th width="10%" bgcolor="{$attributes-color}">
+          <font color="#ffffff">Directive</font>
+        </th>
+        <th width="10%" bgcolor="{$attributes-color}">
+          <font color="#ffffff">Worker Type</font>
+        </th>
+        <th width="8%" bgcolor="{$attributes-color}">
+          <font color="#ffffff">Default</font>
+        </th>
+        <th width="72%" bgcolor="{$attributes-color}">
+          <font color="#ffffff">Description</font>
+        </th>
+      </tr>
+      <xsl:for-each select="directive">
+        <tr>
+          <td align="left" valign="center">
+            <xsl:if test="@required = 'true'">
+              <strong><code><xsl:value-of select="@name"/></code></strong>
+            </xsl:if>
+            <xsl:if test="@required != 'true'">
+              <code><xsl:value-of select="@name"/></code>
+            </xsl:if>
+          </td>
+     	  <xsl:choose>
+            <xsl:when test="@workers != ''">
+               <td align="left" valign="center">          
+               <code><xsl:value-of select="@workers"/></code>
+              </td>
+            </xsl:when>
+            <xsl:otherwise>
+              <td align="left" valign="center">          
+              <code>?</code>
+              </td>
+            </xsl:otherwise>
+          </xsl:choose>          
+     	  <xsl:choose>
+            <xsl:when test="@default != ''">
+               <td align="center" valign="center">          
+               <code><xsl:value-of select="@default"/></code>
+              </td>
+            </xsl:when>
+            <xsl:otherwise>
+              <td align="center" valign="center">          
+              <code>-</code>
+              </td>
+            </xsl:otherwise>
+          </xsl:choose>          
+          <td align="left" valign="center">
+            <xsl:apply-templates/>
+          </td>
+        </tr>
+      </xsl:for-each>
+    </table>
+  </xsl:template>
+
+  <!-- Process a deprecations list with nested directive elements -->
   <xsl:template match="deprecations">
     <table border="1" cellpadding="5">
       <tr>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/apache.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/apache.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/apache.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -25,7 +25,7 @@
 <title>Apache HowTo</title>
 <author email="hgomez at apache.org">Henri Gomez</author>
 <author email="shachor at il.ibm.com">Gal Shachor</author>
-<date>$Date: 2007-02-25 09:47:34 -0700 (Sun, 25 Feb 2007) $</date>
+<date>$Date: 2007-07-26 09:42:00 -0600 (Thu, 26 Jul 2007) $</date>
 </properties>
 <body>
 <section name="Introduction">
@@ -44,6 +44,15 @@
 and <a href="../reference/apache.html">Apache</a>.
 </p>
 
+<p><b>Waring: If Apache httpd and Tomcat are configured to serve content from
+the same filing system location then care must be taken to ensure that httpd is
+not able to serve inappropriate content such as the contents of the WEB-INF
+directory or JSP source code.</b> This could occur if the httpd DocumentRoot
+overlaps with a Tomcat Host's appBase or the docBase of any Context. It could
+also occur when using the httpd Alias directive with a Tomcat Host's appBase or
+the docBase of any Context.
+</p>
+
 <p>
 This document was originally part of <b>Tomcat: A Minimalistic User's Guide</b> written by Gal Shachor,
 but has been split off for organizational reasons.
@@ -90,7 +99,7 @@
 Netware
 </li>
 <li>
-iSeries V5R1 and V5R2 with Apache 2.0.39. Be sure to have the latest Apache PTF installed.
+i5/OS V5R4 (System I) with Apache 2.0.58. Be sure to have the latest Apache PTF installed.
 </li>
 <li>
 Tomcat 3.2.x, Tomcat 3.3.x, Tomcat 4.0.x, Tomcat 4.1.x, Tomcat 5.0.x, Tomcat 5.5.x and Tomcat 6.
@@ -110,7 +119,7 @@
 </p>
 
 <p>
-The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead 
+The <b>ajp12</b> has been <b>deprecated</b> with Tomcat 3.3.x and you should use instead
 <b>ajp13</b> which is the only ajp protocol known by Tomcat 4.x, 5 and 5.5 and Tomcat 6.
 </p>
 
@@ -206,7 +215,7 @@
 <ul>
 <li>
 <b>mod_jk.xxx</b> - The Apache module, depending on your operating system, it will be mod_jk.so, mod_jk.nlm or
-or QZTCJK.SRVPGM (see the build section).
+or MOD_JK.SRVPGM (see the build section).
 </li>
 <li>
 <b>workers.properties</b> - A file that describes the host(s) and port(s) used by the workers (Tomcat processes).
@@ -250,7 +259,7 @@
 </source>
 
 <p>
-Note: this file may also be generated as $TOMCAT_HOME/conf/auto/mod_jk.conf 
+Note: this file may also be generated as $TOMCAT_HOME/conf/auto/mod_jk.conf
 </p>
 
 <p>
@@ -454,10 +463,14 @@
 </p>
 
 <p>
-The three following options <b>+ForwardURIxxx</b> are mutually exclusive.
+The four following options <b>+ForwardURIxxx</b> are mutually exclusive.
 Exactly one of them is required, a negative sign prefix is not allowed with them.
-By default, the option ForwardURICompat is turned on.
-You can turn this off by switching on one of the other two.
+The default value is "ForwardURIProxy" since version 1.2.24.
+It was "ForwardURICompatUnparsed" in version 1.2.23 and
+"ForwardURICompat" until version 1.2.22.
+You can turn the default off by switching on one of the other two options.
+You should leave this at it's default value, unless you have a very good
+reason to change it.
 <br/>
 <br/>
 </p>
@@ -474,20 +487,25 @@
 </p>
 
 <p>
-JkOptions <b>ForwardURICompat</b>, you told mod_jk to send the URI to Tomcat normally,
-which is less spec compliant but mod_rewrite compatible,
-use it for compatibility with Tomcat 3.2.x engines (on by default).
+Using JkOptions <b>ForwardURIProxy</b>, the forwarded URI
+will be partially reencoded after processing inside Apache httpd and
+before forwarding to Tomcat. This will be compatible with local
+URL manipulation by mod_rewrite and with URL encoded session ids.
 
 <source>
-  JkOptions     +ForwardURICompat
+  JkOptions     +ForwardURIProxy
 </source>
 
 <br/>
 <br/>
 </p>
+
 <p>
-JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
-is unparsed, it's spec compliant but broke mod_rewrite.
+Using JkOptions <b>ForwardURICompatUnparsed</b>, the forwarded URI
+will be unparsed. It's spec compliant and secure.
+It will always forward the original request URI, so rewriting
+URIs with mod_rewrite and then forwarding the rewritten URI
+will not work.
 
 <source>
   JkOptions     +ForwardURICompatUnparsed
@@ -497,10 +515,28 @@
 <br/>
 </p>
 <p>
-JkOptions <b>ForwardURIEscaped</b>, the forwarded URI is escaped and
-Tomcat (since 3.3 rc2) will do the decoding part.
+Using JkOptions <b>ForwardURICompat</b>, the forwarded URI will
+be decoded by Apache httpd. Encoded characters will be decoded and
+explicit path components like ".." will already be resolved.
+This is less spec compliant and is <b>not safe</b> if you are using
+prefix JkMount. This option will allow to rewrite URIs with
+mod_rewrite before forwarding.
 
 <source>
+  JkOptions     +ForwardURICompat
+</source>
+
+<br/>
+<br/>
+</p>
+<p>
+Using JkOptions <b>ForwardURIEscaped</b>, the forwarded URI will
+be the encoded form of the URI used by ForwardURICompat.
+Explicit path components like ".." will already be resolved.
+This will not work in combination with URL encoded session IDs,
+but it will allow to rewrite URIs with mod_rewrite before forwarding.
+
+<source>
   JkOptions     +ForwardURIEscaped
 </source>
 
@@ -509,6 +545,30 @@
 </p>
 
 <p>
+JkOptions <b>RejectUnsafeURI</b> will block all
+URLs, which contain percent signs '%' or backslashes '\'
+after decoding.
+<br/>
+<br/>
+</p>
+<p>
+Most web apps do not use such URLs. Using the option RejectUnsafeURI, you
+can block several well known URL encoding attacks. By default, this option
+is not set.
+</p>
+<p>
+You can also realize such a check with mod_rewrite, which is more powerful
+but also slightly more complicated.
+
+<source>
+  JkOptions     +RejectUnsafeURI
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
 JkOptions <b>ForwardDirectories</b> is used in conjunction with <b>DirectoryIndex</b>
 directive of Apache web server. As such mod_dir should be available to Apache,
 statically or dynamically (DSO)
@@ -625,6 +685,25 @@
 </p>
 
 <p>
+JkOptions <b>ForwardSSLCertChain</b>,  you ask mod_jk, when using ajp13,
+to forward SSL certificate chain (off by default).
+Mod_jk only passes the <code>SSL_CLIENT_CERT</code> to the AJP connector. This is not a
+problem with self-signed certificates or certificates directly signed by the
+root CA certificate. However, there's a large number of certificates signed by
+an intermediate CA certificate, where this is a significant problem: A servlet
+will not have the possibility to validate the client certificate on its own. The
+bug would be fixed by passing on the <code>SSL_CLIENT_CERT_CHAIN</code> to Tomcat via the AJP connector.
+<br/>
+This directive exists only since version 1.2.22.
+<source>
+  JkOptions     +ForwardSSLCertChain
+</source>
+
+<br/>
+<br/>
+</p>
+
+<p>
 The directive <b>JkEnvVar</b> allows you to forward environment variables from Apache server to Tomcat engine.
 The variables can be retrieved on the Tomcat side as request attributes.
 You can add a default value as a second parameter to the directive.
@@ -678,8 +757,11 @@
 </p>
 
 <p>
-Caution: If Apache is configured to serve static pages for a web application it bypasses
-any security contraints you may have configured in your web application web.xml config file.
+Caution: For security reasons is is strongly recommended that JkMount is used to
+pass all requests to Tomcat by default and JkUnMount is used to explicitly
+exclude static content to be served by httpd. It should also be noted that
+content served by httpd will bypass any security constraints defined in the
+application's web.xml.
 </p>
 
 <p>Use Apache's <b>Alias</b> directive to map a single web application context directory into Apache's
@@ -689,15 +771,12 @@
 <source>
   # Static files in the examples webapp are served by apache
   Alias /examples /vat/tomcat3/webapps/examples
-  # The following line prohibits users from directly access WEB-INF
-  &lt;Location "/examples/WEB-INF/"&gt;
-      AllowOverride None
-      deny from all
-  &lt;/Location&gt;
-  # All JSP will goes to worker1
-  JkMount /*.jsp worker1
-  # All servlets goes to worker1
-  JkMount /*/servlet/ worker1
+  # All requests go to worker1 by default
+  JkMount /* worker1
+  # Serve html, jpg and gif using httpd
+  JkUnMount /*.html worker1
+  JkUnMount /*.jpg  worker1
+  JkUnMount /*.gif  worker1
 </source>
 
 <p>
@@ -749,8 +828,13 @@
 <source>
   # Static files in all Tomcat webapp context directories are served by apache
   JkAutoAlias /var/tomcat3/webapps
-  JkMount /*.jsp ajp13
-  JkMount /*/servlet/ ajp13
+
+  # All requests go to worker1 by default
+  JkMount /* ajp13
+  # Serve html, jpg and gif using httpd
+  JkUnMount /*.html ajp13
+  JkUnMount /*.jpg  ajp13
+  JkUnMount /*.gif  ajp13
 </source>
 
 <p>
@@ -809,26 +893,27 @@
 </screen>
 
 <p>
-If you want to build mod_jk for Apache 1.3 and 2.0/2.2, you should
+If you want to build mod_jk for different version of Apache httpd, like 1.3, 2.0 and 2.2,
+you need to go through the full build process for each of them.
+Please note, that httpd 2.0 and 2.2 modules are <b>not</b> compatible. The mod_jk directory
+used is "apache-2.0" in both cases, but you need to compile separately.
 <ul>
 <li>
-use configure and indicate Apache 1.3 apxs location (--with-apxs)
+use configure and indicate the correct Apache httpd apxs location (--with-apxs)
 </li>
 <li>
 use make
 </li>
 <li>
-copy the mod_jk binary to the apache modules location
+copy the resulting mod_jk.so binary from the apache-1.3 or apache-2.0 subdirectory
+to the Apache httpd modules location.
 </li>
 <li>
-make clean (to remove all previously compiled modules)
+make clean (to remove all previously compiled object files)
 </li>
 <li>
-use configure and indicate Apache 2.0/2.2 apxs location,
+Start over with the apxs location for your next Apache httpd version.
 </li>
-<li>
-then make.
-</li>
 </ul>
 
 </p>
@@ -837,42 +922,61 @@
 <subsection name="configure arguments">
 <p>
 <table>
-  <tr><th>Apache related parameters</th><th></th></tr>
-  <tr>
+  <tr valign="top"><th>Apache related parameters</th><th></th></tr>
+  <tr valign="top">
   <td>--with-apxs[=FILE]</td>
   <td>FILE is the location of the apxs tool. Default is finding apxs in PATH.
 It builds a shared Apache module. It detects automaticly the Apache version.
 (2.0/2.2 and 1.3)</td>
   </tr>
-  <tr><td>--with-apache=DIR</td>
+  <tr valign="top"><td>--with-apache=DIR</td>
   <td>DIR is the path where apache sources are located.
 The apache sources should have been configured before configuring mod_jk.
 DIR is something like: /home/apache/apache_1.3.19
 It builds a static Apache module.</td>
   </tr>
-  <tr><td>--enable-EAPI</td>
+  <tr valign="top"><td>--enable-EAPI</td>
   <td>This parameter is needed when using Apache-1.3 and mod_ssl, otherwise you will get the error message:
 "this module might crash under EAPI!" when loading mod_jk.so in httpd.
 Not needed when --with-apxs has been used</td>
 </tr>
+  <tr valign="top"><td>--enable-prefork</td>
+  <td>
+In case you build mod_jk for a multi-threaded Apache httpd 2.0/2.2 MPM (Multi-Processing Module),
+some areas of mod_jk code need to be synchronized to make it thread-safe.
+Because configure can not easily detect, whether your are using a multi-threaded MPM,
+mod_jk by default is always build thread-safe for Apache httpd 2.0/2.2.
+If you are sure, that your MPM is not multi-threaded, you can use "--enable-prefork"
+to force the removal of the synchronization code (thus increasing performance a bit).
+For instance, the prefork MPM is not multi-threaded. For Apache httpd 1.3
+this flag will be set automatically.</td>
+</tr>
+  <tr valign="top"><td>--enable-flock</td>
+  <td>
+In case the operating system supports flock system call use this flag to enable this
+faster locks that are implemented as system call instead emulated by GNU C library.<br/>
+However those locks does not work on NFS mounted volumes, so you can use
+"--enable-flock" during compile time to force the flocks() calls.</td>
+</tr>
+
 </table>
 <br/>
 <table>
-  <tr><th>JNI related parameters</th><th></th></tr>
-  <tr><td>--enable-jni</td>
+  <tr valign="top"><th>JNI related parameters</th><th></th></tr>
+  <tr valign="top"><td>--enable-jni</td>
   <td>Build the JNI worker and so the build process will require
 some informations about your Java Environment</td>
   </tr>
-  <tr><td>--with-java-home=DIR</td>
+  <tr valign="top"><td>--with-java-home=DIR</td>
   <td>DIR is the  patch to the JDK root directory. Something like: /opt/java/jdk12</td>
   </tr>
-  <tr><td>--with-os-type=SUBDIR</td><td>SUBDIR is the os-type subdirectory,
+  <tr valign="top"><td>--with-os-type=SUBDIR</td><td>SUBDIR is the os-type subdirectory,
   configure should guess it correctly.</td>
   </tr>
-  <tr><td>--with-arch-type=SUBDIR</td><td>SUBDIR is the arch subdirectory,
+  <tr valign="top"><td>--with-arch-type=SUBDIR</td><td>SUBDIR is the arch subdirectory,
   configure should guess it correctly.</td>
   </tr>
-  <tr><td>--with-java-platform=VAL</td><td>VAL is the Java platform 1 is 1.1.x and 2 is for 1.2 anf higher,
+  <tr valign="top"><td>--with-java-platform=VAL</td><td>VAL is the Java platform 1 is 1.1.x and 2 is for 1.2 anf higher,
   configure should guess it correctly.</td>
   </tr>
 </table>
@@ -967,28 +1071,41 @@
 </p>
 </section>
 
-<section name="Building mod_jk for Apache on iSeries/OS400">
+<section name="Building mod_jk for Apache on System I - i5/OS (OS400)">
 <p>
-Since OS400 V4R5, iSeries (AS/400) has used Apache 2.0 as their primary web server,
+Since OS400 V4R5, System I (AS/400) has used Apache 2.0 as their primary web server,
 replacing the old IBM webserver.
-It's now possible to build mod_jk on iSeries thanks to the help of the IBM
-Rochester Labs which has provided information and patches
-to adapt mod_jk to OS400.
+It's now possible to build mod_jk on System I thanks to the help of the IBM
+Rochester Labs which has provided information and patches to adapt mod_jk to i5/OS.
 </p>
 <p>
-You should have at least Apache 2.0.48 (product 5722DG1), a C Compiler and IFS.
-Apache 2.0.48 is provided with the most recent set of PTFs for the iSeries Apache
+You should have at least Apache 2.0.58 (product 5722DG1), a C Compiler and IFS.
+Apache 2.0.58 is provided with the most recent set of PTFs for the iSeries Apache
 server, which can be found at <a href="http://www.ibm.com/servers/eserver/iseries/software/http/">
 http://www.ibm.com/servers/eserver/iseries/software/http/</a>
 </p>
 <p>
-The all latest Apache 2 for OS400 V5R3 is now 2.0.52 (2005/03/23).
-Be sure to have the latest PTF loaded (SI17402/SI17061) if you want
-to make use of jk 1.2.8 and higher.
+The all latest Apache 2 for i5/OS V5R3 (or V5R4) is now 2.0.58 (as of 2007/04/17).
+Be sure to have the latest PTFs loaded if you want to make use of jk 1.2.15 and higher.
+NB: The latest mod_jk known to work on i5/OS V5R3 was 1.2.19.
 </p>
+<p>
+New in i5/OS V5R4, UTF is required, also for Apache modules, as such Apache modules do not require
+translations to/from EBCDIC but works should be done to port mod_jk 1.2.23 (and higher) to V5R4.
 
+From the V5R4 Infocenter :
+
+As of i5/OS(tm) V5R4, modules must be recompiled with a UTF locale. This creates an environment where locale-dependent C runtime functions assume
+that string data is encoded in UTF-8. Any hardcoded constants can be encoded in UTF-8 by adding a #pragma convert(1208) statement in the module.
+Additionally, input data from the client will no longer be converted to EBCDIC but will be passed as-is.
+Output data sent from the module is not converted either so it must be encoded in ASCII or UTF8 as required.
+APR and HTTP APIs as of V5R4, expect data in UTF-8. Note that several APIs have additional functions that allow a CCSID to be set to
+indicate the encoding of the parameters being passed. Conversion functions between UTF-8 and EBCDIC have been added.
+Be sure to review APIs used by your module to be aware of current changes.
+
+</p>
 <p>
-To configure mod_jk on iSeries use the CL source provided with the mod_jk source.
+To configure mod_jk on System I use the CL source provided with the mod_jk source.
 </p>
 <ul>
 <li>
@@ -998,15 +1115,15 @@
 Create a directory in IFS, ie /home/apache
 </li>
 <li>
-Send the whole jk source directory to iSeries directory via FTP.
+Send the whole jk source directory to System I directory via FTP.
 </li>
 <li>
-Then go to the iSeries command line :
+Then go to the System I command line :
 </li>
 </ul>
 <screen>
 <note>Create mod_jk library</note>
-<type5250>CRTLIB MOD_JK TEXT(‘Apache mod_jk tomcat connector module’)</type5250>
+<type5250>CRTLIB MOD_JK TEXT(‘Apache mod'jk tomcat connector module')</type5250>
 <note>Create service program source file</note>
 <type5250>CRTSRCPF MOD_JK/QSRVSRC TEXT(‘Service program source file’)</type5250>
 <note>Create the CL build program source file</note>
@@ -1027,10 +1144,10 @@
 </screen>
 </p>
 <p>
-You could start to build all the modules of mod_jk :
+You could start to build all the modules of mod_jk (cases for V5R4 or previous releases):
 </p>
 <screen>
-<note>Copy the CL build program source from IFS</note>
+<note>Copy the CL build program source for i5/OS before V5R4 from IFS</note>
 <type5250>CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk.qclsrc') +</type5250>
 <note>TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK.MBR') MBROPT(*REPLACE)</note>
 <note>Build the CL build program</note>
@@ -1040,9 +1157,24 @@
 <note>If the build if successfull, copy the new mod_jk module</note>
 <type5250>CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</type5250>
 </screen>
+<screen>
+<note>Copy the CL build program source for i5/OS V5R4 from IFS</note>
+<type5250>CPYFRMSTMF FROMSTMF('/home/apache/jk/native/apache-2.0/bldjk54.qclsrc') +</type5250>
+<note>TOMBR('/QSYS.LIB/MOD_JK.LIB/QCLSRC.FILE/BLDJK54.MBR') MBROPT(*REPLACE)</note>
+<note>Build the CL build program for i5/OS V5R4</note>
+<type5250>CRTCLPGM PGM(MOD_JK/BLDJK54) SRCFILE(MOD_JK/QCLSRC) TEXT('Apache mod_jk build program') TGTRLS(*CURRENT)</type5250>
+<note>Launch the build for i5/OS V5R4</note>
+<type5250>CALL MOD_JK/BLDJK54</type5250><br/>
+<note>If the build if successfull, copy the new mod_jk module</note>
+<type5250>CRTDUPOBJ OBJ(MOD_JK) FROMLIB(MOD_JK) OBJTYPE(*SRVPGM) TOLIB(QHTTPSVR) NEWOBJ(MOD_JK)</type5250>
+</screen>
 <p>
-Next, you should restart your Apache 2.0 server and enjoy this piece of OpenSource on iSeries.
+Next, you should restart your Apache 2.0 instance and enjoy this piece of OpenSource on System I.
 </p>
+<screen>
+<note>ENDTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</note>
+<note>STRTCPSVR SERVER(*HTTP) HTTPSVR(MYSERVER)</note>
+</screen>
 </section>
 
 <section name="Building mod_jk for Apache on MacOS/X">

Modified: trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/iis.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/iis.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/iis.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -26,7 +26,7 @@
 <author email="hgomez at apache.org">Henri Gomez</author>
 <author email="shachor at il.ibm.com">Gal Shachor</author>
 <author email="yoavs at apache.org">Yoav Shapira</author>
-<date>$Date: 2006-12-06 07:20:35 -0700 (Wed, 06 Dec 2006) $</date>
+<date>$Date: 2007-04-09 18:06:07 +0200 (Mon, 09 Apr 2007) $</date>
 </properties>
 <body>
 <section name="Introduction">
@@ -233,7 +233,7 @@
 its executable must be our c:\tomcat\bin\win32\i386\isapi_redirect.dll. 
 For PWS, you'll need to use regedit and add/edit the <b>"Filter DLLs"</b> key under 
 <b>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters</b>. 
-This key contains a "," separated list of dlls ( full paths ) - 
+This key contains a "," separated list of dlls (full paths) - 
 you need to insert the full path to isapi_redirect.dll.
 </li>
 <li>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/nes.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/nes.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/nes.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -27,7 +27,7 @@
 <author email="jim at apache.org">Jim Jagielski</author>
 <author email="shachor at il.ibm.com">Gal Shachor</author>
 <author email="mturk at apache.org">Mladen Turk</author>
-<date>$Date: 2007-02-02 11:16:14 -0700 (Fri, 02 Feb 2007) $</date>
+<date>$Date: 2007-08-02 14:44:23 -0600 (Thu, 02 Aug 2007) $</date>
 </properties>
 <body>
 <section name="Introduction">
@@ -204,7 +204,7 @@
 <source>
   
   Init fn="load-modules" funcs="jk_init,jk_service" shlib="c:/jk/lib/nsapi_redirect.dll" shlib_flags="(global|now)"
-  Init fn="jk_init" worker_file="c:/jk/conf/workers.properties" log_level="debug" log_file="c:/jk/logs/nsapi.log"
+  Init fn="jk_init" worker_file="c:/jk/conf/workers.properties" log_level="debug" log_file="c:/jk/logs/nsapi.log" shm_file="c:/jk/logs/jk_shm"
 </source>
 <ul>
 <li>
@@ -232,6 +232,23 @@
 
 <ul>
 <li>
+Edit your worker definition file <b>workers.properties</b>. You should at least choose a connection pool size:
+</li>
+</ul>
+
+<source>
+  #An entry that lists all the workers defined. For example:
+  worker.list=worker1
+  
+  # Entries that define the host and port associated with these workers.
+  worker.worker1.host=localhost
+  worker.worker1.port=8009
+  worker.worker1.type=ajp13
+  worker.worker1.connection_pool_size=50
+</source>
+
+<ul>
+<li>
 Restart Web Server (stop and start the server)
 </li>
 </ul>
@@ -446,7 +463,7 @@
 </section>
 <section name="Building NSAPI so plugin redirector for Unix">
 <p>
-The redirector requires either gcc or the native Solaris cc compiler.
+The redirector requires either gcc (Linux) or gcc or the Sun cc compiler (Solaris).
 
 The steps that you need to take are:
 <ul>
@@ -460,9 +477,17 @@
 Change directory to the nsapi netscape directory (./netstape).
 </li>
 <li>
-Edit <b>Makefile.solaris</b> and update the SUITSPOT_HOME and JAVE_HOME path to reflect your own Netscape server installation.
+Set environment variables JAVA_HOME resp. SUITSPOT_HOME to the location of your Java installation
+resp. Netscape server installation. Depending on the web server version, you must add the subdirectory
+&quot;plugins&quot; to SUITSPOT_HOME.
+The variable is correct, if the file $SUITSPOT_HOME/include/nsapi.h exists.
 </li>
 <li>
+Edit <b>Makefile.solaris</b> resp. <b>Makefile.linux</b> and update the variables according to your needs.
+In the Solaris Makefile, you need to switch the commented lines in order to use the Sun compiler cc
+instead of GNU gcc.
+</li>
+<li>
 Make the source with gmake.
 </li>
 </ul>
@@ -473,7 +498,11 @@
 <typedos>./configure --enable-netscape</typedos>
 <notedos>Change directory to the nsapi netscape directory</notedos>
 <typedos>cd netscape</typedos>
-<notedos>Edit Makefile.solaris</notedos>
+<notedos>Set JAVA_HOME (ksh example)</notedos>
+<typedos>export JAVA_HOME=/path/to/my/java</typedos>
+<notedos>Set SUITSPOT_HOME (ksh example)</notedos>
+<typedos>export SUITSPOT_HOME=/path/to/my/netscape/server</typedos>
+<notedos>Edit the Makefile</notedos>
 <typedos>vi Makefile.solaris</typedos>
 <notedos>Make the source with gmake</notedos>
 <typedos>gmake -f Makefile.solaris</typedos>

Modified: trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/project.xml
===================================================================
--- trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jk/xdocs/webserver_howto/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,6 +24,7 @@
     <menu name="Generic HowTo">
         <item name="For the impatient"          href="../generic_howto/quick.html"/>
         <item name="All about workers"          href="../generic_howto/workers.html"/>
+        <item name="Timeouts"                   href="../generic_howto/timeouts.html"/>
         <item name="Load Balancing"             href="../generic_howto/loadbalancers.html"/>
     </menu>
 
@@ -49,6 +50,7 @@
     </menu>
 
     <menu name="News">
+        <item name="2007"                       href="../news/20070301.html"/>
         <item name="2006"                       href="../news/20060101.html"/>
         <item name="2005"                       href="../news/20050101.html"/>
         <item name="2004"                       href="../news/20041100.html"/>

Added: trunk/tomcat5.5/connectors/jk3/ROADMAP
===================================================================
--- trunk/tomcat5.5/connectors/jk3/ROADMAP	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jk3/ROADMAP	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,96 @@
+APACHE TOMCAT JK3 CONNECTOR ROADMAP                                   -*-text-*-
+
+ApacheCon EU 2007 DISCUSSION POINTS:
+
+    * Lets make next generation connector and software load balancer
+      for application servers.
+    * Lets put JK 1.2 in maintenance mode
+      - Stop adding things to the JK 1.2 and only fix bugs
+      - We'll still need to vote how to maintain this
+    * It should be APR based and supported platforms should be
+      - Apache Httpd 2+
+      - Microsoft IIS 5+ (Windows 2000 and up)
+      - Generic API for standalone based programs
+    * Java code will be Java5 based
+      - Java5 is mandatory
+      - Both server and client reference implementation
+        will be developed
+    * Scripting support for the Load Balancer
+      - Load balancer will have some sort of scripting
+        to be able to make rule based load balancers
+      - We still have to decide if we need a full-blown
+        scripting support, or a simple rule engine will do
+    * Extended AJP 1.3 protocol
+      - Keep AJP 1.3 backward compatible
+      - CPING/CPONG will be mandatory when establishing
+        new connections.
+      - Add connection close notification.
+        Done by extending CPING/CPONG
+      - See how we can have 64K+ headers
+        Idea is to treat them as POST data if the
+        header doesn't fit inside header AJP packet
+    * Make JK3 protocol independent
+      - Although developed with protocol independence in mind
+        JK 1.2 is practically unusable for non AJP 1.3 protocols.
+        JK3 should allow custom protocols like http or fastcgi
+    * Add persistence to the dynamic configuration
+      - Have a way to merge the static configuration with
+        modified dynamic configuration via jkstatus
+    * More powerful log framework
+      - Using hierarchical logger names with corresponding
+        log levels to be able to debug or trace only
+        appropriate parts of the code
+    * Add management thread for each child
+      - APR_HAS_THREADS presence will be mandatory
+      - For each child process in web server a management thread
+        will be created that will monitor state and dynamic
+        configuration.
+    * COMET support
+      - Finding our ways how to drop idle connections between web
+        server and backend
+      - Maybe transporting the backend connector events back to the web
+        server
+    * Load Balancer methods
+      - Round-Robin
+        Standard basic requests count method
+      - Least Connections
+        Number of active sessions
+      - Response Time
+        Request/reply response time
+      - Transferred Data
+        Data read/transferred over the channel. Total or within
+        a measured interval.
+      - All methods have weighted distribution
+      - Methods can be combined with different weight for each method
+        e.g. 75% Response Time and 25% Transferred Data
+      - Load threshold
+        Make a load treshold for high load. When node reaches the desired
+        treshold (eg. 90%) update the load factors. 
+
+HOW TO REACH THE GOALS: ROADMAP.
+Here are the steps to reach the goals.
+1 - Branch at a tagged version of mod_jk.
+2 - Put APR in the code (specially in place where there are #ifdef).
+    As first step support only httpd-2.0 and IIS.
+3 - Test and port back the patches from the mod_jk branch.
+    Here we should have support for:
+      - Apache Httpd 2+
+      - Microsoft IIS 5+ (Windows 2000 and up)
+      - Generic API for standalone based programs
+    No changes in the JAVA part.
+
+    Decide if we want to support netscape too.
+4 - Wait for a release cycle to see if the mod_jk branch could go to maintenance mode only.
+
+5 - Branch again to separate configuration from the rest of the code.
+6 - Test and port back the patches from the other branche.
+    Here we should have support for:
+    Persistence of the dynamic configuration.
+    A way to merge the static configuration with a dynamic one.
+    A dynamic configuration via an extented jkstatus
+7 - Test and port back the patches from the old mod_jk branch.
+8 - Write the JAVA part so that contexts and nodes could be added/remoted automaticly.
+9 - Wait for a release cycle to see if the previous mod_jk branch could go to maintenance mode only.
+
+n - Branch and process the protocol part of the proposal. 
+    ...

Modified: trunk/tomcat5.5/connectors/jni/java/org/apache/tomcat/jni/Socket.java
===================================================================
--- trunk/tomcat5.5/connectors/jni/java/org/apache/tomcat/jni/Socket.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/java/org/apache/tomcat/jni/Socket.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,7 +23,7 @@
 /** Socket
  *
  * @author Mladen Turk
- * @version $Revision: 466585 $, $Date: 2006-10-21 16:16:34 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 562478 $, $Date: 2007-08-03 08:33:51 -0600 (Fri, 03 Aug 2007) $
  */
 
 public class Socket {
@@ -241,13 +241,44 @@
      */
     public static native int sendb(long sock, ByteBuffer buf,
                                    int offset, int len);
+
     /**
+     * Send data over a network without retry
+     * <PRE>
+     * This functions acts like a blocking write by default.  To change
+     * this behavior, use apr_socket_timeout_set() or the APR_SO_NONBLOCK
+     * socket option.
+     *
+     * It is possible for both bytes to be sent and an error to be returned.
+     *
+     * </PRE>
+     * @param sock The socket to send the data over.
+     * @param buf The Byte buffer which contains the data to be sent.
+     * @param offset The offset within the buffer array of the first buffer from
+     *               which bytes are to be retrieved; must be non-negative
+     *               and no larger than buf.length
+     * @param len The maximum number of buffers to be accessed; must be non-negative
+     *            and no larger than buf.length - offset
+     * @return The number of bytes send.
+     *
+     */
+    public static native int sendib(long sock, ByteBuffer buf,
+                                    int offset, int len);
+
+    /**
      * Send data over a network using internally set ByteBuffer
      */
     public static native int sendbb(long sock,
                                    int offset, int len);
 
     /**
+     * Send data over a network using internally set ByteBuffer
+     * without internal retry.
+     */
+    public static native int sendibb(long sock,
+                                     int offset, int len);
+
+    /**
      * Send multiple packets of data over a network.
      * <PRE>
      * This functions acts like a blocking write by default.  To change

Modified: trunk/tomcat5.5/connectors/jni/jnirelease.sh
===================================================================
--- trunk/tomcat5.5/connectors/jni/jnirelease.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/jnirelease.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 #
 # Default place to look for apr source.  Can be overridden with 
 #   --with-apr=[directory]
-apr_src_dir=../apr
+apr_src_dir=`pwd`/srclib/apr-1.2.8
 
 while test $# -gt 0 
 do
@@ -50,11 +50,12 @@
 
 # Replace JKJNIEXT with branch/or tag
 # and JKJNIVER by the version like 1.1.0
-JKJNIEXT=trunk
-JKJNIVER=current
-# JKJNIVER="1.1.6"
+JKJNIEXT="trunk"
+JKJNIVER="current"
+# JKJNIEXT="tags/other/TOMCAT_NATIVE_1_1_10"
+# JKJNIVER="1.1.10"
 SVNBASE=https://svn.apache.org/repos/asf/tomcat/connectors/
-JKJNIDIST=tomcat-connectors-${JKJNIVER}-src
+JKJNIDIST=tomcat-native-${JKJNIVER}-src
 rm -rf ${JKJNIDIST}
 mkdir -p ${JKJNIDIST}/jni
 svn export $SVNBASE/${JKJNIEXT}/jni/native ${JKJNIDIST}/jni/native
@@ -72,7 +73,7 @@
 tar cfz ${JKJNIDIST}.tar.gz ${JKJNIDIST}
 #
 # Create Win32 source distribution
-JKJNIDIST=tomcat-connectors-${JKJNIVER}-win32-src
+JKJNIDIST=tomcat-native-${JKJNIVER}-win32-src
 rm -rf ${JKJNIDIST}
 mkdir -p ${JKJNIDIST}/jni
 svn export --native-eol CRLF $SVNBASE/${JKJNIEXT}/jni/native ${JKJNIDIST}/jni/native

Modified: trunk/tomcat5.5/connectors/jni/native/BUILDING
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/BUILDING	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/BUILDING	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+================================================================================
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+================================================================================
+
   Building from the cvs tree:
   sh buildconf --with-apr=apr_source_location.
   configure --with-apr=apr_install_location --with-ssl=openssl_install_location

Modified: trunk/tomcat5.5/connectors/jni/native/Makefile.in
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/Makefile.in	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/Makefile.in	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,21 @@
 #
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
 # Top-level Makefile for TCNATIVE
 #
 
@@ -59,7 +76,7 @@
 	$(LIBTOOL) --mode=install $(INSTALL) -m 755 $(TARGET_LIB) $(DESTDIR)$(libdir)
 
 $(TARGET_LIB): $(OBJECTS)
-	$(LINK) @lib_target@ @TCNATIVE_LDFLAGS@ @TCNATIVE_LIBS@ @SSL_LIBS@
+	$(LINK) @lib_target@ @TCNATIVE_LDFLAGS@ @TCNATIVE_LIBS@
 
 check: $(TARGET_LIB)
 	(cd test && $(MAKE) check)

Modified: trunk/tomcat5.5/connectors/jni/native/build/buildcheck.sh
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/build/buildcheck.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/build/buildcheck.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #! /bin/sh
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 echo "buildconf: checking installation..."
 
 # any python

Modified: trunk/tomcat5.5/connectors/jni/native/build/get-version.sh
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/build/get-version.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/build/get-version.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
 #
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
 # extract version numbers from a header file
 #
 # USAGE: get-version.sh CMD VERSION_HEADER PREFIX

Modified: trunk/tomcat5.5/connectors/jni/native/build/lineends.pl
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/build/lineends.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/build/lineends.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/local/bin/perl
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
 #
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#
 #  Heuristically converts line endings to the current OS's preferred format
 #  
 #  All existing line endings must be identical (e.g. lf's only, or even

Modified: trunk/tomcat5.5/connectors/jni/native/build/mkdir.sh
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/build/mkdir.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/build/mkdir.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,22 @@
 #!/bin/sh
+
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 ## 
 ##  mkdir.sh -- make directory hierarchy
 ##
@@ -7,9 +25,6 @@
 ##  Cleaned up for Apache's Autoconf-style Interface (APACI)
 ##  by Ralf S. Engelschall <rse at apache.org>
 ##
-#
-# This script falls under the Apache License.
-# See http://www.apache.org/docs/LICENSE
 
 
 umask 022

Modified: trunk/tomcat5.5/connectors/jni/native/build/rpm/tcnative.spec.in
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/build/rpm/tcnative.spec.in	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/build/rpm/tcnative.spec.in	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
 
 %define tcnver 1
 

Modified: trunk/tomcat5.5/connectors/jni/native/build/tcnative.m4
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/build/tcnative.m4	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/build/tcnative.m4	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 dnl
 dnl TCN_FIND_APR: figure out where APR is located
 dnl
@@ -9,6 +26,20 @@
     AC_MSG_ERROR(APR could not be located. Please use the --with-apr option.)
   fi
 
+  sapr_pversion="`$apr_config --version`"
+  if test -z "$sapr_pversion"; then
+    AC_MSG_ERROR(APR config could not be located. Please use the --with-apr option.)
+  fi
+  sapr_version="`echo $sapr_pversion|sed -e 's/\([a-z]*\)$/.\1/'`"
+  IFS=.; set $sapr_version; IFS=' '
+  if test "${1}" -lt "1"; then
+    AC_MSG_ERROR(You need APR version 1.2.1 or newer installed.)
+  else
+    if test "${2}" -lt "2"; then
+      AC_MSG_ERROR(You need APR version 1.2.1 or newer installed.)
+    fi
+  fi
+
   APR_BUILD_DIR="`$apr_config --installbuilddir`"
 
   dnl make APR_BUILD_DIR an absolute directory (we'll need it in the
@@ -226,118 +257,132 @@
 dnl preference to "--with-ssl=<path>" if it was specified.
 dnl
 AC_DEFUN(TCN_CHECK_SSL_TOOLKIT,[
-  dnl initialise the variables we use
-  tcn_ssltk_base=""
-  tcn_ssltk_inc=""
-  tcn_ssltk_lib=""
-  tcn_ssltk_type=""
-  AC_ARG_WITH(ssl, TCN_HELP_STRING(--with-ssl=DIR,OpenSSL SSL/TLS toolkit), [
-    dnl If --with-ssl specifies a directory, we use that directory or fail
-    if test "x$withval" != "xyes" -a "x$withval" != "x"; then
-      dnl This ensures $withval is actually a directory and that it is absolute
-      tcn_ssltk_base="`cd $withval ; pwd`"
-    fi
-  ])
-  if test "x$tcn_ssltk_base" = "x"; then
-    AC_MSG_RESULT(none)
-  else
-    AC_MSG_RESULT($tcn_ssltk_base)
-  fi
+OPENSSL_WARNING=
+AC_MSG_CHECKING(for OpenSSL library)
+AC_ARG_WITH(ssl,
+[  --with-ssl[=PATH]   Build with OpenSSL [yes|no|path]],
+    use_openssl="$withval", use_openssl="auto")
 
-  dnl Run header and version checks
-  saved_CPPFLAGS=$CPPFLAGS
-  if test "x$tcn_ssltk_base" != "x"; then
-    tcn_ssltk_inc="-I$tcn_ssltk_base/include"
-    CPPFLAGS="$CPPFLAGS $tcn_ssltk_inc"
-  fi
+openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
+if test "$use_openssl" = "auto"
+then
+    for d in $openssldirs
+    do
+        if test -f $d/include/openssl/opensslv.h
+        then
+            use_openssl=$d
+            break
+        fi
+    done
+fi
+case "$use_openssl" in
+    no)
+        AC_MSG_RESULT(no)
+        TCN_OPENSSL_INC=""
+        USE_OPENSSL=""
+        ;;
+    auto)
+        TCN_OPENSSL_INC=""
+        USE_OPENSSL=""
+        AC_MSG_RESULT(not found)
+        ;;
+    *)
+        if test "$use_openssl" = "yes"
+        then
+            # User did not specify a path - guess it
+            for d in $openssldirs
+            do
+                if test -f $d/include/openssl/opensslv.h
+                then
+                    use_openssl=$d
+                    break
+                fi
+            done
+            if test "$use_openssl" = "yes"
+            then
+                AC_MSG_RESULT(not found)
+                AC_MSG_ERROR(
+[OpenSSL was not found in any of $openssldirs; use --with-ssl=/path])
+            fi
+        fi
+        USE_OPENSSL='-DOPENSSL'
 
-  if test "x$tcn_ssltk_type" = "x"; then
-    AC_MSG_CHECKING(for OpenSSL version)
-    dnl First check for manditory headers
-    AC_CHECK_HEADERS([openssl/opensslv.h], [tcn_ssltk_type="openssl"], [])
-    if test "$tcn_ssltk_type" = "openssl"; then
-      dnl so it's OpenSSL - test for a good version
-      AC_TRY_COMPILE([#include <openssl/opensslv.h>],[
-#if !defined(OPENSSL_VERSION_NUMBER)
-  #error "Missing openssl version"
-#endif
-#if  (OPENSSL_VERSION_NUMBER < 0x0090701f)
-  #error "Unsuported openssl version " OPENSSL_VERSION_TEXT
-#endif],
-      [AC_MSG_RESULT(OK)],
-      [dnl Unsuported OpenSSL version
-         AC_MSG_ERROR([Unsupported OpenSSL version. Use 0.9.7a or higher version])
-      ])
-      dnl Look for additional, possibly missing headers
-      AC_CHECK_HEADERS(openssl/engine.h)
-      if test -n "$PKGCONFIG"; then
-        $PKGCONFIG openssl
-        if test $? -eq 0; then
-          tcn_ssltk_inc="$tcn_ssltk_inc `$PKGCONFIG --cflags-only-I openssl`"
-          CPPFLAGS="$CPPFLAGS $tcn_ssltk_inc"
+        if test "$use_openssl" = "/usr"
+        then
+            TCN_OPENSSL_INC=""
+            TCN_OPENSSL_LIBS="-lssl -lcrypto"
+        else
+            TCN_OPENSSL_INC="-I$use_openssl/include"
+            case $host in
+            *-solaris*)
+                TCN_OPENSSL_LIBS="-L$use_openssl/lib -R$use_openssl/lib -lssl -lcrypto"
+                ;;
+            *-hp-hpux*)
+                TCN_OPENSSL_LIBS="-L$use_openssl/lib -Wl,+b: -lssl -lcrypto"
+                ;;
+            *linux*)
+                TCN_OPENSSL_LIBS="-L$use_openssl/lib --Wl,-rpath,$use_openssl/lib -lssl -lcrypto"
+                ;;
+            *)
+                TCN_OPENSSL_LIBS="-L$use_openssl/lib -lssl -lcrypto"
+                ;;
+            esac
         fi
-      fi
-    else
-      AC_MSG_RESULT([no OpenSSL headers found])
-    fi
-  fi
-  if test "$tcn_ssltk_type" != "openssl"; then
-    AC_MSG_ERROR([... No OpenSSL headers found])
-  fi
-  dnl restore
-  CPPFLAGS=$saved_CPPFLAGS
-  if test "x$tcn_ssltk_type" = "x"; then
-    AC_MSG_ERROR([...No recognized SSL/TLS toolkit detected])
-  fi
+        AC_MSG_RESULT(using openssl from $use_openssl/lib and $use_openssl/include)
 
-  dnl Run library and function checks
-  saved_LDFLAGS=$LDFLAGS
-  saved_LIBS=$LIBS
-  if test "x$tcn_ssltk_base" != "x"; then
-    if test -d "$tcn_ssltk_base/lib64"; then
-      tcn_ssltk_lib="$tcn_ssltk_base/lib64"
-    elif test -d "$tcn_ssltk_base/lib"; then
-      tcn_ssltk_lib="$tcn_ssltk_base/lib"
-    else
-      tcn_ssltk_lib="$tcn_ssltk_base"
-    fi
-    LDFLAGS="$LDFLAGS -L$tcn_ssltk_lib"
-  fi
-  dnl make sure "other" flags are available so libcrypto and libssl can link
-  LIBS="$LIBS `$apr_config --libs`"
-  liberrors=""
-  if test "$tcn_ssltk_type" = "openssl"; then
-    AC_CHECK_LIB(crypto, SSLeay_version, [], [liberrors="yes"])
-    AC_CHECK_LIB(ssl, SSL_CTX_new, [], [liberrors="yes"])
-    AC_CHECK_FUNCS(ENGINE_init)
-    AC_CHECK_FUNCS(ENGINE_load_builtin_engines)
-  else
-    AC_CHECK_LIB(sslc, SSLC_library_version, [], [liberrors="yes"])
-    AC_CHECK_LIB(sslc, SSL_CTX_new, [], [liberrors="yes"])
-    AC_CHECK_FUNCS(SSL_set_state)
-  fi
-  AC_CHECK_FUNCS(SSL_set_cert_store)
-  dnl restore
-  LDFLAGS=$saved_LDFLAGS
-  LIBS=$saved_LIBS
-  if test "x$liberrors" != "x"; then
-    AC_MSG_ERROR([... Error, SSL/TLS libraries were missing or unusable])
-  fi
+        saved_cflags="$CFLAGS"
+        saved_libs="$LIBS"
+        CFLAGS="$CFLAGS $TCN_OPENSSL_INC"
+        LIBS="$LIBS $TCN_OPENSSL_LIBS"
+         
+AC_ARG_ENABLE(openssl-version-check,
+[AC_HELP_STRING([--enable-openssl-version-check],
+        [Check OpenSSL Version @<:@default=yes@:>@])])
+case "$enable_openssl_version_check" in
+yes|'')
+        AC_MSG_CHECKING(OpenSSL library version)
+        AC_TRY_RUN([
+#include <stdio.h>
+#include <openssl/opensslv.h>
+int main() {
+        if ((OPENSSL_VERSION_NUMBER >= 0x0090701fL &&
+         OPENSSL_VERSION_NUMBER < 0x00908000L) ||
+         OPENSSL_VERSION_NUMBER >= 0x0090802fL)
+            return (0);
+    printf("\n\nFound   OPENSSL_VERSION_NUMBER %#010x\n",
+        OPENSSL_VERSION_NUMBER);
+    printf("Require OPENSSL_VERSION_NUMBER 0x0090701f or greater (0.9.7a)\n"
+           "Require OPENSSL_VERSION_NUMBER 0x0090802f or greater (0.9.8a)\n\n");
+        return (1);
+}
+        ],
+        [AC_MSG_RESULT(ok)],
+        [AC_MSG_RESULT(not compatible)
+            OPENSSL_WARNING=yes
+        ],
+        [AC_MSG_RESULT(assuming target platform has compatible version)])
+;;
+no)
+    AC_MSG_RESULT(Skipped OpenSSL version check)
+;;
+esac
 
-  dnl (b) hook up include paths
-  if test "x$tcn_ssltk_inc" != "x"; then
-    APR_ADDTO(TCNATIVE_PRIV_INCLUDES, [$tcn_ssltk_inc])
-  fi
-  dnl (c) hook up linker paths
-  if test "x$tcn_ssltk_lib" != "x"; then
-    APR_ADDTO(TCNATIVE_LDFLAGS, ["-L$tcn_ssltk_lib"])
-  fi
-
-  dnl Adjust configuration based on what we found above.
-  dnl (a) define preprocessor symbols
-  if test "$tcn_ssltk_type" = "openssl"; then
-    APR_SETVAR(SSL_LIBS, [-lssl -lcrypto])
+        AC_MSG_CHECKING(for OpenSSL DSA support)
+        if test -f $use_openssl/include/openssl/dsa.h
+        then
+            AC_DEFINE(HAVE_OPENSSL_DSA)
+            AC_MSG_RESULT(yes)
+        else
+            AC_MSG_RESULT(no)
+        fi
+        CFLAGS="$saved_cflags"
+        LIBS="$saved_libs"
+        ;;
+esac
+if test "x$USE_OPENSSL" != "x"
+then
+    APR_ADDTO(TCNATIVE_PRIV_INCLUDES, [$TCN_OPENSSL_INC])
+    APR_ADDTO(TCNATIVE_LDFLAGS, [$TCN_OPENSSL_LIBS])
     APR_ADDTO(CFLAGS, [-DHAVE_OPENSSL])
-  fi
-  AC_SUBST(SSL_LIBS)
+fi
 ])

Modified: trunk/tomcat5.5/connectors/jni/native/build.conf
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/build.conf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/build.conf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,21 @@
 #
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+#
 # Configuration file for APRJAVA. Used by APR/build/gen-build.py
 #
 

Modified: trunk/tomcat5.5/connectors/jni/native/buildconf
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/buildconf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/buildconf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,7 +19,7 @@
 
 # Default place to look for apr source.  Can be overridden with 
 #   --with-apr=[directory]
-apr_src_dir=../apr
+apr_src_dir=`pwd`/srclib/apr-1.2.7
 
 while test $# -gt 0 
 do

Modified: trunk/tomcat5.5/connectors/jni/native/config.layout
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/config.layout	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/config.layout	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 ##
 ##  config.layout -- Pre-defined Installation Path Layouts
 ##

Modified: trunk/tomcat5.5/connectors/jni/native/configure.in
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/configure.in	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/configure.in	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 dnl
 dnl Process this file with autoconf to produce a configure script
 dnl

Modified: trunk/tomcat5.5/connectors/jni/native/include/tcn_version.h
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/include/tcn_version.h	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/include/tcn_version.h	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /*
  *
  * @author Mladen Turk
- * @version $Revision: 475841 $, $Date: 2006-11-16 11:05:18 -0700 (Thu, 16 Nov 2006) $
+ * @version $Revision: 562478 $, $Date: 2007-08-03 08:33:51 -0600 (Fri, 03 Aug 2007) $
  */
 
 #ifndef TCN_VERSION_H
@@ -69,7 +69,7 @@
 #define TCN_MINOR_VERSION       1
 
 /** patch level */
-#define TCN_PATCH_VERSION       8
+#define TCN_PATCH_VERSION       12
 
 /**
  *  This symbol is defined for internal, "development" copies of TCN. This

Modified: trunk/tomcat5.5/connectors/jni/native/os/unix/system.c
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/os/unix/system.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/os/unix/system.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /*
  *
  * @author Mladen Turk
- * @version $Revision: 466585 $, $Date: 2006-10-21 16:16:34 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 523564 $, $Date: 2007-03-29 07:22:47 +0200 (Thu, 29 Mar 2007) $
  */
 
 #include "apr.h"
@@ -95,7 +95,7 @@
     else if (type == 6)
         return JNI_TRUE;
 #endif
-#if defined(__FreeBSD__) || defined(__NetBSD__)
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
     else if (type == 7)
         return JNI_TRUE;
 #endif

Modified: trunk/tomcat5.5/connectors/jni/native/os/win32/libtcnative.rc
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/os/win32/libtcnative.rc	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/os/win32/libtcnative.rc	2007-10-03 19:12:01 UTC (rev 4300)
@@ -3,23 +3,26 @@
 LANGUAGE 0x9,0x1
 1 11 logmessages.bin
 
-#define TCN_COPYRIGHT "Copyright 2000-2006 The Apache Software " \
+#define TCN_COPYRIGHT "Copyright 2000-2007 The Apache Software " \
                       "Foundation or its licensors, as applicable."
 
-#define TCN_LICENSE "Licensed under the Apache License, Version 2.0 " \
-                    "(the ""License""); you may not use this file except " \
-                    "in compliance with the License.  You may obtain a " \
-                    "copy of the License at\r\n\r\n" \
-                    "http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n" \
-                    "Unless required by applicable law or agreed to in " \
-                    "writing, software distributed under the License is " \
-                    "distributed on an ""AS IS"" BASIS, WITHOUT " \
-                    "WARRANTIES OR CONDITIONS OF ANY KIND, either " \
-                    "express or implied.  See the License for the " \
-                    "specific language governing permissions and " \
-                    "limitations under the License."
+#define TCN_LICENSE  "Licensed to the Apache Software Foundation (ASF) under " \
+                     "one or more contributor license agreements.  See the " \
+                     "NOTICE file distributed with this work for additional "\
+                     "information regarding copyright ownership. The ASF " \
+                     "licenses this file to You under the Apache License, " \
+                     "Version 2.0 (the "License"); you may not use this file " \
+                     "except in compliance with the License.  You may obtain " \
+                     "a copy of the License at\r\n\r\n"
+                     "http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n" \
+                     "Unless required by applicable law or agreed to in " \
+                     "writing, software distributed under the License is " \
+                     "distributed on an "AS IS" BASIS, WITHOUT WARRANTIES " \
+                     "OR CONDITIONS OF ANY KIND, either express or implied. "\
+                     "See the License for the specific language governing " \
+                     "permissions and limitations under the License."
 
-#define TCN_VERISON "1.1.8"
+#define TCN_VERISON "1.1.12"
 1000 ICON "apache.ico"
 
 1001 DIALOGEX 0, 0, 252, 51
@@ -35,8 +38,8 @@
 END
 
 1 VERSIONINFO
- FILEVERSION 1,1,8,0
- PRODUCTVERSION 1,1,8,0
+ FILEVERSION 1,1,12,0
+ PRODUCTVERSION 1,1,12,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L

Modified: trunk/tomcat5.5/connectors/jni/native/os/win32/system.c
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/os/win32/system.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/os/win32/system.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /*
  *
  * @author Mladen Turk
- * @version $Revision: 479112 $, $Date: 2006-11-25 03:22:33 -0700 (Sat, 25 Nov 2006) $
+ * @version $Revision: 524383 $, $Date: 2007-03-31 09:34:01 +0200 (Sat, 31 Mar 2007) $
  */
 
 #ifndef _WIN32_WINNT
@@ -111,8 +111,6 @@
          *  or FreeLibrary.
          */
         case DLL_PROCESS_DETACH:
-            /* Make sure the library is always terminated */
-            apr_terminate();
             if (h_kernel)
                 FreeLibrary(h_kernel);
             if (h_ntdll)

Modified: trunk/tomcat5.5/connectors/jni/native/src/jnilib.c
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/src/jnilib.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/src/jnilib.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /*
  *
  * @author Mladen Turk
- * @version $Revision: 466585 $, $Date: 2006-10-21 16:16:34 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 524383 $, $Date: 2007-03-31 09:34:01 +0200 (Sat, 31 Mar 2007) $
  */
 
 #include "tcn.h"
@@ -49,6 +49,8 @@
 JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved)
 {
     JNIEnv *env;
+    apr_version_t apv;
+    int apvn;
 
     UNREFERENCED(reserved);
     if ((*vm)->GetEnv(vm, (void **)&env, JNI_VERSION_1_4)) {
@@ -56,6 +58,18 @@
     }
     tcn_global_vm = vm;
 
+    /* Before doing anything else check if we have a valid
+     * APR version. We need version 1.2.1 as minimum.
+     */
+    apr_version(&apv);
+    apvn = apv.major * 1000 + apv.minor * 100 + apv.patch;
+    if (apvn < 1201) {
+        tcn_Throw(env, "Unupported APR version (%s)",
+                  apr_version_string());
+        return JNI_ERR;
+    }
+
+
     /* Initialize global java.lang.String class */
     TCN_LOAD_CLASS(env, jString_class, "java/lang/String", JNI_ERR);
     TCN_LOAD_CLASS(env, jFinfo_class, TCN_FINFO_CLASS, JNI_ERR);
@@ -79,7 +93,6 @@
 #else
     tcn_parent_pid = getppid();
 #endif
-    apr_initialize();
 
     return  JNI_VERSION_1_4;
 }
@@ -95,10 +108,12 @@
     if ((*vm)->GetEnv(vm, (void **)&env, JNI_VERSION_1_2)) {
         return;
     }
-    TCN_UNLOAD_CLASS(env, jString_class);
-    TCN_UNLOAD_CLASS(env, jFinfo_class);
-    TCN_UNLOAD_CLASS(env, jAinfo_class);
-    apr_terminate();
+    if (tcn_global_pool) {
+        TCN_UNLOAD_CLASS(env, jString_class);
+        TCN_UNLOAD_CLASS(env, jFinfo_class);
+        TCN_UNLOAD_CLASS(env, jAinfo_class);
+        apr_terminate();
+    }
 }
 
 jstring tcn_new_stringn(JNIEnv *env, const char *str, size_t l)
@@ -207,6 +222,7 @@
 
     UNREFERENCED_STDARGS;
     if (!tcn_global_pool) {
+        apr_initialize();
         if (apr_pool_create(&tcn_global_pool, NULL) != APR_SUCCESS) {
             return JNI_FALSE;
         }
@@ -219,18 +235,20 @@
 {
 
     UNREFERENCED_STDARGS;
-    if (tcn_global_pool) {
+    if (tcn_global_pool) {        
+        apr_pool_t *p = tcn_global_pool;
+        tcn_global_pool = NULL;
 #ifdef TCN_DO_STATISTICS
         fprintf(stderr, "APR Statistical data ....\n");
 #endif
-        apr_pool_destroy(tcn_global_pool);
-        tcn_global_pool = NULL;
+        apr_pool_destroy(p);
 #ifdef TCN_DO_STATISTICS
         sp_poll_dump_statistics();
         sp_network_dump_statistics();
         ssl_network_dump_statistics();
         fprintf(stderr, "APR Terminated\n");
 #endif
+        apr_terminate();
     }
 }
 

Modified: trunk/tomcat5.5/connectors/jni/native/src/multicast.c
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/src/multicast.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/src/multicast.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /*
  *
  * @author Mladen Turk
- * @version $Revision: 467206 $, $Date: 2006-10-23 20:45:46 -0600 (Mon, 23 Oct 2006) $
+ * @version $Revision: 525493 $, $Date: 2007-04-04 13:25:29 +0200 (Wed, 04 Apr 2007) $
  */
 
 #include "tcn.h"
@@ -58,8 +58,11 @@
                                              jlong sock, jboolean opt)
 {
     tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    apr_byte_t on = 0;
     UNREFERENCED_STDARGS;
-    return (jint)apr_mcast_loopback(s->sock, opt == JNI_TRUE ? 1 : 0);
+    if (opt)
+        on = 1;
+    return (jint)apr_mcast_loopback(s->sock, on);
 };
 
 TCN_IMPLEMENT_CALL(jint, Mulicast, ointerface)(TCN_STDARGS,

Modified: trunk/tomcat5.5/connectors/jni/native/src/network.c
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/src/network.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/src/network.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /*
  *
  * @author Mladen Turk
- * @version $Revision: 487043 $, $Date: 2006-12-14 00:14:15 -0700 (Thu, 14 Dec 2006) $
+ * @version $Revision: 562478 $, $Date: 2007-08-03 08:33:51 -0600 (Fri, 03 Aug 2007) $
  */
 
 #include "tcn.h"
@@ -173,6 +173,7 @@
                                           jlong pool)
 {
     apr_pool_t *p = J2P(pool, apr_pool_t *);
+    apr_pool_t *c = NULL;
     apr_socket_t *s = NULL;
     tcn_socket_t *a = NULL;
     apr_int32_t f, t;
@@ -182,19 +183,22 @@
     GET_S_FAMILY(f, family);
     GET_S_TYPE(t, type);
 
-    a = (tcn_socket_t *)apr_pcalloc(p, sizeof(tcn_socket_t));
+    TCN_THROW_IF_ERR(apr_pool_create(&c, p), c);
+
+    a = (tcn_socket_t *)apr_pcalloc(c, sizeof(tcn_socket_t));
     TCN_CHECK_ALLOCATED(a);
-    a->pool = p;
-    if (family >= 0)
+    TCN_THROW_IF_ERR(apr_pool_create(&a->child, c), a->child);
+    a->pool = c;
+
+    if (family >= 0) {
         a->net = &apr_socket_layer;
-    apr_pool_cleanup_register(p, (const void *)a,
+        TCN_THROW_IF_ERR(apr_socket_create(&s,
+                         f, t, protocol, c), a);
+    }
+    apr_pool_cleanup_register(c, (const void *)a,
                               sp_socket_cleanup,
                               apr_pool_cleanup_null);
 
-    if (family >= 0) {
-        TCN_THROW_IF_ERR(apr_socket_create(&s,
-                         f, t, protocol, p), a);
-    }
 #ifdef TCN_DO_STATISTICS
     sp_created++;
 #endif
@@ -202,10 +206,11 @@
     if (family >= 0)
         a->net = &apr_socket_layer;
     a->opaque   = s;
-    apr_pool_create(&a->child, a->pool);
 
     return P2J(a);
 cleanup:
+    if (c)
+        apr_pool_destroy(c);
     return 0;
 
 }
@@ -213,17 +218,18 @@
 TCN_IMPLEMENT_CALL(void, Socket, destroy)(TCN_STDARGS, jlong sock)
 {
     tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    apr_socket_t *as;
     UNREFERENCED_STDARGS;
     TCN_ASSERT(sock != 0);
 
+    as = s->sock;
+    s->sock = NULL;
     apr_pool_cleanup_kill(s->pool, s, sp_socket_cleanup);
     if (s->net && s->net->cleanup) {
         (*s->net->cleanup)(s->opaque);
         s->net = NULL;
     }
-    if (s->sock) {
-        apr_socket_t *as = s->sock;
-        s->sock = NULL;
+    if (as) {
         apr_socket_close(as);
     }
 
@@ -279,9 +285,12 @@
 {
     tcn_socket_t *s = J2P(sock, tcn_socket_t *);
     jint rv = APR_SUCCESS;
+    apr_socket_t *as;
     UNREFERENCED_STDARGS;
     TCN_ASSERT(sock != 0);
 
+    as = s->sock;
+    s->sock = NULL;
     apr_pool_cleanup_kill(s->pool, s, sp_socket_cleanup);
     if (s->child) {
         apr_pool_clear(s->child);
@@ -293,9 +302,7 @@
         rv = (*s->net->close)(s->opaque);
         s->net = NULL;
     }
-    if (s->sock) {
-        apr_socket_t *as = s->sock;
-        s->sock = NULL;
+    if (as) {
         rv = (jint)apr_socket_close(as);
     }
     return rv;
@@ -342,7 +349,7 @@
         a = (tcn_socket_t *)apr_pcalloc(p, sizeof(tcn_socket_t));
         TCN_CHECK_ALLOCATED(a);
         a->pool   = p;
-        apr_pool_cleanup_register(p, (const void *)a,
+        apr_pool_cleanup_register(a->pool, (const void *)a,
                                   sp_socket_cleanup,
                                   apr_pool_cleanup_null);
 
@@ -375,17 +382,18 @@
     UNREFERENCED(o);
     TCN_ASSERT(sock != 0);
 
-    TCN_THROW_IF_ERR(apr_pool_create(&p, s->pool), p);
+    TCN_THROW_IF_ERR(apr_pool_create(&p, s->child), p);
     if (s->net->type == TCN_SOCKET_APR) {
         TCN_ASSERT(s->sock != NULL);
         a = (tcn_socket_t *)apr_pcalloc(p, sizeof(tcn_socket_t));
         TCN_CHECK_ALLOCATED(a);
-        a->pool   = p;
-        apr_pool_cleanup_register(s->child, (const void *)a,
+        TCN_THROW_IF_ERR(apr_socket_accept(&n, s->sock, p), n);
+
+        a->pool = p;
+        apr_pool_cleanup_register(a->pool, (const void *)a,
                                   sp_socket_cleanup,
                                   apr_pool_cleanup_null);
 
-        TCN_THROW_IF_ERR(apr_socket_accept(&n, s->sock, p), n);
     }
     else {
         tcn_ThrowAPRException(e, APR_ENOTIMPL);
@@ -401,6 +409,8 @@
     }
     return P2J(a);
 cleanup:
+    if (p && s->sock)
+        apr_pool_destroy(p);
     return 0;
 }
 
@@ -530,6 +540,40 @@
     }
 }
 
+TCN_IMPLEMENT_CALL(jint, Socket, sendib)(TCN_STDARGS, jlong sock,
+                                         jobject buf, jint offset, jint len)
+{
+    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    apr_size_t nbytes = (apr_size_t)len;
+    char *bytes;
+    apr_status_t ss = APR_SUCCESS;
+
+    UNREFERENCED(o);
+    if (!sock) {
+        tcn_ThrowAPRException(e, APR_ENOTSOCK);
+        return -(jint)APR_ENOTSOCK;
+    }
+    TCN_ASSERT(s->opaque != NULL);
+    TCN_ASSERT(buf != NULL);
+#ifdef TCN_DO_STATISTICS
+    sp_max_send = TCN_MAX(sp_max_send, nbytes);
+    sp_min_send = TCN_MIN(sp_min_send, nbytes);
+    sp_tot_send += nbytes;
+    sp_num_send++;
+#endif
+
+    bytes  = (char *)(*e)->GetDirectBufferAddress(e, buf);
+
+    ss = (*s->net->send)(s->opaque, bytes + offset, &nbytes);
+
+    if (ss == APR_SUCCESS)
+        return (jint)nbytes;
+    else {
+        TCN_ERROR_WRAP(ss);
+        return -(jint)ss;
+    }
+}
+
 TCN_IMPLEMENT_CALL(jint, Socket, sendbb)(TCN_STDARGS, jlong sock,
                                          jint offset, jint len)
 {
@@ -567,6 +611,37 @@
     }
 }
 
+TCN_IMPLEMENT_CALL(jint, Socket, sendibb)(TCN_STDARGS, jlong sock,
+                                          jint offset, jint len)
+{
+    tcn_socket_t *s = J2P(sock, tcn_socket_t *);
+    apr_size_t nbytes = (apr_size_t)len;
+    apr_status_t ss = APR_SUCCESS;
+
+    UNREFERENCED(o);
+    if (!sock) {
+        tcn_ThrowAPRException(e, APR_ENOTSOCK);
+        return -(jint)APR_ENOTSOCK;
+    }
+    TCN_ASSERT(s->opaque != NULL);
+    TCN_ASSERT(s->jsbbuff != NULL);
+#ifdef TCN_DO_STATISTICS
+    sp_max_send = TCN_MAX(sp_max_send, nbytes);
+    sp_min_send = TCN_MIN(sp_min_send, nbytes);
+    sp_tot_send += nbytes;
+    sp_num_send++;
+#endif
+
+    ss = (*s->net->send)(s->opaque, s->jsbbuff + offset, &nbytes);
+
+    if (ss == APR_SUCCESS)
+        return (jint)nbytes;
+    else {
+        TCN_ERROR_WRAP(ss);
+        return -(jint)nbytes;
+    }
+}
+
 TCN_IMPLEMENT_CALL(jint, Socket, sendv)(TCN_STDARGS, jlong sock,
                                         jobjectArray bufs)
 {

Modified: trunk/tomcat5.5/connectors/jni/native/src/proc.c
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/src/proc.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/src/proc.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /*
  *
  * @author Mladen Turk
- * @version $Revision: 466585 $, $Date: 2006-10-21 16:16:34 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 525491 $, $Date: 2007-04-04 13:19:28 +0200 (Wed, 04 Apr 2007) $
  */
  
 #include "tcn.h"
@@ -52,6 +52,7 @@
 
     if (data) {
         JNIEnv *env;
+        tcn_get_java_env(&env);
         if (!TCN_IS_NULL(env, cb->obj)) {
             TCN_UNLOAD_CLASS(env, cb->obj);
         }
@@ -178,14 +179,12 @@
     apr_pool_t *p = J2P(pool, apr_pool_t *);
     apr_proc_t *proc;
 
-
     UNREFERENCED_STDARGS;
     proc = (apr_proc_t *)apr_pcalloc(p, sizeof(apr_proc_t));
 
     return P2J(proc);
 }
 
-
 #define MAX_ARGS_SIZE 1024
 #define MAX_ENV_SIZE  1024
 

Modified: trunk/tomcat5.5/connectors/jni/native/src/ssl.c
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/src/ssl.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/src/ssl.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /*
  *
  * @author Mladen Turk
- * @version $Revision: 479965 $, $Date: 2006-11-28 02:47:42 -0700 (Tue, 28 Nov 2006) $
+ * @version $Revision: 525163 $, $Date: 2007-04-03 16:16:23 +0200 (Tue, 03 Apr 2007) $
  */
 
 #include "tcn.h"
@@ -257,16 +257,21 @@
 
     if (file == NULL)
         file = ssl_global_rand_file;
-
+    if (file && (strcmp(file, "builtin") == 0))
+        return -1;
     if (file == NULL)
         file = RAND_file_name(buffer, sizeof(buffer));
-    else if ((n = RAND_egd(file)) > 0) {
-        return n;
+    if (file) {
+        if (strncmp(file, "egd:", 4) == 0) {
+            if ((n = RAND_egd(file + 4)) > 0)
+                return n;
+            else
+                return -1;
+        }
+        if ((n = RAND_load_file(file, -1)) > 0)
+            return n;
     }
-    if (file && (n = RAND_load_file(file, -1)) > 0)
-        return n;
-    else
-        return -1;
+    return -1;
 }
 
 /*
@@ -492,7 +497,7 @@
     TCN_ALLOC_CSTRING(file);
     UNREFERENCED(o);
     if (J2S(file)) {
-        ssl_global_rand_file = apr_pstrdup(tcn_global_pool, J2S(file));        
+        ssl_global_rand_file = apr_pstrdup(tcn_global_pool, J2S(file));
     }
     TCN_FREE_CSTRING(file);
 }
@@ -569,7 +574,7 @@
         if (bi->init) {
             JNIEnv   *e = NULL;
             bi->init = 0;
-            tcn_get_java_env(&e);            
+            tcn_get_java_env(&e);
             TCN_UNLOAD_CLASS(e, j->cb.obj);
         }
         OPENSSL_free(bi->ptr);
@@ -625,7 +630,7 @@
     if (b->init && in != NULL) {
         BIO_JAVA *j = (BIO_JAVA *)b->ptr;
         JNIEnv   *e = NULL;
-        tcn_get_java_env(&e);        
+        tcn_get_java_env(&e);
         ret = (*e)->CallIntMethod(e, j->cb.obj,
                                   j->cb.mid[2],
                                   tcn_new_string(e, in));

Modified: trunk/tomcat5.5/connectors/jni/native/src/sslcontext.c
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/src/sslcontext.c	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/src/sslcontext.c	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,7 +17,7 @@
 /** SSL Context wrapper
  *
  * @author Mladen Turk
- * @version $Revision: 479112 $, $Date: 2006-11-25 03:22:33 -0700 (Sat, 25 Nov 2006) $
+ * @version $Revision: 520518 $, $Date: 2007-03-20 19:48:25 +0100 (Tue, 20 Mar 2007) $
  */
 
 #include "tcn.h"
@@ -438,7 +438,8 @@
 {
     BIO *bio = NULL;
     EVP_PKEY *key = NULL;
-    void *cb_data = c->cb_data;
+    tcn_pass_cb_t *cb_data = c->cb_data;
+    int i;
 
     if ((bio = BIO_new(BIO_s_file())) == NULL) {
         return NULL;
@@ -449,17 +450,25 @@
     }
     if (!cb_data)
         cb_data = &tcn_password_callback;
-    key = PEM_read_bio_PrivateKey(bio, NULL,
-                (pem_password_cb *)SSL_password_callback,
-                cb_data);
+    for (i = 0; i < 3; i++) {
+        key = PEM_read_bio_PrivateKey(bio, NULL,
+                    (pem_password_cb *)SSL_password_callback,
+                    (void *)cb_data);
+        if (key)
+            break;
+        cb_data->password[0] = '\0';
+        BIO_ctrl(bio, BIO_CTRL_RESET, 0, NULL);
+    }
     BIO_free(bio);
     return key;
 }
 
-static X509 *load_pem_cert(const char *file)
+static X509 *load_pem_cert(tcn_ssl_ctxt_t *c, const char *file)
 {
     BIO *bio = NULL;
     X509 *cert = NULL;
+    tcn_pass_cb_t *cb_data = c->cb_data;
+    int i;
 
     if ((bio = BIO_new(BIO_s_file())) == NULL) {
         return NULL;
@@ -468,9 +477,15 @@
         BIO_free(bio);
         return NULL;
     }
-    cert = PEM_read_bio_X509_AUX(bio, NULL,
-                (pem_password_cb *)SSL_password_callback,
-                 NULL);
+    for (i = 0; i < 3; i++) {
+        cert = PEM_read_bio_X509_AUX(bio, NULL,
+                    (pem_password_cb *)SSL_password_callback,
+                    (void *)cb_data);
+        if (cert)
+            break;
+        cb_data->password[0] = '\0';
+        BIO_ctrl(bio, BIO_CTRL_RESET, 0, NULL);
+    }
     BIO_free(bio);
     return cert;
 }
@@ -530,7 +545,7 @@
         rv = JNI_FALSE;
         goto cleanup;
     }
-    if ((c->certs[idx] = load_pem_cert(cert_file)) == NULL) {
+    if ((c->certs[idx] = load_pem_cert(c, cert_file)) == NULL) {
         ERR_error_string(ERR_get_error(), err);
         tcn_Throw(e, "Unable to load certificate %s (%s)",
                   cert_file, err);
@@ -582,6 +597,7 @@
 {
     UNREFERENCED_STDARGS;
     UNREFERENCED(ctx);
+    return APR_ENOTIMPL;
 }
 
 TCN_IMPLEMENT_CALL(void, SSLContext, setContextId)(TCN_STDARGS, jlong ctx,

Added: trunk/tomcat5.5/connectors/jni/native/srclib/VERSIONS
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/srclib/VERSIONS	                        (rev 0)
+++ trunk/tomcat5.5/connectors/jni/native/srclib/VERSIONS	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,4 @@
+Use the following version of the libraries
+
+- APR 1.2.8, http://apr.apache.org
+- OpenSSL 0.9.8e, http://www.openssl.org

Modified: trunk/tomcat5.5/connectors/jni/native/tcnative.pc.in
===================================================================
--- trunk/tomcat5.5/connectors/jni/native/tcnative.pc.in	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/jni/native/tcnative.pc.in	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 libdir=@libdir@

Added: trunk/tomcat5.5/connectors/patch.txt
===================================================================
--- trunk/tomcat5.5/connectors/patch.txt	                        (rev 0)
+++ trunk/tomcat5.5/connectors/patch.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,26 @@
+Index: util/java/org/apache/tomcat/util/buf/B2CConverter.java
+===================================================================
+--- util/java/org/apache/tomcat/util/buf/B2CConverter.java	(revision 568320)
++++ util/java/org/apache/tomcat/util/buf/B2CConverter.java	(working copy)
+@@ -82,7 +82,7 @@
+     {
+         try {
+             // read from the reader
+-            while( true ) { // conv.ready() ) {
++            while( iis.available()>0 ) { // conv.ready() ) {
+                 int cnt=conv.read( result, 0, BUFFER_SIZE );
+                 if( cnt <= 0 ) {
+                     // End of stream ! - we may be in a bad state
+@@ -251,7 +251,12 @@
+     public  final int read() throws IOException {
+         return (pos < end ) ? (buf[pos++] & 0xff) : -1;
+     }
++    
++    public int available() throws IOException {
++        return end-pos;
++    }
+ 
++
+     // -------------------- Internal methods --------------------
+ 
+     void setBuffer( byte b[], int p, int l ) {

Added: trunk/tomcat5.5/connectors/procrun/bin/amd64/tomcat5.exe
===================================================================
(Binary files differ)


Property changes on: trunk/tomcat5.5/connectors/procrun/bin/amd64/tomcat5.exe
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/tomcat5.5/connectors/procrun/bin/amd64/tomcat5w.exe
===================================================================
(Binary files differ)


Property changes on: trunk/tomcat5.5/connectors/procrun/bin/amd64/tomcat5w.exe
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/tomcat5.5/connectors/procrun/bin/ia64/tomcat5.exe
===================================================================
(Binary files differ)


Property changes on: trunk/tomcat5.5/connectors/procrun/bin/ia64/tomcat5.exe
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: trunk/tomcat5.5/connectors/procrun/bin/ia64/tomcat5w.exe
===================================================================
(Binary files differ)


Property changes on: trunk/tomcat5.5/connectors/procrun/bin/ia64/tomcat5w.exe
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/tomcat5.5/connectors/procrun/bin/tomcat5.exe
===================================================================
(Binary files differ)

Modified: trunk/tomcat5.5/connectors/procrun/bin/tomcat5w.exe
===================================================================
(Binary files differ)

Added: trunk/tomcat5.5/connectors/testdata.rtf
===================================================================
--- trunk/tomcat5.5/connectors/testdata.rtf	                        (rev 0)
+++ trunk/tomcat5.5/connectors/testdata.rtf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,264 @@
+{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch13\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f13\fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt Arial Unicode MS};}
+{\f120\fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@SimSun;}{\f121\froman\fcharset238\fprq2 Times New Roman CE;}{\f122\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f124\froman\fcharset161\fprq2 Times New Roman Greek;}
+{\f125\froman\fcharset162\fprq2 Times New Roman Tur;}{\f126\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f127\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f128\froman\fcharset186\fprq2 Times New Roman Baltic;}
+{\f129\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;
+\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{
+\qj \li0\ri0\nowidctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs21\alang1025 \ltrch\fcs0 \fs21\lang1033\langfe2052\kerning2\loch\f0\hich\af0\dbch\af13\cgrid\langnp1033\langfenp2052 \snext0 Normal;}{\*\cs10 
+\additive \ssemihidden Default Paragraph Font;}{\*
+\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv 
+\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs20 \ltrch\fcs0 \fs20\lang1024\langfe1024\loch\f0\hich\af0\dbch\af13\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}
+{\*\latentstyles\lsdstimax156\lsdlockeddef0}{\*\rsidtbl \rsid6445326\rsid6898714\rsid14054303\rsid15871832}{\*\generator Microsoft Word 11.0.8134;}{\info
+{\upr{\title ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????}
+{\*\ud\uc0{\title {\uc1\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?}
+{\uc1\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?}
+{\uc1\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?}
+{\uc1\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?}
+{\uc1\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?\u20048 ?}}}}
+{\upr{\author ???}{\*\ud\uc0{\author {\uc1\u31243 ?\u27704 ?\u20840 ?}}}}{\operator BMC Software}{\creatim\yr2007\mo8\dy10\hr19\min46}{\revtim\yr2007\mo8\dy19\hr17\min11}{\version2}{\edmins118}{\nofpages5}{\nofwords585}{\nofchars3341}{\*\company ultra}
+{\nofcharsws3919}{\vern24611}{\*\password 00000000}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw11906\paperh16838\margl1800\margr1800\margt1440\margb1440\gutter0\ltrsect 
+\deftab420\widowctrl\ftnbj\aenddoc\donotembedsysfont0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\formshade\horzdoc\dgmargin\dghspace180\dgvspace156\dghorigin1800\dgvorigin1440
+\dghshow0\dgvshow2\jcompress\lnongrid\viewkind1\viewscale100\splytwnine\ftnlytwnine\htmautsp\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct\asianbrkrule\rsidroot15871832\newtblstyruls
+\nogrowautofit {\upr{\*\fchars !),.:\'3b?]\'7d\'a8\'b7?\'af??\'92\'94\'85:????>\'bb?????!"'),.:\'3b?]`|\'7d~?}{\*\ud\uc0{\*\fchars 
+!),.:\'3b?]\'7d\'a8\'b7{\uc1\u711 ?\u713 \'af\u8213 ?\u8214 ?\'92\'94\'85\u8758 :\u12289 ?\u12290 ?\u12291 ?\u12293 ?\u12297 >\u12299 \'bb\u12301 ?\u12303 ?\u12305 ?\u12309 ?\u12311 ?\u-255 !\u-254 "\u-249 '\u-247 )\u-244 ,\u-242 .\u-230 :\u-229 \'3b\u-225 ?\u-195 ]\u-192 `\u-164 |\u-163 \'7d\u-162 ~\u-32 ?}
+}}}{\upr{\*\lchars ([\'7b\'b7\'91\'93<\'ab?????(.[\'7b??}{\*\ud\uc0{\*\lchars ([\'7b\'b7\'91\'93{\uc1\u12296 <\u12298 \'ab\u12300 ?\u12302 ?\u12304 ?\u12308 ?\u12310 ?\u-248 (\u-242 .\u-197 [\u-165 \'7b\u-31 ?\u-27 ?}}}}\fet0{\*\wgrffmtfilter 013f}
+\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery851\footery992\colsx425\endnhere\sectlinegrid312\sectspecifyl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}
+{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}
+{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar
+\qj \li0\ri0\nowidctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs21\alang1025 \ltrch\fcs0 \fs21\lang1033\langfe2052\kerning2\loch\af0\hich\af0\dbch\af13\cgrid\langnp1033\langfenp2052 {\rtlch\fcs1 \af13 
+\ltrch\fcs0 \insrsid6898714 \hich\af0\dbch\af13\loch\f0 1}{\rtlch\fcs1 \af13 \ltrch\fcs0 \insrsid15871832\charrsid15871832 \loch\af0\hich\af0\dbch\f13 \uc2\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048
+\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 
+\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6
+\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\loch\af0\hich\af0\dbch\f13 \u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6
+\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6\u20048\'c0\'d6}{\rtlch\fcs1 
+\af0 \ltrch\fcs0 \insrsid6445326\charrsid15871832 
+\par }}

Modified: trunk/tomcat5.5/connectors/util/build.xml
===================================================================
--- trunk/tomcat5.5/connectors/util/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/util/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -65,17 +65,19 @@
         <echo message="-- skip.digester = ${skip.digester}" />
         <echo message="-- JDK14 = ${jdk1.4.present}"/>
         <echo message="-- JDK15 = ${jdk1.5.present}" />
+        <echo message="-- Michael was here" />
 
         <javac srcdir="java"
 	       destdir="${tomcat-util.build}/classes"
 	       deprecation="${compile.deprecation}"
-               source="${compile.source}"
+	       source="${compile.source}"
 	       debug="${compile.debug}"
 	       optimize="off"
 	       verbose="off"
-	       excludes="**/CVS/**">
+	       nowarn="true">
             <classpath refid="compile.classpath"/>
-            <exclude name="**/util/net/jsse/JSSE13*" />
+	    <exclude name="**/CVS/**" />
+	    <exclude name="**/JSSE13*.java" />
             <exclude name="**/util/net/jsse/*" unless="jsse.present"/>
             <exclude name="**/util/log/CommonLogHandler.java" unless="commons-logging.present"/>
             <exclude name="**/util/net/puretls/*" unless="puretls.present"/>

Modified: trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/buf/B2CConverter.java
===================================================================
--- trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/buf/B2CConverter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/buf/B2CConverter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -82,7 +82,7 @@
     {
         try {
             // read from the reader
-            while( true ) { // conv.ready() ) {
+            while( iis.available()>0 ) { // conv.ready() ) {
                 int cnt=conv.read( result, 0, BUFFER_SIZE );
                 if( cnt <= 0 ) {
                     // End of stream ! - we may be in a bad state
@@ -251,7 +251,12 @@
     public  final int read() throws IOException {
         return (pos < end ) ? (buf[pos++] & 0xff) : -1;
     }
+    
+    public int available() throws IOException {
+        return end-pos;
+    }
 
+
     // -------------------- Internal methods --------------------
 
     void setBuffer( byte b[], int p, int l ) {

Modified: trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/buf/UDecoder.java
===================================================================
--- trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/buf/UDecoder.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/buf/UDecoder.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -30,8 +30,10 @@
  */
 public final class UDecoder {
     
-    protected static final boolean ALLOW_ENCODED_SLASH = 
-        Boolean.valueOf(System.getProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "false")).booleanValue();
+    protected static final boolean ALLOW_ENCODED_SLASH = Boolean.valueOf(
+            System.getProperty(
+                    "org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH",
+                    "false")).booleanValue();
     
     public UDecoder() 
     {
@@ -49,53 +51,53 @@
     /** URLDecode, will modify the source.
      */
     public void convert( ByteChunk mb, boolean query )
-	throws IOException
+        throws IOException
     {
-	int start=mb.getOffset();
-	byte buff[]=mb.getBytes();
-	int end=mb.getEnd();
+        int start=mb.getOffset();
+        byte buff[]=mb.getBytes();
+        int end=mb.getEnd();
 
-	int idx= ByteChunk.indexOf( buff, start, end, '%' );
+        int idx= ByteChunk.indexOf( buff, start, end, '%' );
         int idx2=-1;
         if( query )
             idx2= ByteChunk.indexOf( buff, start, end, '+' );
-	if( idx<0 && idx2<0 ) {
-	    return;
-	}
+        if( idx<0 && idx2<0 ) {
+            return;
+        }
 
-	// idx will be the smallest positive inxes ( first % or + )
-	if( idx2 >= 0 && idx2 < idx ) idx=idx2;
-	if( idx < 0 ) idx=idx2;
+        // idx will be the smallest positive inxes ( first % or + )
+        if( idx2 >= 0 && idx2 < idx ) idx=idx2;
+        if( idx < 0 ) idx=idx2;
     
-	boolean noSlash = !(ALLOW_ENCODED_SLASH || query);
+        boolean noSlash = !(ALLOW_ENCODED_SLASH || query);
 
-	for( int j=idx; j<end; j++, idx++ ) {
-	    if( buff[ j ] == '+' && query) {
-		buff[idx]= (byte)' ' ;
-	    } else if( buff[ j ] != '%' ) {
-		buff[idx]= buff[j];
-	    } else {
-		// read next 2 digits
-		if( j+2 >= end ) {
-		    throw new CharConversionException("EOF");
-		}
-		byte b1= buff[j+1];
-		byte b2=buff[j+2];
-		if( !isHexDigit( b1 ) || ! isHexDigit(b2 ))
-		    throw new CharConversionException( "isHexDigit");
-		
-		j+=2;
-		int res=x2c( b1, b2 );
+        for( int j=idx; j<end; j++, idx++ ) {
+            if( buff[ j ] == '+' && query) {
+                buff[idx]= (byte)' ' ;
+            } else if( buff[ j ] != '%' ) {
+                buff[idx]= buff[j];
+            } else {
+                // read next 2 digits
+                if( j+2 >= end ) {
+                    throw new CharConversionException("EOF");
+                }
+                byte b1= buff[j+1];
+                byte b2=buff[j+2];
+                if( !isHexDigit( b1 ) || ! isHexDigit(b2 ))
+                    throw new CharConversionException( "isHexDigit");
+                
+                j+=2;
+                int res=x2c( b1, b2 );
                 if (noSlash && (res == '/')) {
                     throw new CharConversionException( "noSlash");
                 }
-		buff[idx]=(byte)res;
-	    }
-	}
+                buff[idx]=(byte)res;
+            }
+        }
 
-	mb.setEnd( idx );
-	
-	return;
+        mb.setEnd( idx );
+        
+        return;
     }
 
     // -------------------- Additional methods --------------------
@@ -105,7 +107,7 @@
      *  Includes converting  '+' to ' '.
      */
     public void convert( CharChunk mb )
-	throws IOException
+        throws IOException
     {
         convert(mb, true);
     }
@@ -113,57 +115,57 @@
     /** In-buffer processing - the buffer will be modified
      */
     public void convert( CharChunk mb, boolean query )
-	throws IOException
+        throws IOException
     {
-	//	log( "Converting a char chunk ");
-	int start=mb.getOffset();
-	char buff[]=mb.getBuffer();
-	int cend=mb.getEnd();
+        //        log( "Converting a char chunk ");
+        int start=mb.getOffset();
+        char buff[]=mb.getBuffer();
+        int cend=mb.getEnd();
 
-	int idx= CharChunk.indexOf( buff, start, cend, '%' );
+        int idx= CharChunk.indexOf( buff, start, cend, '%' );
         int idx2=-1;
         if( query )
             idx2= CharChunk.indexOf( buff, start, cend, '+' );
-	if( idx<0 && idx2<0 ) {
-	    return;
-	}
-	
-	if( idx2 >= 0 && idx2 < idx ) idx=idx2; 
-	if( idx < 0 ) idx=idx2;
+        if( idx<0 && idx2<0 ) {
+            return;
+        }
+        
+        if( idx2 >= 0 && idx2 < idx ) idx=idx2; 
+        if( idx < 0 ) idx=idx2;
     
-	boolean noSlash = !(ALLOW_ENCODED_SLASH || query);
-	for( int j=idx; j<cend; j++, idx++ ) {
-	    if( buff[ j ] == '+' && query ) {
-		buff[idx]=( ' ' );
-	    } else if( buff[ j ] != '%' ) {
-		buff[idx]=buff[j];
-	    } else {
-		// read next 2 digits
-		if( j+2 >= cend ) {
-		    // invalid
-		    throw new CharConversionException("EOF");
-		}
-		char b1= buff[j+1];
-		char b2=buff[j+2];
-		if( !isHexDigit( b1 ) || ! isHexDigit(b2 ))
-		    throw new CharConversionException("isHexDigit");
-		
-		j+=2;
-		int res=x2c( b1, b2 );
-		if (noSlash && (res == '/')) {
-		    throw new CharConversionException( "noSlash");
-            	}
-		buff[idx]=(char)res;
-	    }
-	}
-	mb.setEnd( idx );
+        boolean noSlash = !(ALLOW_ENCODED_SLASH || query);
+        for( int j=idx; j<cend; j++, idx++ ) {
+            if( buff[ j ] == '+' && query ) {
+                buff[idx]=( ' ' );
+            } else if( buff[ j ] != '%' ) {
+                buff[idx]=buff[j];
+            } else {
+                // read next 2 digits
+                if( j+2 >= cend ) {
+                    // invalid
+                    throw new CharConversionException("EOF");
+                }
+                char b1= buff[j+1];
+                char b2=buff[j+2];
+                if( !isHexDigit( b1 ) || ! isHexDigit(b2 ))
+                    throw new CharConversionException("isHexDigit");
+                
+                j+=2;
+                int res=x2c( b1, b2 );
+                if (noSlash && (res == '/')) {
+                    throw new CharConversionException( "noSlash");
+                    }
+                buff[idx]=(char)res;
+            }
+        }
+        mb.setEnd( idx );
     }
 
     /** URLDecode, will modify the source
      *  Includes converting  '+' to ' '.
      */
     public void convert(MessageBytes mb)
-	throws IOException
+        throws IOException
     {
         convert(mb, true);
     }
@@ -171,24 +173,24 @@
     /** URLDecode, will modify the source
      */
     public void convert(MessageBytes mb, boolean query)
-	throws IOException
+        throws IOException
     {
-	
-	switch (mb.getType()) {
-	case MessageBytes.T_STR:
-	    String strValue=mb.toString();
-	    if( strValue==null ) return;
-	    mb.setString( convert( strValue, query ));
-	    break;
-	case MessageBytes.T_CHARS:
-	    CharChunk charC=mb.getCharChunk();
-	    convert( charC, query );
-	    break;
-	case MessageBytes.T_BYTES:
-	    ByteChunk bytesC=mb.getByteChunk();
-	    convert( bytesC, query );
-	    break;
-	}
+        
+        switch (mb.getType()) {
+        case MessageBytes.T_STR:
+            String strValue=mb.toString();
+            if( strValue==null ) return;
+            mb.setString( convert( strValue, query ));
+            break;
+        case MessageBytes.T_CHARS:
+            CharChunk charC=mb.getCharChunk();
+            convert( charC, query );
+            break;
+        case MessageBytes.T_BYTES:
+            ByteChunk bytesC=mb.getByteChunk();
+            convert( bytesC, query );
+            break;
+        }
     }
 
     // XXX Old code, needs to be replaced !!!!
@@ -201,10 +203,10 @@
     public final String convert(String str, boolean query)
     {
         if (str == null)  return  null;
-	
-	if( (!query || str.indexOf( '+' ) < 0) && str.indexOf( '%' ) < 0 )
-	    return str;
-	
+        
+        if( (!query || str.indexOf( '+' ) < 0) && str.indexOf( '%' ) < 0 )
+            return str;
+        
         StringBuffer dec = new StringBuffer();    // decoded string output
         int strPos = 0;
         int strLen = str.length();
@@ -239,11 +241,11 @@
                 strPos++;
                 continue;
             } else if (metaChar == '%') {
-		// We throw the original exception - the super will deal with
-		// it
-		//                try {
-		dec.append((char)Integer.
-			   parseInt(str.substring(strPos + 1, strPos + 3),16));
+                // We throw the original exception - the super will deal with
+                // it
+                //                try {
+                dec.append((char)Integer.
+                           parseInt(str.substring(strPos + 1, strPos + 3),16));
                 strPos += 3;
             }
         }
@@ -254,27 +256,27 @@
 
 
     private static boolean isHexDigit( int c ) {
-	return ( ( c>='0' && c<='9' ) ||
-		 ( c>='a' && c<='f' ) ||
-		 ( c>='A' && c<='F' ));
+        return ( ( c>='0' && c<='9' ) ||
+                 ( c>='a' && c<='f' ) ||
+                 ( c>='A' && c<='F' ));
     }
     
     private static int x2c( byte b1, byte b2 ) {
-	int digit= (b1>='A') ? ( (b1 & 0xDF)-'A') + 10 :
-	    (b1 -'0');
-	digit*=16;
-	digit +=(b2>='A') ? ( (b2 & 0xDF)-'A') + 10 :
-	    (b2 -'0');
-	return digit;
+        int digit= (b1>='A') ? ( (b1 & 0xDF)-'A') + 10 :
+            (b1 -'0');
+        digit*=16;
+        digit +=(b2>='A') ? ( (b2 & 0xDF)-'A') + 10 :
+            (b2 -'0');
+        return digit;
     }
 
     private static int x2c( char b1, char b2 ) {
-	int digit= (b1>='A') ? ( (b1 & 0xDF)-'A') + 10 :
-	    (b1 -'0');
-	digit*=16;
-	digit +=(b2>='A') ? ( (b2 & 0xDF)-'A') + 10 :
-	    (b2 -'0');
-	return digit;
+        int digit= (b1>='A') ? ( (b1 & 0xDF)-'A') + 10 :
+            (b1 -'0');
+        digit*=16;
+        digit +=(b2>='A') ? ( (b2 & 0xDF)-'A') + 10 :
+            (b2 -'0');
+        return digit;
     }
 
 }

Modified: trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/ContentType.java
===================================================================
--- trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/ContentType.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/ContentType.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -29,30 +29,32 @@
  */
 public class ContentType {
 
-    // Basically return everything after ";charset="
-    // If no charset specified, use the HTTP default (ASCII) character set.
-    public static String getCharsetFromContentType(String type) {
-        if (type == null) {
-            return null;
-        }
-        int semi = type.indexOf(";");
-        if (semi == -1) {
-            return null;
-        }
-        int charsetLocation = type.indexOf("charset=", semi);
-        if (charsetLocation == -1) {
-            return null;
-        }
-	String afterCharset = type.substring(charsetLocation + 8);
-        // The charset value in a Content-Type header is allowed to be quoted
-        // and charset values can't contain quotes.  Just convert any quote
-        // chars into spaces and let trim clean things up.
-        afterCharset = afterCharset.replace('"', ' ');
-        String encoding = afterCharset.trim();
-        return encoding;
-    }
+    /**
+     * Parse the character encoding from the specified content type header.
+     * If the content type is null, or there is no explicit character encoding,
+     * <code>null</code> is returned.
+     *
+     * @param contentType a content type header
+     */
+    public static String getCharsetFromContentType(String contentType) {
 
+        if (contentType == null)
+            return (null);
+        int start = contentType.indexOf("charset=");
+        if (start < 0)
+            return (null);
+        String encoding = contentType.substring(start + 8);
+        int end = encoding.indexOf(';');
+        if (end >= 0)
+            encoding = encoding.substring(0, end);
+        encoding = encoding.trim();
+        if ((encoding.length() > 2) && (encoding.startsWith("\""))
+            && (encoding.endsWith("\"")))
+            encoding = encoding.substring(1, encoding.length() - 1);
+        return (encoding.trim());
 
+    }
+    
     /**
      * Returns true if the given content type contains a charset component,
      * false otherwise.

Modified: trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/Cookies.java
===================================================================
--- trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/Cookies.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/Cookies.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -249,9 +249,11 @@
             int endValue=startValue;
             
             cc=bytes[pos];
-            if(  cc== '\'' || cc=='"' ) {
-                startValue++;
-                endValue=indexOf( bytes, startValue, end, cc );
+            if(  cc=='"' ) {
+                endValue=findDelim3( bytes, startValue+1, end, cc );
+                if (endValue == -1) {
+                    endValue = findDelim2(bytes, startValue+1, end);
+                } else startValue++;
                 pos=endValue+1; // to skip to next cookie
              } else {
                 endValue=findDelim2( bytes, startValue, end );
@@ -335,27 +337,26 @@
         return off;
     }
 
-    public static int indexOf( byte bytes[], int off, int end, byte qq )
+    /*
+     *  search for cc but skip \cc as required by rfc2616
+     *  (according to rfc2616 cc should be ")
+     */
+    public static int findDelim3( byte bytes[], int off, int end, byte cc )
     {
         while( off < end ) {
             byte b=bytes[off];
-            if( b==qq )
+            if (b=='\\') {
+                off++;
+                off++;
+                continue;
+            }
+            if( b==cc )
                 return off;
             off++;
         }
-        return off;
+        return -1;
     }
 
-    public static int indexOf( byte bytes[], int off, int end, char qq )
-    {
-        while( off < end ) {
-            byte b=bytes[off];
-            if( b==qq )
-                return off;
-            off++;
-        }
-        return off;
-    }
     
     // XXX will be refactored soon!
     public static boolean equals( String s, byte b[], int start, int end) {
@@ -412,7 +413,7 @@
     /**
      *
      * Strips quotes from the start and end of the cookie string
-     * This conforms to RFC 2109
+     * This conforms to RFC 2965
      * 
      * @param value            a <code>String</code> specifying the cookie 
      *                         value (possibly quoted).
@@ -423,8 +424,7 @@
     private static String stripQuote( String value )
     {
         //        log("Strip quote from " + value );
-        if (((value.startsWith("\"")) && (value.endsWith("\""))) ||
-            ((value.startsWith("'") && (value.endsWith("'"))))) {
+        if (value.startsWith("\"") && value.endsWith("\"")) {
             try {
                 return value.substring(1,value.length()-1);
             } catch (Exception ex) { 

Modified: trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/ServerCookie.java
===================================================================
--- trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/ServerCookie.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/http/ServerCookie.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -43,15 +43,15 @@
     private MessageBytes name=MessageBytes.newInstance();
     private MessageBytes value=MessageBytes.newInstance();
 
-    private MessageBytes comment=MessageBytes.newInstance();    // ;Comment=VALUE
-    private MessageBytes domain=MessageBytes.newInstance();    // ;Domain=VALUE ...
+    private MessageBytes comment=MessageBytes.newInstance(); //;Comment=VALUE
+    private MessageBytes domain=MessageBytes.newInstance();  //;Domain=VALUE ...
 
-    private int maxAge = -1;	// ;Max-Age=VALUE
-				// ;Discard ... implied by maxAge < 0
+    private int maxAge = -1;        // ;Max-Age=VALUE
+                                // ;Discard ... implied by maxAge < 0
     // RFC2109: maxAge=0 will end a session
-    private MessageBytes path=MessageBytes.newInstance();	// ;Path=VALUE .
-    private boolean secure;	// ;Secure
-    private int version = 0;	// ;Version=1
+    private MessageBytes path=MessageBytes.newInstance();        // ;Path=VALUE
+    private boolean secure;        // ;Secure
+    private int version = 0;        // ;Version=1
 
     //XXX CommentURL, Port -> use notes ?
     
@@ -61,68 +61,68 @@
 
     public void recycle() {
         path.recycle();
-    	name.recycle();
-    	value.recycle();
-    	comment.recycle();
-    	maxAge=-1;
-    	path.recycle();
+            name.recycle();
+            value.recycle();
+            comment.recycle();
+            maxAge=-1;
+            path.recycle();
         domain.recycle();
-    	version=0;
-    	secure=false;
+            version=0;
+            secure=false;
     }
 
     public MessageBytes getComment() {
-	return comment;
+        return comment;
     }
 
     public MessageBytes getDomain() {
-	return domain;
+        return domain;
     }
 
     public void setMaxAge(int expiry) {
-	maxAge = expiry;
+        maxAge = expiry;
     }
 
     public int getMaxAge() {
-	return maxAge;
+        return maxAge;
     }
 
 
     public MessageBytes getPath() {
-	return path;
+        return path;
     }
 
     public void setSecure(boolean flag) {
-	secure = flag;
+        secure = flag;
     }
 
     public boolean getSecure() {
-	return secure;
+        return secure;
     }
 
     public MessageBytes getName() {
-	return name;
+        return name;
     }
 
     public MessageBytes getValue() {
-	return value;
+        return value;
     }
 
     public int getVersion() {
-	return version;
+        return version;
     }
 
 
     public void setVersion(int v) {
-	version = v;
+        version = v;
     }
 
 
     // -------------------- utils --------------------
 
     public String toString() {
-	return "Cookie " + getName() + "=" + getValue() + " ; "
-	    + getVersion() + " " + getPath() + " " + getDomain();
+        return "Cookie " + getName() + "=" + getValue() + " ; "
+            + getVersion() + " " + getPath() + " " + getDomain();
     }
     
     // Note -- disabled for now to allow full Netscape compatibility
@@ -130,44 +130,59 @@
     //
     // private static final String tspecials = "()<>@,;:\\\"/[]?={} \t";
     private static final String tspecials = ",; ";
+    private static final String tspecials2 = ",; \"";
 
     /*
      * Tests a string and returns true if the string counts as a
      * reserved token in the Java language.
      *
-     * @param value		the <code>String</code> to be tested
+     * @param value     the <code>String</code> to be tested
      *
-     * @return			<code>true</code> if the <code>String</code> is
-     *				a reserved token; <code>false</code>
-     *				if it is not
+     * @return          <code>true</code> if the <code>String</code> is
+     *                  a reserved token; <code>false</code>
+     *                  if it is not
      */
     public static boolean isToken(String value) {
-	if( value==null) return true;
-	int len = value.length();
+        if( value==null) return true;
+        int len = value.length();
 
-	for (int i = 0; i < len; i++) {
-	    char c = value.charAt(i);
+        for (int i = 0; i < len; i++) {
+            char c = value.charAt(i);
 
-	    if (c < 0x20 || c >= 0x7f || tspecials.indexOf(c) != -1)
-		return false;
-	}
-	return true;
+            if (c < 0x20 || c >= 0x7f || tspecials.indexOf(c) != -1)
+                return false;
+        }
+        return true;
     }
 
+    public static boolean isToken2(String value) {
+        if( value==null) return true;
+        int len = value.length();
+
+        for (int i = 0; i < len; i++) {
+            char c = value.charAt(i);
+
+            if (c < 0x20 || c >= 0x7f || tspecials2.indexOf(c) != -1)
+                return false;
+        }
+        return true;
+    }
+
+
     public static boolean checkName( String name ) {
-	if (!isToken(name)
-		|| name.equalsIgnoreCase("Comment")	// rfc2019
-		|| name.equalsIgnoreCase("Discard")	// 2019++
-		|| name.equalsIgnoreCase("Domain")
-		|| name.equalsIgnoreCase("Expires")	// (old cookies)
-		|| name.equalsIgnoreCase("Max-Age")	// rfc2019
-		|| name.equalsIgnoreCase("Path")
-		|| name.equalsIgnoreCase("Secure")
-		|| name.equalsIgnoreCase("Version")
-	    ) {
-	    return false;
-	}
-	return true;
+        if (!isToken(name)
+                || name.equalsIgnoreCase("Comment")        // rfc2019
+                || name.equalsIgnoreCase("Discard")        // 2019++
+                || name.equalsIgnoreCase("Domain")
+                || name.equalsIgnoreCase("Expires")        // (old cookies)
+                || name.equalsIgnoreCase("Max-Age")        // rfc2019
+                || name.equalsIgnoreCase("Path")
+                || name.equalsIgnoreCase("Secure")
+                || name.equalsIgnoreCase("Version")
+            ) {
+            return false;
+        }
+        return true;
     }
 
     // -------------------- Cookie parsing tools
@@ -177,99 +192,100 @@
      *  version
      */
     public String getCookieHeaderName() {
-	return getCookieHeaderName(version);
+        return getCookieHeaderName(version);
     }
 
     /** Return the header name to set the cookie, based on cookie
      *  version
      */
     public static String getCookieHeaderName(int version) {
-	if( dbg>0 ) log( (version==1) ? "Set-Cookie2" : "Set-Cookie");
+        if( dbg>0 ) log( (version==1) ? "Set-Cookie2" : "Set-Cookie");
         if (version == 1) {
-	    // RFC2109
-	    return "Set-Cookie";
-	    // XXX RFC2965 is not standard yet, and Set-Cookie2
-	    // is not supported by Netscape 4, 6, IE 3, 5 .
-	    // It is supported by Lynx, and there is hope 
-	    //	    return "Set-Cookie2";
+            // RFC2109
+            return "Set-Cookie";
+            // XXX RFC2965 is not standard yet, and Set-Cookie2
+            // is not supported by Netscape 4, 6, IE 3, 5 .
+            // It is supported by Lynx, and there is hope 
+            //            return "Set-Cookie2";
         } else {
-	    // Old Netscape
-	    return "Set-Cookie";
+            // Old Netscape
+            return "Set-Cookie";
         }
     }
 
-    private static final String ancientDate=DateTool.formatOldCookie(new Date(10000));
+    private static final String ancientDate =
+        DateTool.formatOldCookie(new Date(10000));
 
     public static void appendCookieValue( StringBuffer buf,
-					  int version,
-					  String name,
-					  String value,
-					  String path,
-					  String domain,
-					  String comment,
-					  int maxAge,
-					  boolean isSecure )
+                                          int version,
+                                          String name,
+                                          String value,
+                                          String path,
+                                          String domain,
+                                          String comment,
+                                          int maxAge,
+                                          boolean isSecure )
     {
         // this part is the same for all cookies
-	buf.append( name );
+        buf.append( name );
         buf.append("=");
-        maybeQuote(version, buf, value);
+        maybeQuote2(version, buf, value);
 
-	// XXX Netscape cookie: "; "
- 	// add version 1 specific information
-	if (version == 1) {
-	    // Version=1 ... required
-	    buf.append ("; Version=1");
+        // XXX Netscape cookie: "; "
+         // add version 1 specific information
+        if (version == 1) {
+            // Version=1 ... required
+            buf.append ("; Version=1");
 
-	    // Comment=comment
-	    if ( comment!=null ) {
-		buf.append ("; Comment=");
-		maybeQuote (version, buf, comment);
-	    }
-	}
-	
-	// add domain information, if present
+            // Comment=comment
+            if ( comment!=null ) {
+                buf.append ("; Comment=");
+                maybeQuote (version, buf, comment);
+            }
+        }
+        
+        // add domain information, if present
 
-	if (domain!=null) {
-	    buf.append("; Domain=");
-	    maybeQuote (version, buf, domain);
-	}
+        if (domain!=null) {
+            buf.append("; Domain=");
+            maybeQuote (version, buf, domain);
+        }
 
-	// Max-Age=secs/Discard ... or use old "Expires" format
-	if (maxAge >= 0) {
-	    if (version == 0) {
-		// XXX XXX XXX We need to send both, for
-		// interoperatibility (long word )
-		buf.append ("; Expires=");
-		// Wdy, DD-Mon-YY HH:MM:SS GMT ( Expires netscape format )
-		// To expire we need to set the time back in future
-		// ( pfrieden at dChain.com )
+        // Max-Age=secs/Discard ... or use old "Expires" format
+        if (maxAge >= 0) {
+            if (version == 0) {
+                // XXX XXX XXX We need to send both, for
+                // interoperatibility (long word )
+                buf.append ("; Expires=");
+                // Wdy, DD-Mon-YY HH:MM:SS GMT ( Expires netscape format )
+                // To expire we need to set the time back in future
+                // ( pfrieden at dChain.com )
                 if (maxAge == 0)
-		    buf.append( ancientDate );
-		else
+                    buf.append( ancientDate );
+                else
                     DateTool.formatOldCookie
                         (new Date( System.currentTimeMillis() +
                                    maxAge *1000L), buf,
                          new FieldPosition(0));
 
-	    } else {
-		buf.append ("; Max-Age=");
-		buf.append (maxAge);
-	    }
-	}
+            } else {
+                buf.append ("; Max-Age=");
+                buf.append (maxAge);
+            }
+        }
 
-	// Path=path
-	if (path!=null) {
-	    buf.append ("; Path=");
-	    maybeQuote (version, buf, path);
-	}
+        // Path=path
+        if (path!=null) {
+            buf.append ("; Path=");
+            maybeQuote (version, buf, path);
+        }
 
-	// Secure
-	if (isSecure) {
-	  buf.append ("; Secure");
-	}
-	
-	
+        // Secure
+        if (isSecure) {
+          buf.append ("; Secure");
+        }
+        
+        
     }
 
     public static void maybeQuote (int version, StringBuffer buf,
@@ -284,6 +300,20 @@
         }
     }
 
+    
+    public static void maybeQuote2 (int version, StringBuffer buf,
+            String value) {
+        // special case - a \n or \r  shouldn't happen in any case
+        if (isToken2(value)) {
+            buf.append(value);
+        } else {
+            buf.append('"');
+            buf.append(escapeDoubleQuotes(value));
+            buf.append('"');
+        }
+    }
+    
+    
     // log
     static final int dbg=1;
     public static void log(String s ) {
@@ -306,12 +336,14 @@
         }
 
         StringBuffer b = new StringBuffer();
+        char p = s.charAt(0);
         for (int i = 0; i < s.length(); i++) {
             char c = s.charAt(i);
-            if (c == '"')
+            if (c == '"' && p != '\\')
                 b.append('\\').append('"');
             else
                 b.append(c);
+            p = c;
         }
 
         return b.toString();

Modified: trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java
===================================================================
--- trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -66,9 +66,9 @@
                 }
             }
         } if(factory == null) {
-            if(logger.isDebugEnabled()) {
-                   logger.debug("Error getting JDK 14/15 factory - JDK 1.3 is not supported by Debian package !");
-            }
+	     if(logger.isDebugEnabled()) {
+                    logger.debug("Error getting JDK 14/15 factory - JDK 1.3 is not supported by Debian package !");
+             }
         }
     }
 

Modified: trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/threads/ThreadPool.java
===================================================================
--- trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/threads/ThreadPool.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/connectors/util/java/org/apache/tomcat/util/threads/ThreadPool.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -259,6 +259,10 @@
     }
 
     public int getSequence() {
+        return sequence;
+    }
+
+    public int incSequence() {
         return sequence++;
     }
 
@@ -637,7 +641,7 @@
             this.p = p;
             t = new ThreadWithAttributes(p, this);
             t.setDaemon(true);
-            t.setName(p.getName() + "-Processor" + p.getSequence());
+            t.setName(p.getName() + "-Processor" + p.incSequence());
             t.setPriority(p.getThreadPriority());
             p.addThread( t, this );
 	    noThData=true;

Modified: trunk/tomcat5.5/container/.classpath
===================================================================
--- trunk/tomcat5.5/container/.classpath	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/.classpath	2007-10-03 19:12:01 UTC (rev 4300)
@@ -12,7 +12,6 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="var" path="ANT_HOME/lib/ant.jar"/>
 	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/commons-logging-1.0.4/commons-logging-api.jar"/>
-	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/commons-modeler-1.1/commons-modeler.jar"/>
 	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/mx4j-3.0.1/lib/mx4j.jar"/>
 	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/commons-launcher-0.9/bin/commons-launcher.jar"/>
 	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/struts-1.2.7/lib/antlr.jar"/>
@@ -27,5 +26,6 @@
 	<classpathentry combineaccessrules="false" kind="src" path="/build"/>
 	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/servlet-api-2.4/lib/servlet-api.jar"/>
 	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/jsp-api-2.0/lib/jsp-api.jar"/>
+	<classpathentry kind="var" path="TOMCAT_LIBS_BASE/commons-modeler-2.0/commons-modeler-2.0.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>

Modified: trunk/tomcat5.5/container/catalina/build.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -393,7 +393,7 @@
     <echo message="compile.debug=${compile.debug}" />
     <echo message="compile.deprecation=${compile.deprecation}" />
     <echo message="compile.optimize=${compile.optimize}" />
-
+ 
     <echo message="--- Ant Flags ---" />
     <echo message="&lt;style&gt; task available (required)=${style.available}" />
 
@@ -401,6 +401,7 @@
     <echo message="jdk.1.2.present=${jdk.1.2.present}" />
     <echo message="jdk.1.3.present=${jdk.1.3.present}" />
     <echo message="jdk.1.4.present=${jdk.1.4.present}" />
+    <echo message="jdk.1.5.present=${jdk.1.5.present}" />
 
     <echo message="--- Source Dependencies ---" />
     <echo message="jtc.home.present=${jtc.home.present}" />
@@ -611,6 +612,7 @@
       <exclude name="org/apache/naming/factory/SendMailFactory.java"/>
       <exclude name="org/apache/catalina/launcher/**"/>
       <exclude name="org/apache/catalina/valves/SemaphoreValve.java"/>
+      <exclude name="org/apache/catalina/mbeans/JMXAdaptorLifecycleListener.java" />
     </javac>
     <tstamp>
         <format property="TODAY" pattern="MMM d yyyy" locale="en"/>
@@ -654,7 +656,9 @@
        unless="compile.jsse"/>
       <exclude name="org/apache/catalina/valves/SemaphoreValve.java" 
        unless="jdk.1.5.present"/>
-    </javac>
+      <exclude name="org/apache/catalina/mbeans/JMXAdaptorLifecycleListener.java" 
+       unless="jdk.1.5.present"/>
+   </javac>
 
     <!-- Copy static resource files -->
     <filter token="VERSION" value="${version}"/>
@@ -988,6 +992,7 @@
         <exclude name="org/apache/catalina/valves/RequestDumperValve.class" />
         <exclude name="org/apache/catalina/valves/RequestFilterValve.class" />
         <exclude name="org/apache/catalina/valves/SemaphoreValve.class" />
+        <exclude name="org/apache/catalina/mbeans/JMXAdaptorLifecycleListener.class" />
 
       </fileset>
     </jar>
@@ -1023,6 +1028,7 @@
         <include name="org/apache/catalina/valves/RequestDumperValve.class" />
         <include name="org/apache/catalina/valves/RequestFilterValve.class" />
         <include name="org/apache/catalina/valves/SemaphoreValve.class" />
+        <include name="org/apache/catalina/mbeans/JMXAdaptorLifecycleListener.class" />
 
         <!-- Javadoc and i18n exclusions -->
         <exclude name="**/package.html" />

Modified: trunk/tomcat5.5/container/catalina/src/bin/catalina-tasks.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/bin/catalina-tasks.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/bin/catalina-tasks.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
   XML file for importing Catalina ant tasks.
   <import file="${catalina.home}/bin/catalina-tasks.xml"/>
 -->
@@ -16,6 +33,7 @@
       <fileset file="${catalina.home}/common/lib/servlet-api.jar"/>
       <fileset file="${catalina.home}/common/lib/jsp-api.jar"/>
       <fileset file="${catalina.home}/server/lib/catalina-ant.jar"/>
+      <fileset file="${catalina.home}/common/lib/commons-el.jar"/>
     </classpath>
   </taskdef>
 </project>

Modified: trunk/tomcat5.5/container/catalina/src/bin/catalina.bat
===================================================================
--- trunk/tomcat5.5/container/catalina/src/bin/catalina.bat	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/bin/catalina.bat	2007-10-03 19:12:01 UTC (rev 4300)
@@ -21,7 +21,7 @@
 rem   JAVA_HOME       Must point at your Java Development Kit installation.
 rem                   Required to run the with the "debug" argument.
 rem
-rem   JRE_HOME        Must point at your Java Development Kit installation.
+rem   JRE_HOME        Must point at your Java Runtime installation.
 rem                   Defaults to JAVA_HOME if empty.
 rem
 rem   JAVA_OPTS       (Optional) Java runtime options used when the "start",
@@ -49,7 +49,7 @@
 rem                   -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,
 rem                       address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
 rem
-rem $Id: catalina.bat 498126 2007-01-20 15:38:39Z markt $
+rem $Id: catalina.bat 537517 2007-05-12 21:11:17Z markt $
 rem ---------------------------------------------------------------------------
 
 rem Guess CATALINA_HOME if not defined

Modified: trunk/tomcat5.5/container/catalina/src/bin/catalina.sh
===================================================================
--- trunk/tomcat5.5/container/catalina/src/bin/catalina.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/bin/catalina.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -164,7 +164,8 @@
   JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
 fi
 
-# juli LogManager disabled if running under libgcj (see bug #395167)
+# Set juli LogManager if it is present
+# Dont use juli LogManager when running with gcj
 if [ -r "$CATALINA_HOME"/bin/tomcat-juli.jar -a "$gcj" != "yes" ]; then
   JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file="$CATALINA_BASE/conf/logging.properties"
 fi

Modified: trunk/tomcat5.5/container/catalina/src/bin/catalina.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/bin/catalina.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/bin/catalina.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
   XML file for launching Catalina applications using ant.
 -->
 

Modified: trunk/tomcat5.5/container/catalina/src/bin/jmxaccessor-tasks.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/bin/jmxaccessor-tasks.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/bin/jmxaccessor-tasks.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
   XML file for importing Catalina jmx ant tasks.
   <import file="${catalina.home}/bin/jmxaccessor-tasks.xml"/>
 -->

Modified: trunk/tomcat5.5/container/catalina/src/conf/catalina.policy
===================================================================
--- trunk/tomcat5.5/container/catalina/src/conf/catalina.policy	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/conf/catalina.policy	2007-10-03 19:12:01 UTC (rev 4300)
@@ -8,7 +8,7 @@
 //
 // * Read access to the document root directory
 //
-// $Id: catalina.policy 393732 2006-04-13 06:32:25Z pero $
+// $Id: catalina.policy 543025 2007-05-31 02:44:18Z markt $
 // ============================================================================
 
 
@@ -114,27 +114,29 @@
     permission java.util.PropertyPermission "java.vendor", "read";
     permission java.util.PropertyPermission "java.vendor.url", "read";
     permission java.util.PropertyPermission "java.class.version", "read";
-	permission java.util.PropertyPermission "java.specification.version", "read";
-	permission java.util.PropertyPermission "java.specification.vendor", "read";
-	permission java.util.PropertyPermission "java.specification.name", "read";
+    permission java.util.PropertyPermission "java.specification.version", "read";
+    permission java.util.PropertyPermission "java.specification.vendor", "read";
+    permission java.util.PropertyPermission "java.specification.name", "read";
 
-	permission java.util.PropertyPermission "java.vm.specification.version", "read";
-	permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
-	permission java.util.PropertyPermission "java.vm.specification.name", "read";
-	permission java.util.PropertyPermission "java.vm.version", "read";
-	permission java.util.PropertyPermission "java.vm.vendor", "read";
-	permission java.util.PropertyPermission "java.vm.name", "read";
+    permission java.util.PropertyPermission "java.vm.specification.version", "read";
+    permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
+    permission java.util.PropertyPermission "java.vm.specification.name", "read";
+    permission java.util.PropertyPermission "java.vm.version", "read";
+    permission java.util.PropertyPermission "java.vm.vendor", "read";
+    permission java.util.PropertyPermission "java.vm.name", "read";
 
     // Required for OpenJMX
     permission java.lang.RuntimePermission "getAttribute";
 
-	// Allow read of JAXP compliant XML parser debug
-	permission java.util.PropertyPermission "jaxp.debug", "read";
+    // Allow read of JAXP compliant XML parser debug
+    permission java.util.PropertyPermission "jaxp.debug", "read";
 
     // Precompiled JSPs need access to this package.
     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";
-    
+
+    // Precompiled JSPs need access to this system property.
+    permission java.util.PropertyPermission "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
 };
 
 

Modified: trunk/tomcat5.5/container/catalina/src/conf/context.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/conf/context.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/conf/context.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- The contents of this file will be loaded for each web application -->
 <Context>
 

Modified: trunk/tomcat5.5/container/catalina/src/conf/server-minimal.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/conf/server-minimal.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/conf/server-minimal.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <Server port="8005" shutdown="SHUTDOWN">
 
   <GlobalNamingResources>

Modified: trunk/tomcat5.5/container/catalina/src/conf/server.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/conf/server.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/conf/server.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Example Server Configuration File -->
 <!-- Note that component elements are nested corresponding to their
      parent-child relationships with each other -->

Modified: trunk/tomcat5.5/container/catalina/src/conf/tomcat-users.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/conf/tomcat-users.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/conf/tomcat-users.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
   NOTE:  By default, no user is included in the "manager" role required
   to operate the "/manager" web application.  If you wish to use this app,
   you must define such a user - the username and password are arbitrary.

Modified: trunk/tomcat5.5/container/catalina/src/conf/web.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/conf/web.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/conf/web.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
@@ -134,7 +150,7 @@
   <!--                                                                      -->
   <!--   compiler            Which compiler Ant should use to compile JSP   -->
   <!--                       pages.  See the Ant documentation for more     -->
-  <!--                       information. [javac]                           -->
+  <!--                       information.                                   -->
   <!--                                                                      -->
   <!--   classdebuginfo      Should the class file be compiled with         -->
   <!--                       debugging information?  [true]                 -->
@@ -734,6 +750,10 @@
         <mime-type>audio/mpeg</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>mp4</extension>
+        <mime-type>video/mp4</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>mpa</extension>
         <mime-type>audio/x-mpeg</mime-type>
     </mime-mapping>
@@ -1087,6 +1107,10 @@
         <mime-type>application/vnd.wap.wmlscriptc</mime-type>
     </mime-mapping>
     <mime-mapping>
+        <extension>wmv</extension>
+        <mime-type>video/x-ms-wmv</mime-type>
+    </mime-mapping>
+    <mime-mapping>
         <extension>wrl</extension>
         <mime-type>model/vrml</mime-type>
     </mime-mapping>

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/authenticator/FormAuthenticator.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/authenticator/FormAuthenticator.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/authenticator/FormAuthenticator.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -50,7 +50,7 @@
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @version $Revision: 506433 $ $Date: 2007-02-12 05:29:23 -0700 (Mon, 12 Feb 2007) $
+ * @version $Revision: 536382 $ $Date: 2007-05-09 02:05:00 +0200 (Wed, 09 May 2007) $
  */
 
 public class FormAuthenticator
@@ -428,7 +428,14 @@
     
                 // Set content type
                 MessageBytes contentType = MessageBytes.newInstance();
-                contentType.setString("application/x-www-form-urlencoded");
+                
+                // If no content type specified, use default for POST
+                String savedContentType = saved.getContentType();
+                if (savedContentType == null) {
+                    savedContentType = "application/x-www-form-urlencoded";
+                }
+
+                contentType.setString(savedContentType);
                 request.getCoyoteRequest().setContentType(contentType);
             }
         }
@@ -488,6 +495,7 @@
                 body.append(buffer, 0, bytesRead);
             }
             saved.setBody(body);
+            saved.setContentType(request.getContentType());
         }
 
         saved.setMethod(request.getMethod());

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/authenticator/SavedRequest.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/authenticator/SavedRequest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/authenticator/SavedRequest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -39,7 +39,7 @@
  * internal collection classes is performed.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 536382 $ $Date: 2007-05-09 02:05:00 +0200 (Wed, 09 May 2007) $
  */
 
 public final class SavedRequest {
@@ -178,4 +178,18 @@
     public void setBody(ByteChunk body) {
         this.body = body;
     }
+    
+    
+    /**
+     * The content type of the request, used if this is a POST.
+     */
+    private String contentType = null;
+    
+    public String getContentType() {
+        return (this.contentType);
+    }
+    
+    public void setContentType(String contentType) {
+        this.contentType = contentType;
+    }
 }

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/CoyoteAdapter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -42,7 +42,7 @@
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @version $Revision: 507117 $ $Date: 2007-02-13 10:47:21 -0700 (Tue, 13 Feb 2007) $
+ * @version $Revision: 523135 $ $Date: 2007-03-28 03:36:22 +0200 (Wed, 28 Mar 2007) $
  */
 
 public class CoyoteAdapter
@@ -143,7 +143,7 @@
         }
 
         try {
-
+            req.getRequestProcessor().setWorkerThreadName(Thread.currentThread().getName());
             // Parse and set Catalina and configuration specific 
             // request parameters
             if ( postParseRequest(req, request, res, response) ) {
@@ -159,6 +159,7 @@
         } catch (Throwable t) {
             log.error(sm.getString("coyoteAdapter.service"), t);
         } finally {
+            req.getRequestProcessor().setWorkerThreadName(null);
             // Recycle the wrapper request and response
             request.recycle();
             response.recycle();

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/OutputBuffer.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -84,13 +84,13 @@
     /**
      * Number of bytes written.
      */
-    private int bytesWritten = 0;
+    private long bytesWritten = 0;
 
 
     /**
      * Number of chars written.
      */
-    private int charsWritten = 0;
+    private long charsWritten = 0;
 
 
     /**
@@ -598,22 +598,32 @@
 
     }
 
-
     public int getBytesWritten() {
-        return bytesWritten;
+        if (bytesWritten < Integer.MAX_VALUE) {
+            return (int) bytesWritten;
+        }
+        return -1;
     }
 
-
     public int getCharsWritten() {
-        return charsWritten;
+        if (charsWritten < Integer.MAX_VALUE) {
+            return (int) charsWritten;
+        }
+        return -1;
     }
 
+    public int getContentWritten() {
+        long size = bytesWritten + charsWritten ;
+        if (size < Integer.MAX_VALUE) {
+            return (int) size;
+        }
+        return -1;
+    }
 
-    public int getContentWritten() {
+    public long getContentWrittenLong() {
         return bytesWritten + charsWritten;
     }
 
-
     /** 
      * True if this buffer hasn't been used ( since recycle() ) -
      * i.e. no chars or bytes have been added to the buffer.  

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/Response.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/Response.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/connector/Response.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -58,7 +58,7 @@
  *
  * @author Remy Maucherat
  * @author Craig R. McClanahan
- * @version $Revision: 486569 $ $Date: 2006-12-13 02:50:09 -0700 (Wed, 13 Dec 2006) $
+ * @version $Revision: 567009 $ $Date: 2007-08-17 04:54:37 -0600 (Fri, 17 Aug 2007) $
  */
 
 public class Response
@@ -305,6 +305,12 @@
         return outputBuffer.getContentWritten();
     }
 
+    /**
+     * Return the number of bytes actually written to the output stream.
+     */
+    public long getContentCountLong() {
+        return outputBuffer.getContentWrittenLong();
+    }
 
     /**
      * Set the application commit flag.

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -48,7 +48,6 @@
 import org.apache.catalina.util.InstanceSupport;
 import org.apache.catalina.util.StringManager;
 import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Standard implementation of <code>RequestDispatcher</code> that allows a
@@ -61,7 +60,7 @@
  * <code>javax.servlet.ServletResponseWrapper</code>.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 491354 $ $Date: 2006-12-30 17:32:47 -0700 (Sat, 30 Dec 2006) $
+ * @version $Revision: 545175 $ $Date: 2007-06-07 15:31:16 +0200 (Thu, 07 Jun 2007) $
  */
 
 final class ApplicationDispatcher
@@ -171,6 +170,7 @@
         // Save all of our configuration parameters
         this.wrapper = wrapper;
         this.context = (Context) wrapper.getParent();
+        log =  context.getLogger();
         this.requestURI = requestURI;
         this.servletPath = servletPath;
         this.pathInfo = pathInfo;
@@ -191,7 +191,7 @@
 
     // ----------------------------------------------------- Instance Variables
 
-    private static Log log = LogFactory.getLog(ApplicationDispatcher.class);
+    private Log log = null;
 
     /**
      * The Context this RequestDispatcher is associated with.

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/StandardContext.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/StandardContext.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/StandardContext.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -103,7 +103,7 @@
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @version $Revision: 513599 $ $Date: 2007-03-01 19:34:17 -0700 (Thu, 01 Mar 2007) $
+ * @version $Revision: 522870 $ $Date: 2007-03-27 13:37:32 +0200 (Tue, 27 Mar 2007) $
  */
 
 public class StandardContext
@@ -4353,9 +4353,6 @@
             // Stop our filters
             filterStop();
 
-            // Stop our application listeners
-            listenerStop();
-
             // Stop ContainerBackgroundProcessor thread
             super.threadStop();
 
@@ -4363,6 +4360,9 @@
                 ((Lifecycle) manager).stop();
             }
 
+            // Stop our application listeners
+            listenerStop();
+
             // Finalize our character set mapper
             setCharsetMapper(null);
 

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -43,7 +43,7 @@
  * <code>StandardWrapper</code> container implementation.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 508294 $ $Date: 2007-02-15 20:06:07 -0700 (Thu, 15 Feb 2007) $
+ * @version $Revision: 529038 $ $Date: 2007-04-15 19:47:24 +0200 (Sun, 15 Apr 2007) $
  */
 
 final class StandardWrapperValve
@@ -127,6 +127,9 @@
                 servlet = wrapper.allocate();
             }
         } catch (UnavailableException e) {
+            container.getLogger().error(
+                    sm.getString("standardWrapper.allocateException",
+                            wrapper.getName()), e);
             long available = wrapper.getAvailable();
             if ((available > 0L) && (available < Long.MAX_VALUE)) {
             	response.setDateHeader("Retry-After", available);

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/deploy/NamingResources.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/deploy/NamingResources.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/deploy/NamingResources.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -25,13 +25,15 @@
 import java.util.Hashtable;
 import java.io.Serializable;
 
+import org.apache.catalina.ServerFactory;
 
+
 /**
  * Holds and manages the naming resources defined in the J2EE Enterprise 
  * Naming Context and their associated JNDI context.
  *
  * @author Remy Maucherat
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 550050 $ $Date: 2007-06-23 09:01:35 -0600 (Sat, 23 Jun 2007) $
  */
 
 public class NamingResources implements Serializable {
@@ -185,9 +187,27 @@
     public void addEnvironment(ContextEnvironment environment) {
 
         if (entries.containsKey(environment.getName())) {
-            if (findEnvironment(environment.getName()).getOverride()) {
-                removeEnvironment(environment.getName());
+            ContextEnvironment ce = findEnvironment(environment.getName());
+            ContextResourceLink rl = findResourceLink(environment.getName());
+            if (ce != null) {
+                if (ce.getOverride()) {
+                    removeEnvironment(environment.getName());
+                } else {
+                    return;
+                }
+            } else if (rl != null) {
+                // Link. Need to look at the global resources
+                NamingResources global =
+                    ServerFactory.getServer().getGlobalNamingResources();
+                if (global.findEnvironment(rl.getGlobal()) != null) {
+                    if (global.findEnvironment(rl.getGlobal()).getOverride()) {
+                        removeResourceLink(environment.getName());
+                    } else {
+                        return;
+                    }
+                }
             } else {
+                // It exists but it isn't an env or a res link...
                 return;
             }
         }

Added: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/deploy/SecurityRoleRef.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/deploy/SecurityRoleRef.java	                        (rev 0)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/deploy/SecurityRoleRef.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.catalina.deploy;
+
+
+/**
+ * <p>Representation of a security role reference for a web application, as
+ * represented in a <code>&lt;security-role-ref&gt;</code> element
+ * in the deployment descriptor.</p>
+ *
+ * @author Mark Thomas
+ * @version $Revision: 550262 $ $Date: 2007-06-24 11:27:18 -0600 (Sun, 24 Jun 2007) $
+ * @since Tomcat 5.5
+ */
+
+public class SecurityRoleRef {
+
+
+    // ------------------------------------------------------------- Properties
+
+
+    /**
+     * The (required) role name.
+     */
+    private String name = null;
+
+    public String getName() {
+        return (this.name);
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+
+    /**
+     * The optional role link.
+     */
+    private String link = null;
+
+    public String getLink() {
+        return (this.link);
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
+
+
+
+    // --------------------------------------------------------- Public Methods
+
+
+    /**
+     * Return a String representation of this object.
+     */
+    public String toString() {
+
+        StringBuffer sb = new StringBuffer("SecurityRoleRef[");
+        sb.append("name=");
+        sb.append(name);
+        if (link != null) {
+            sb.append(", link=");
+            sb.append(link);
+        }
+        sb.append("]");
+        return (sb.toString());
+
+    }
+
+
+}

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -102,7 +102,7 @@
  *
  * @author Remy Maucherat
  * @author Craig R. McClanahan
- * @version $Revision: 510801 $ $Date: 2007-02-22 21:09:46 -0700 (Thu, 22 Feb 2007) $
+ * @version $Revision: 530625 $ $Date: 2007-04-20 05:19:12 +0200 (Fri, 20 Apr 2007) $
  */
 public class WebappClassLoader
     extends URLClassLoader
@@ -112,6 +112,9 @@
     protected static org.apache.commons.logging.Log log=
         org.apache.commons.logging.LogFactory.getLog( WebappClassLoader.class );
 
+    public static final boolean ENABLE_CLEAR_REFERENCES = 
+        Boolean.valueOf(System.getProperty("org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES", "true")).booleanValue();
+
     protected class PrivilegedFindResource
         implements PrivilegedAction {
 
@@ -1589,47 +1592,49 @@
         
         // Null out any static or final fields from loaded classes,
         // as a workaround for apparent garbage collection bugs
-        Iterator loadedClasses = ((HashMap) resourceEntries.clone()).values().iterator();
-        while (loadedClasses.hasNext()) {
-            ResourceEntry entry = (ResourceEntry) loadedClasses.next();
-            if (entry.loadedClass != null) {
-                Class clazz = entry.loadedClass;
-                try {
-                    Field[] fields = clazz.getDeclaredFields();
-                    for (int i = 0; i < fields.length; i++) {
-                        Field field = fields[i];
-                        int mods = field.getModifiers();
-                        if (field.getType().isPrimitive() 
-                                || (field.getName().indexOf("$") != -1)) {
-                            continue;
-                        }
-                        if (Modifier.isStatic(mods)) {
-                            try {
-                                field.setAccessible(true);
-                                if (Modifier.isFinal(mods)) {
-                                    if (!((field.getType().getName().startsWith("java."))
-                                            || (field.getType().getName().startsWith("javax.")))) {
-                                        nullInstance(field.get(null));
+        if (ENABLE_CLEAR_REFERENCES) {
+            Iterator loadedClasses = ((HashMap) resourceEntries.clone()).values().iterator();
+            while (loadedClasses.hasNext()) {
+                ResourceEntry entry = (ResourceEntry) loadedClasses.next();
+                if (entry.loadedClass != null) {
+                    Class clazz = entry.loadedClass;
+                    try {
+                        Field[] fields = clazz.getDeclaredFields();
+                        for (int i = 0; i < fields.length; i++) {
+                            Field field = fields[i];
+                            int mods = field.getModifiers();
+                            if (field.getType().isPrimitive() 
+                                    || (field.getName().indexOf("$") != -1)) {
+                                continue;
+                            }
+                            if (Modifier.isStatic(mods)) {
+                                try {
+                                    field.setAccessible(true);
+                                    if (Modifier.isFinal(mods)) {
+                                        if (!((field.getType().getName().startsWith("java."))
+                                                || (field.getType().getName().startsWith("javax.")))) {
+                                            nullInstance(field.get(null));
+                                        }
+                                    } else {
+                                        field.set(null, null);
+                                        if (log.isDebugEnabled()) {
+                                            log.debug("Set field " + field.getName() 
+                                                    + " to null in class " + clazz.getName());
+                                        }
                                     }
-                                } else {
-                                    field.set(null, null);
+                                } catch (Throwable t) {
                                     if (log.isDebugEnabled()) {
-                                        log.debug("Set field " + field.getName() 
-                                                + " to null in class " + clazz.getName());
+                                        log.debug("Could not set field " + field.getName() 
+                                                + " to null in class " + clazz.getName(), t);
                                     }
                                 }
-                            } catch (Throwable t) {
-                                if (log.isDebugEnabled()) {
-                                    log.debug("Could not set field " + field.getName() 
-                                            + " to null in class " + clazz.getName(), t);
-                                }
                             }
                         }
+                    } catch (Throwable t) {
+                        if (log.isDebugEnabled()) {
+                            log.debug("Could not clean fields for class " + clazz.getName(), t);
+                        }
                     }
-                } catch (Throwable t) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("Could not clean fields for class " + clazz.getName(), t);
-                    }
                 }
             }
         }

Added: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/mbeans/JMXAdaptorLifecycleListener.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/mbeans/JMXAdaptorLifecycleListener.java	                        (rev 0)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/mbeans/JMXAdaptorLifecycleListener.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,355 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.catalina.mbeans;
+
+import java.util.HashMap;
+import java.util.Properties;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+
+import org.apache.catalina.Lifecycle;
+import org.apache.catalina.LifecycleEvent;
+import org.apache.catalina.LifecycleListener;
+import org.apache.catalina.core.StandardServer;
+
+import java.net.InetAddress;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+import java.rmi.server.UnicastRemoteObject;
+import javax.rmi.ssl.SslRMIServerSocketFactory;
+import javax.rmi.ssl.SslRMIClientSocketFactory;
+
+import java.lang.management.ManagementFactory;
+import javax.management.MBeanServer;
+import javax.management.remote.JMXServiceURL;
+import javax.management.remote.JMXConnectorServer;
+import javax.management.remote.JMXConnectorServerFactory;
+import javax.management.remote.rmi.RMIConnectorServer;
+
+/**
+ * Start JSR160 JMX Adapter with naming and jmx port! Add only as Server Listner
+ * to your tomcat <i>server.xml</i> <br/><pre>
+ * &lt;Server ...&gt;
+ * ...
+ *   &lt;Listener className="org.apache.catalina.mbeans.JMXAdaptorLifecycleListener"<br/>
+ *             namingPort="8083" port="8084" host="myhost" />  
+ * ...
+ * &lt;/Server&gt;
+ * </pre>
+ * 
+ * You can use normal jmx system properties from command line or jmx config file: 
+ * <ul>
+ * <li><code>-Dcom.sun.management.jmxremote.authenticate=true</code></li>
+ * <li><code>-Dcom.sun.management.jmxremote.ssl=false</code></li>
+ * <li><code>-Dcom.sun.management.jmxremote.access.file=$CATALINA_BASE/conf/access.file</code></li>
+ * <li><code>-Dcom.sun.management.jmxremote.password.file=$CATALINA_BASE/conf/password.file</code></li>
+ * <li><code>-Dcom.sun.management.config.file=$CATALINA_BASE/conf/jmx.properties</code></li>
+ * </ul>
+ * <br/>
+ * Then run jconsole with:
+ * <code>
+ * jconsole service:jmx:rmi://myhost:8084/jndi/rmi://myhost:8083/server
+ * </code>
+ * 
+ * <p>
+ * It would be be better if this was built into Tomcat as a configuration
+ * option, rather than having to do it as part of every Tomcat instance.
+ * </p>
+ * <p>Origanal code idea comes from George Lindholm read
+ * <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39055">Tomcat Bug 39055<a/>
+ * and other helpful links are:<br/>
+ * <ul>
+ * <li><a href="http://today.java.net/pub/a/today/2005/11/15/using-jmx-to-manage-web-applications.html">Using Web Apps</a></li>
+ * <li><a href="http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#SSL_enabled">JVM 1.5 JMX Guide</a></li>
+ * </p>
+ * @author Peter Rossbach
+ * @author Juergen Herrmann
+ */
+public class JMXAdaptorLifecycleListener implements LifecycleListener {
+
+    /**
+     * Logger
+     */
+    private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory
+            .getLog(JMXAdaptorLifecycleListener.class);
+
+    /**
+     * The descriptive information string for this implementation.
+     */
+    private static final String info = "org.apache.catalina.mbeans.JMXAdaptorLifecycleListener/1.0";
+
+    private boolean enabled = true;
+
+    private int namingPort = 0;
+
+    private int port = 0;
+
+    private String host = null;
+
+    private String jmxUrl = null;
+
+    private JMXConnectorServer connectorServer = null;
+
+    private Properties managementProperties = null;
+
+    /**
+     * create new jmx adaptor and read properties from file.
+     * Use jvm property <code>-Dcom.sun.management.config.file=xxx</code> as file.
+     *
+     */
+    public JMXAdaptorLifecycleListener() {
+        final String configProperty = "com.sun.management.config.file";
+        String configFileName = System.getProperty(configProperty);
+
+        if (configFileName != null) {
+            try {
+                FileInputStream configFile = new FileInputStream(configFileName);
+                try {
+                    managementProperties = new Properties();
+                    managementProperties.load(configFile);
+                } finally {
+                    configFile.close();
+                }
+            } catch (FileNotFoundException ex) {
+                log.error("Cannot open " + configFileName, ex);
+            } catch (IOException ex) {
+                log.error("Error while reading " + configFileName, ex);
+            }
+        }
+    }
+
+    /**
+     * @return Returns the host.
+     */
+    public String getHost() {
+        return host;
+    }
+
+    /**
+     * @paramhost The host to set.
+     */
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    /**
+     * @return Returns the port.
+     */
+    public int getPort() {
+        return port;
+    }
+
+    /**
+     * @param port The port to set.
+     */
+    public void setPort(int port) {
+        if (port < 1 || 65535 < port) {
+            log.warn("Illegal port value " + port);
+            port = 0;
+        }
+        this.port = port;
+    }
+
+    /**
+     * @return Returns the namingPort.
+     */
+    public int getNamingPort() {
+        return namingPort;
+    }
+
+    /**
+     * @param namingPort The namingPort to set.
+     */
+    public void setNamingPort(int namingPort) {
+        this.namingPort = namingPort;
+        if (namingPort < 1 || 65535 < namingPort) {
+            log.warn("Illegal namingPort value " + namingPort);
+            namingPort = 0;
+        }
+        this.namingPort = namingPort;
+    }
+
+    /**
+     * @return Returns the enabled.
+     */
+    public boolean isEnabled() {
+        return enabled;
+    }
+
+    /**
+     * @param enabled The enabled to set.
+     */
+    public void setEnabled(boolean enabled) {
+        this.enabled = enabled;
+    }
+
+    /**
+     * @return the jmxUrl
+     */
+    public String getJmxUrl() {
+        return jmxUrl;
+    }
+
+    /**
+     * Return descriptive information about this Listener implementation and the
+     * corresponding version number, in the format
+     * <code>&lt;description&gt;/&lt;version&gt;</code>.
+     */
+    public String getInfo() {
+
+        return (info);
+
+    }
+
+    /*
+     * Start/Stop JSR 160 Adaptor
+     * 
+     * @see org.apache.catalina.LifecycleListener#lifecycleEvent(org.apache.catalina.LifecycleEvent)
+     */
+    public void lifecycleEvent(LifecycleEvent event) {
+        Object source = event.getSource();
+        if (!(source instanceof StandardServer))
+            return;
+
+        if (Lifecycle.AFTER_START_EVENT.equals(event.getType())) {
+            start();
+        }
+        if (Lifecycle.BEFORE_STOP_EVENT.equals(event.getType())) {
+            stop();
+        }
+    }
+
+    /**
+     * stop jmx connector at tomcat normale shutdown 
+     *
+     */
+    protected void stop() {
+        if (connectorServer != null) {
+            if (log.isInfoEnabled())
+                log.info("JMXConnectorServer stopping on " + jmxUrl);
+
+            try {
+                // Stop connector, else shutdown takes a lot longer
+                connectorServer.stop();
+                jmxUrl = null;
+            } catch (IOException ex) {
+                // We always get this (why?), so just trace it
+                log.error("Error while stopping remote JMX connector", ex);
+            }
+            connectorServer = null;
+        }
+    }
+
+    /**
+     * get jmx config parameter from jmx config file or system property.
+     * @param name
+     * @return config parameter value
+     */
+    protected String getConfigProperty(String name) {
+        String result = null;
+        if (managementProperties != null) {
+            result = managementProperties.getProperty(name);
+        }
+        if (result == null) {
+            result = System.getProperty(name);
+        }
+        return result;
+    }
+
+    /**
+     * Start JMX connector and local name registry
+     *
+     */
+    public void start() {
+
+        if (enabled) {
+            if (namingPort == 0 || port == 0)
+                return;
+ 
+            try {
+                if (host == null || "".equals(host)) {
+                    final InetAddress address = InetAddress.getLocalHost();
+                    host = address.getHostName();
+                }
+
+                // naming
+                LocateRegistry.createRegistry(namingPort);
+                // tomcat normal mbeanserver
+                MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+
+                // read ssl config
+                HashMap env = new HashMap();
+                final String sslProperty = "com.sun.management.jmxremote.ssl";
+                String value = getConfigProperty(sslProperty);
+                if (Boolean.valueOf(value).booleanValue()) {
+                    if (log.isInfoEnabled())
+                        log.info("Activated SSL communication");
+                    SslRMIClientSocketFactory csf = new SslRMIClientSocketFactory();
+                    SslRMIServerSocketFactory ssf = new SslRMIServerSocketFactory();
+                    env.put(RMIConnectorServer.RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE,csf);
+                    env.put(RMIConnectorServer.RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE,ssf);
+                }
+
+                // read auth config
+                final String authenticateProperty = "com.sun.management.jmxremote.authenticate";
+                value = getConfigProperty(authenticateProperty);
+                if (log.isTraceEnabled())
+                    log.trace(authenticateProperty + " is " + value);
+
+                if (Boolean.valueOf(value).booleanValue()) {
+                    final String accessFileProperty = "com.sun.management.jmxremote.access.file";
+                    value = getConfigProperty(accessFileProperty);
+                    if (log.isTraceEnabled())
+                        log.trace(accessFileProperty + " is " + value);
+                    if (value != null) {
+                        env.put("jmx.remote.x.access.file", value);
+                    }
+
+                    final String passwordFileProperty = "com.sun.management.jmxremote.password.file";
+                    value = getConfigProperty(passwordFileProperty);
+                    if (log.isTraceEnabled())
+                        log.trace(passwordFileProperty + " is " + value);
+                    if (value != null) {
+                        env.put("jmx.remote.x.password.file", value);
+                    }
+                } else {
+                    log.warn("Unsafe JMX remote access!");
+                }
+
+                // create jmx adaptor
+                jmxUrl = "service:jmx:rmi://" + host + ":" + port
+                        + "/jndi/rmi://" + host + ":" + namingPort + "/server";
+                final JMXServiceURL url = new JMXServiceURL(jmxUrl);
+                connectorServer = JMXConnectorServerFactory
+                        .newJMXConnectorServer(url, env, mbs);
+
+                // start jmx adaptor
+                try {
+                    connectorServer.start();
+                    if (log.isInfoEnabled())
+                        log.info("JMXConnectorServer started on " + jmxUrl);
+                } catch (IOException ex) {
+                    log.warn("Cannot start JMXConnectorServer on " + jmxUrl, ex);
+                }
+            } catch (Exception ex) {
+                log.error("Error while setting up remote JMX connector", ex);
+            }
+        }
+    }
+
+}

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/JAASRealm.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/JAASRealm.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/JAASRealm.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -120,7 +120,7 @@
 *
 * @author Craig R. McClanahan
 * @author Yoav Shapira
- * @version $Revision: 469025 $ $Date: 2006-10-29 17:53:00 -0600 (Sun, 29 Oct 2006) $
+ * @version $Revision: 522354 $ $Date: 2007-03-25 23:31:22 +0200 (Sun, 25 Mar 2007) $
  */
 
 public class JAASRealm
@@ -230,17 +230,17 @@
         }
     }
 
-    /**
-     * Comma-delimited list of <code>java.security.Principal</code> classes
-     * that represent security roles.
-     */
-    protected String roleClassNames = null;
-
-    public String getRoleClassNames() {
-        return (this.roleClassNames);
-    }
-
      /**
+      * Comma-delimited list of <code>java.security.Principal</code> classes
+      * that represent security roles.
+      */
+     protected String roleClassNames = null;
+     
+     public String getRoleClassNames() {
+         return (this.roleClassNames);
+     }
+     
+     /**
       * Sets the list of comma-delimited classes that represent 
       * roles. The classes in the list must implement <code>java.security.Principal</code>.
       * When this accessor is called (for example, by a <code>Digester</code>
@@ -250,37 +250,49 @@
       */
      public void setRoleClassNames(String roleClassNames) {
          this.roleClassNames = roleClassNames;
-        roleClasses.clear();
-        String temp = this.roleClassNames;
-        if (temp == null) {
-            return;
-        }
-        while (true) {
-            int comma = temp.indexOf(',');
-            if (comma < 0) {
-                break;
-            }
-            roleClasses.add(temp.substring(0, comma).trim());
-            temp = temp.substring(comma + 1);
-        }
-        temp = temp.trim();
-        if (temp.length() > 0) {
-            roleClasses.add(temp);
-        }
-    }
-
-
-    /**
-     * Comma-delimited list of <code>java.security.Principal</code> classes
-     * that represent individual users.
-     */
-    protected String userClassNames = null;
-
-    public String getUserClassNames() {
-        return (this.userClassNames);
-    }
-
+         parseClassNames(roleClassNames, roleClasses);
+     }
+     
      /**
+      * Parses a comma-delimited list of class names, and store the class names
+      * in the provided List. Each class must implement <code>java.security.Principal</code>.
+      * 
+      * @param classNamesString a comma-delimited list of fully qualified class names.
+      * @param classNamesList the list in which the class names will be stored.
+      *        The list is cleared before being populated. 
+      */
+     protected void parseClassNames(String classNamesString, List classNamesList) {
+         classNamesList.clear();
+         if (classNamesString == null) return;
+         
+         String[] classNames = classNamesString.split("[ ]*,[ ]*");
+         for (int i=0; i<classNames.length; i++) {
+             if (classNames[i].length()==0) continue;        
+             try {
+                 Class principalClass = Class.forName(classNames[i]);
+                 if (Principal.class.isAssignableFrom(principalClass)) {
+                     classNamesList.add(classNames[i]);
+                 } else {
+                     log.error("Class "+classNames[i]+" is not implementing "+
+                               "java.security.Principal! Class not added.");
+                 }
+             } catch (ClassNotFoundException e) {
+                 log.error("Class "+classNames[i]+" not found! Class not added.");
+             }
+         }
+     }
+     
+     /**
+      * Comma-delimited list of <code>java.security.Principal</code> classes
+      * that represent individual users.
+      */
+     protected String userClassNames = null;
+     
+     public String getUserClassNames() {
+         return (this.userClassNames);
+     }
+     
+     /**
      * Sets the list of comma-delimited classes that represent individual
      * users. The classes in the list must implement <code>java.security.Principal</code>.
      * When this accessor is called (for example, by a <code>Digester</code>
@@ -290,23 +302,7 @@
      */
     public void setUserClassNames(String userClassNames) {
         this.userClassNames = userClassNames;
-        userClasses.clear();
-        String temp = this.userClassNames;
-        if (temp == null) {
-            return;
-        }
-        while (true) {
-            int comma = temp.indexOf(',');
-            if (comma < 0) {
-                break;
-            }
-            userClasses.add(temp.substring(0, comma).trim());
-            temp = temp.substring(comma + 1);
-        }
-        temp = temp.trim();
-        if (temp.length() > 0) {
-            userClasses.add(temp);
-        }
+        parseClassNames(userClassNames, userClasses);
     }
 
 

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/JNDIRealm.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/JNDIRealm.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/JNDIRealm.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -35,6 +35,7 @@
 import javax.naming.NameParser;
 import javax.naming.Name;
 import javax.naming.AuthenticationException;
+import javax.naming.ServiceUnavailableException;
 import javax.naming.directory.Attribute;
 import javax.naming.directory.Attributes;
 import javax.naming.directory.DirContext;
@@ -150,7 +151,7 @@
  *
  * @author John Holman
  * @author Craig R. McClanahan
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 543692 $ $Date: 2007-06-02 03:41:58 +0200 (Sat, 02 Jun 2007) $
  */
 
 public class JNDIRealm extends RealmBase {
@@ -823,6 +824,21 @@
                 // Try the authentication again.
                 principal = authenticate(context, username, credentials);
 
+            } catch (ServiceUnavailableException e) {
+
+                // log the exception so we know it's there.
+                containerLog.warn(sm.getString("jndiRealm.exception"), e);
+
+                // close the connection so we know it will be reopened.
+                if (context != null)
+                    close(context);
+
+                // open a new directory context.
+                context = open();
+
+                // Try the authentication again.
+                principal = authenticate(context, username, credentials);
+
             }
 
 

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/MemoryRealm.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/MemoryRealm.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/MemoryRealm.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -42,7 +42,7 @@
  * synchronization is performed around accesses to the principals collection.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 469025 $ $Date: 2006-10-29 17:53:00 -0600 (Sun, 29 Oct 2006) $
+ * @version $Revision: 514182 $ $Date: 2007-03-03 17:22:48 +0100 (Sat, 03 Mar 2007) $
  */
 
 public class MemoryRealm  extends RealmBase {
@@ -301,7 +301,8 @@
                 digester.parse(file);
             }
         } catch (Exception e) {
-            throw new LifecycleException("memoryRealm.readXml", e);
+            throw new LifecycleException
+                (sm.getString("memoryRealm.readXml"), e);
         } finally {
             digester.reset();
         }

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/RealmBase.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/RealmBase.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/realm/RealmBase.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -61,7 +61,7 @@
  * location) are identical to those currently supported by Tomcat 3.X.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 522281 $ $Date: 2007-03-25 17:28:12 +0200 (Sun, 25 Mar 2007) $
  */
 
 public abstract class RealmBase
@@ -1325,10 +1325,19 @@
     }
 
     protected boolean initialized=false;
-    
+
+    /**
+     * Initialize this Realm.  If it's already been
+     * initialized, do nothing.
+     */    
     public void init() {
-        this.containerLog = container.getLogger();
+        // Bugzilla 39875: if already initialized, do nothing
         if( initialized && container != null ) return;
+
+        // We want logger as soon as possible
+        if (container != null) {
+            this.containerLog = container.getLogger();
+        }
         
         initialized=true;
         if( container== null ) {

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/security/SecurityClassLoad.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/security/SecurityClassLoad.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/security/SecurityClassLoad.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -25,7 +25,7 @@
  *
  * @author Glenn L. Nielsen
  * @author Jean-Francois Arcand
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 541517 $ $Date: 2007-05-25 04:57:24 +0200 (Fri, 25 May 2007) $
  */
 
 public final class SecurityClassLoad {
@@ -65,6 +65,9 @@
         loader.loadClass
             (basePackage +
              "core.StandardWrapper$1");
+        loader.loadClass
+            (basePackage +
+             "core.ApplicationHttpRequest$AttributeNamesEnumerator");
     }
     
     

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -71,7 +71,7 @@
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @version $Revision: 511716 $ $Date: 2007-02-25 21:06:07 -0700 (Sun, 25 Feb 2007) $
+ * @version $Revision: 543679 $ $Date: 2007-06-02 02:42:19 +0200 (Sat, 02 Jun 2007) $
  */
 
 public class DefaultServlet
@@ -1653,6 +1653,8 @@
                     // The entity has not been modified since the date
                     // specified by the client. This is not an error case.
                     response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+                    response.setHeader("ETag", getETag(resourceAttributes));
+
                     return false;
                 }
             }
@@ -1709,6 +1711,8 @@
                 if ( ("GET".equals(request.getMethod()))
                      || ("HEAD".equals(request.getMethod())) ) {
                     response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+                    response.setHeader("ETag", getETag(resourceAttributes));
+
                     return false;
                 } else {
                     response.sendError

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -48,6 +48,7 @@
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
+import org.apache.catalina.Globals;
 import org.apache.catalina.util.DOMWriter;
 import org.apache.catalina.util.MD5Encoder;
 import org.apache.catalina.util.RequestUtil;
@@ -74,7 +75,7 @@
  * the /* URL pattern.
  *
  * @author Remy Maucherat
- * @version $Revision: 490301 $ $Date: 2006-12-26 07:22:13 -0700 (Tue, 26 Dec 2006) $
+ * @version $Revision: 561183 $ $Date: 2007-07-30 17:22:00 -0600 (Mon, 30 Jul 2007) $
  */
 
 public class WebdavServlet  extends DefaultServlet {
@@ -321,6 +322,35 @@
 
 
     /**
+     * Override the DefaultServlet implementation and only use the PathInfo. If
+     * the ServletPath is non-null, it will be because the WebDAV servlet has
+     * been mapped to a url other than /* to configure editing at different url
+     * than normal viewing.
+     *
+     * @param request The servlet request we are processing
+     */
+    protected String getRelativePath(HttpServletRequest request) {
+
+        // Are we being processed by a RequestDispatcher.include()?
+        if (request.getAttribute(Globals.INCLUDE_REQUEST_URI_ATTR) != null) {
+            String result = (String) request.getAttribute(
+                                            Globals.INCLUDE_PATH_INFO_ATTR);
+            if ((result == null) || (result.equals("")))
+                result = "/";
+            return (result);
+        }
+
+        // No, extract the desired path directly from the request
+        String result = request.getPathInfo();
+        if ((result == null) || (result.equals(""))) {
+            result = "/";
+        }
+        return (result);
+
+    }
+
+
+    /**
      * OPTIONS Method.
      *
      * @param req The request
@@ -391,38 +421,40 @@
 
         Node propNode = null;
 
-        DocumentBuilder documentBuilder = getDocumentBuilder();
-
-        try {
-            Document document = documentBuilder.parse
-                (new InputSource(req.getInputStream()));
-
-            // Get the root element of the document
-            Element rootElement = document.getDocumentElement();
-            NodeList childList = rootElement.getChildNodes();
-
-            for (int i=0; i < childList.getLength(); i++) {
-                Node currentNode = childList.item(i);
-                switch (currentNode.getNodeType()) {
-                case Node.TEXT_NODE:
-                    break;
-                case Node.ELEMENT_NODE:
-                    if (currentNode.getNodeName().endsWith("prop")) {
-                        type = FIND_BY_PROPERTY;
-                        propNode = currentNode;
+        if (req.getInputStream().available() >0) {
+            DocumentBuilder documentBuilder = getDocumentBuilder();
+    
+            try {
+                Document document = documentBuilder.parse
+                    (new InputSource(req.getInputStream()));
+    
+                // Get the root element of the document
+                Element rootElement = document.getDocumentElement();
+                NodeList childList = rootElement.getChildNodes();
+    
+                for (int i=0; i < childList.getLength(); i++) {
+                    Node currentNode = childList.item(i);
+                    switch (currentNode.getNodeType()) {
+                    case Node.TEXT_NODE:
+                        break;
+                    case Node.ELEMENT_NODE:
+                        if (currentNode.getNodeName().endsWith("prop")) {
+                            type = FIND_BY_PROPERTY;
+                            propNode = currentNode;
+                        }
+                        if (currentNode.getNodeName().endsWith("propname")) {
+                            type = FIND_PROPERTY_NAMES;
+                        }
+                        if (currentNode.getNodeName().endsWith("allprop")) {
+                            type = FIND_ALL_PROP;
+                        }
+                        break;
                     }
-                    if (currentNode.getNodeName().endsWith("propname")) {
-                        type = FIND_PROPERTY_NAMES;
-                    }
-                    if (currentNode.getNodeName().endsWith("allprop")) {
-                        type = FIND_ALL_PROP;
-                    }
-                    break;
                 }
+            } catch(Exception e) {
+                // Something went wrong - use the defaults.
+                // TODO : Enhance that !
             }
-        } catch(Exception e) {
-            // Most likely there was no content : we use the defaults.
-            // TODO : Enhance that !
         }
 
         if (type == FIND_BY_PROPERTY) {

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/JDBCStore.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/JDBCStore.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/JDBCStore.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -45,7 +45,7 @@
  * saved are still subject to being expired based on inactivity.
  *
  * @author Bip Thelin
- * @version $Revision: 466608 $, $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 554108 $, $Date: 2007-07-06 19:38:34 -0600 (Fri, 06 Jul 2007) $
  */
 
 public class JDBCStore
@@ -970,7 +970,7 @@
 
     /**
      * Gracefully terminate everything associated with our db.
-     * Called once when this Store is stoping.
+     * Called once when this Store is stopping.
      *
      */
     public void stop() throws LifecycleException {

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/ManagerBase.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/ManagerBase.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/ManagerBase.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -58,7 +58,7 @@
  * be subclassed to create more sophisticated Manager implementations.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 479370 $ $Date: 2006-11-26 08:31:29 -0700 (Sun, 26 Nov 2006) $
+ * @version $Revision: 531678 $ $Date: 2007-04-24 04:16:55 +0200 (Tue, 24 Apr 2007) $
  */
 
 public abstract class ManagerBase implements Manager, MBeanRegistration {
@@ -692,12 +692,18 @@
             Registry.getRegistry(null, null).unregisterComponent(oname);
         initialized=false;
         oname = null;
+        // Don't clear log since it is required in case attributes are changed
+        // (eg via JMX) whilst the manager is stopped.
     }
     
     public void init() {
         if( initialized ) return;
         initialized=true;        
         
+        // Re-initialise the log to prevent memory leaks on reload in case it
+        // was loaded by the webapp classloader
+        log = LogFactory.getLog(ManagerBase.class);
+        
         if( oname==null ) {
             try {
                 StandardContext ctx=(StandardContext)this.getContainer();

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/session/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -117,6 +117,15 @@
                  type="java.lang.String"/>
     </operation>
 
+    <operation   name="getSession"
+          description="Return all sessions attributes and values"
+               impact="ACTION"
+           returnType="java.util.HashMap">
+      <parameter name="sessionId"
+          description="Id of the session"
+                 type="java.lang.String"/>
+    </operation>
+
     <operation   name="expireSession"
           description="Expire a session"
                impact="ACTION"

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/ExpressionParseTree.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/ExpressionParseTree.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/ExpressionParseTree.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -17,7 +24,7 @@
 /**
  * Represents a parsed expression.
  * 
- * @version $Revision: 303166 $
+ * @version $Revision: 565195 $
  * @author Paul Speed
  */
 public class ExpressionParseTree {

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/ExpressionTokenizer.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/ExpressionTokenizer.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/ExpressionTokenizer.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -16,7 +23,7 @@
  * patterned similar to the StreamTokenizer in the JDK but customized for SSI
  * conditional expression parsing.
  * 
- * @version $Revision: 304061 $
+ * @version $Revision: 565195 $
  * @author Paul Speed
  */
 public class ExpressionTokenizer {

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSICommand.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSICommand.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSICommand.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -19,7 +26,7 @@
  * @author Bip Thelin
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public interface SSICommand {
     /**

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConditional.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConditional.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConditional.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -16,7 +23,7 @@
 /**
  * SSI command that handles all conditional directives.
  * 
- * @version $Revision: 303882 $
+ * @version $Revision: 565195 $
  * @author Paul Speed
  * @author David Becker
  */

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConditionalState.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConditionalState.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConditionalState.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -16,7 +23,7 @@
  * information necessary to process the nested conditional commands ( if, elif,
  * else, endif ).
  * 
- * @version $Revision: 303166 $
+ * @version $Revision: 565195 $
  * @author Dan Sandberg
  * @author Paul Speed
  */

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConfig.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConfig.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIConfig.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -19,7 +26,7 @@
  * @author Paul Speed
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public final class SSIConfig implements SSICommand {
     /**

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIEcho.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIEcho.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIEcho.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -19,7 +26,7 @@
  * @author Paul Speed
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSIEcho implements SSICommand {
     protected final static String DEFAULT_ENCODING = "entity";

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIExec.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIExec.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIExec.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -24,7 +31,7 @@
  * @author Paul Speed
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSIExec implements SSICommand {
     protected SSIInclude ssiInclude = new SSIInclude();

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIExternalResolver.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIExternalResolver.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIExternalResolver.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -19,7 +26,7 @@
  * servlet )
  * 
  * @author Dan Sandberg
- * @version $Revision: 303166 $, $Date: 2004-09-01 12:33:33 -0600 (Wed, 01 Sep 2004) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public interface SSIExternalResolver {
     /**

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFilter.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFilter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFilter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -38,7 +45,7 @@
  * from within web.xml.
  * 
  * @author David Becker
- * @version $Revision: 303920 $, $Date: 2005-05-05 14:52:37 -0600 (Thu, 05 May 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  * @see org.apache.catalina.ssi.SSIServlet
  */
 public class SSIFilter implements Filter {

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFlastmod.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFlastmod.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFlastmod.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -23,7 +30,7 @@
  * @author Paul Speed
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 304061 $, $Date: 2005-08-17 15:21:37 -0600 (Wed, 17 Aug 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public final class SSIFlastmod implements SSICommand {
     /**

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFsize.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFsize.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIFsize.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -21,7 +28,7 @@
  * @author Paul Speed
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public final class SSIFsize implements SSICommand {
     protected final static int ONE_KILOBYTE = 1024;

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIInclude.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIInclude.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIInclude.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -20,7 +27,7 @@
  * @author Paul Speed
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public final class SSIInclude implements SSICommand {
     /**

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIMediator.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIMediator.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIMediator.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -30,7 +37,7 @@
  * @author Paul Speed
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSIMediator {
     protected final static String DEFAULT_CONFIG_ERR_MSG = "[an error occurred while processing this directive]";

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIPrintenv.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIPrintenv.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIPrintenv.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -19,7 +26,7 @@
  * 
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSIPrintenv implements SSICommand {
     /**

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIProcessor.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIProcessor.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIProcessor.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -25,7 +32,7 @@
  * 
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 424634 $, $Date: 2006-07-22 15:48:38 -0600 (Sat, 22 Jul 2006) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSIProcessor {
     /** The start pattern */

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServlet.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -14,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 import java.io.BufferedReader;
@@ -39,7 +40,7 @@
  * @author Amy Roh
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 490149 $, $Date: 2006-12-25 07:06:34 -0700 (Mon, 25 Dec 2006) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSIServlet extends HttpServlet {
     /** Debug level for this servlet. */

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServletExternalResolver.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -32,7 +39,7 @@
  * 
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 425917 $, $Date: 2006-07-26 18:34:34 -0600 (Wed, 26 Jul 2006) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSIServletExternalResolver implements SSIExternalResolver {
     protected final String VARIABLE_NAMES[] = {"AUTH_TYPE", "CONTENT_LENGTH",

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServletRequestUtil.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServletRequestUtil.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIServletRequestUtil.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSISet.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSISet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSISet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -18,7 +25,7 @@
  * @author Paul Speed
  * @author Dan Sandberg
  * @author David Becker
- * @version $Revision: 303882 $, $Date: 2005-04-23 04:22:37 -0600 (Sat, 23 Apr 2005) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSISet implements SSICommand {
     /**

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIStopProcessingException.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIStopProcessingException.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/ssi/SSIStopProcessingException.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,13 +1,20 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation. Licensed under the
- * Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License
- * at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable
- * law or agreed to in writing, software distributed under the License is
- * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.ssi;
 
 
@@ -18,7 +25,7 @@
  * 
  * @author Paul Speed
  * @author Dan Sandberg
- * @version $Revision: 303166 $, $Date: 2004-09-01 12:33:33 -0600 (Wed, 01 Sep 2004) $
+ * @version $Revision: 565195 $, $Date: 2007-08-12 17:00:41 -0600 (Sun, 12 Aug 2007) $
  */
 public class SSIStopProcessingException extends Exception {
 }

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/ContextConfig.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/ContextConfig.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -64,7 +64,7 @@
  *
  * @author Craig R. McClanahan
  * @author Jean-Francois Arcand
- * @version $Revision: 511708 $ $Date: 2007-02-25 20:12:18 -0700 (Sun, 25 Feb 2007) $
+ * @version $Revision: 556488 $ $Date: 2007-07-15 19:55:50 -0600 (Sun, 15 Jul 2007) $
  */
 
 public class ContextConfig
@@ -863,12 +863,12 @@
         file = new File(docBase);
         String origDocBase = docBase ;
  
+        String contextPath = context.getPath();
+        if (contextPath.equals("")) {
+            contextPath = "ROOT";
+        }
         if (docBase.toLowerCase().endsWith(".war") && !file.isDirectory() && unpackWARs) {
             URL war = new URL("jar:" + (new File(docBase)).toURL() + "!/");
-            String contextPath = context.getPath();
-            if (contextPath.equals("")) {
-                contextPath = "ROOT";
-            }
             docBase = ExpandWar.expand(host, war, contextPath);
             file = new File(docBase);
             docBase = file.getCanonicalPath();
@@ -882,7 +882,7 @@
                 if (warFile.exists()) {
                     if (unpackWARs) {
                         URL war = new URL("jar:" + warFile.toURL() + "!/");
-                        docBase = ExpandWar.expand(host, war, context.getPath());
+                        docBase = ExpandWar.expand(host, war, contextPath);
                         file = new File(docBase);
                         docBase = file.getCanonicalPath();
                     } else {

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/LocalStrings_ja.properties
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/LocalStrings_ja.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/LocalStrings_ja.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -2,7 +2,7 @@
 contextConfig.applicationConfig=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306eweb.xml\u306e\u8a2d\u5b9a\u30a8\u30e9\u30fc\u3067\u3059
 contextConfig.applicationListener=\u30af\u30e9\u30b9 {0} \u306e\u30ea\u30b9\u30ca\u3092\u4f5c\u6210\u4e2d\u306e\u4f8b\u5916\u3067\u3059
 contextConfig.applicationMissing=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306eweb.xml\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3060\u3051\u3092\u4f7f\u7528\u3057\u307e\u3059
-contextConfig.applicationParse=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306eweb.xml\u4e2d\u306e\u89e3\u6790\u30a8\u30e9\u30fc\u3067\u3059
+contextConfig.applicationParse=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306eweb.xml\u30d5\u30a1\u30a4\u30eb {0} \u306e\u89e3\u6790\u30a8\u30e9\u30fc\u3067\u3059
 contextConfig.applicationPosition={0}\u884c\u306e{1}\u5217\u76ee\u3067\u767a\u751f\u3057\u307e\u3057\u305f
 contextConfig.authenticatorConfigured=\u30e1\u30bd\u30c3\u30c9 {0} \u306e\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u3092\u8a2d\u5b9a\u3057\u307e\u3059
 contextConfig.authenticatorInstantiate=\u30af\u30e9\u30b9 {0} \u306e\u30aa\u30fc\u30bb\u30f3\u30c6\u30a3\u30b1\u30fc\u30bf\u3092\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3067\u304d\u307e\u305b\u3093
@@ -22,9 +22,9 @@
 contextConfig.role.runas=<security-role>\u306b\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u306a\u3044\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ed\u30fc\u30eb\u540d {0} \u304c<run-as>\u306e\u4e2d\u3067\u4f7f\u7528\u3055\u308c\u307e\u3057\u305f
 contextConfig.start=ContextConfig: \u51e6\u7406\u3092\u958b\u59cb\u3057\u307e\u3059
 contextConfig.stop=ContextConfig: \u51e6\u7406\u3092\u505c\u6b62\u3057\u307e\u3059
-contextConfig.tldEntryException=\u30ea\u30bd\u30fc\u30b9\u30d1\u30b9 {1} \u306eJAR\u30d5\u30a1\u30a4\u30eb\u306eTLD {0} \u3092\u51e6\u7406\u4e2d\u306e\u4f8b\u5916\u3067\u3059
-contextConfig.tldFileException=\u30ea\u30bd\u30fc\u30b9\u30d1\u30b9 {0} \u306eTLD\u3092\u51e6\u7406\u4e2d\u306e\u4f8b\u5916\u3067\u3059
-contextConfig.tldJarException=\u30ea\u30bd\u30fc\u30b9\u30d1\u30b9 {0} \u306eJAR\u30d5\u30a1\u30a4\u30eb\u3092\u51e6\u7406\u4e2d\u306e\u4f8b\u5916\u3067\u3059
+contextConfig.tldEntryException=\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 {2} \u306e\u30ea\u30bd\u30fc\u30b9\u30d1\u30b9 {1} \u306eJAR\u30d5\u30a1\u30a4\u30eb\u306eTLD {0} \u3092\u51e6\u7406\u4e2d\u306e\u4f8b\u5916\u3067\u3059
+contextConfig.tldFileException=\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 {1} \u306e\u30ea\u30bd\u30fc\u30b9\u30d1\u30b9 {0} \u306eTLD\u3092\u51e6\u7406\u4e2d\u306e\u4f8b\u5916\u3067\u3059
+contextConfig.tldJarException=\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 {1} \u306e\u30ea\u30bd\u30fc\u30b9\u30d1\u30b9 {0} \u306eJAR\u30d5\u30a1\u30a4\u30eb\u3092\u51e6\u7406\u4e2d\u306e\u4f8b\u5916\u3067\u3059
 contextConfig.tldResourcePath=\u7121\u52b9\u306aTLD\u306e\u30ea\u30bd\u30fc\u30b9\u30d1\u30b9 {0}
 contextConfig.unavailable=\u524d\u306e\u30a8\u30e9\u30fc\u306e\u305f\u3081\u306b\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u5229\u7528\u3067\u304d\u306a\u3044\u3088\u3046\u306b\u30de\u30fc\u30af\u3057\u307e\u3059
 embedded.alreadyStarted=\u7d44\u307f\u8fbc\u307f\u30b5\u30fc\u30d3\u30b9\u306f\u65e2\u306b\u8d77\u52d5\u3055\u308c\u3066\u3044\u307e\u3059

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/TldConfig.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/TldConfig.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/TldConfig.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -26,6 +26,8 @@
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
@@ -68,10 +70,7 @@
     private static org.apache.commons.logging.Log log=
         org.apache.commons.logging.LogFactory.getLog( TldConfig.class );
 
-    private static final String FILE_URL_PREFIX = "file:";
-    private static final int FILE_URL_PREFIX_LEN = FILE_URL_PREFIX.length();
 
-
     /*
      * Initializes the set of JARs that are known not to contain any TLDs
      */
@@ -688,8 +687,13 @@
                     // This is definitely not as clean as using JAR URLs either
                     // over file or the custom jndi handler, but a lot less
                     // buggy overall
-                    File file = new File(urls[i].getFile());
+                    File file;
                     try {
+                        file = new File(new URI(urls[i].toString()).getPath());
+                    } catch (URISyntaxException e1) {
+                        continue;
+                    }
+                    try {
                         file = file.getCanonicalFile();
                     } catch (IOException e) {
                         // Ignore

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/WebRuleSet.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/WebRuleSet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/startup/WebRuleSet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,6 +23,7 @@
 import org.apache.catalina.Context;
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.deploy.SecurityConstraint;
+import org.apache.catalina.deploy.SecurityRoleRef;
 import org.apache.tomcat.util.digester.Digester;
 import org.apache.tomcat.util.digester.Rule;
 import org.apache.tomcat.util.digester.RuleSetBase;
@@ -34,7 +35,7 @@
  * deployment descriptor (<code>/WEB-INF/web.xml</code>) resource.</p>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 550262 $ $Date: 2007-06-24 11:27:18 -0600 (Sun, 24 Jun 2007) $
  */
 
 public class WebRuleSet extends RuleSetBase {
@@ -383,11 +384,16 @@
         digester.addCallMethod(prefix + "web-app/servlet/run-as/role-name",
                                "setRunAs", 0);
 
-        digester.addCallMethod(prefix + "web-app/servlet/security-role-ref",
-                               "addSecurityReference", 2);
-        digester.addCallParam(prefix + "web-app/servlet/security-role-ref/role-link", 1);
-        digester.addCallParam(prefix + "web-app/servlet/security-role-ref/role-name", 0);
+        digester.addRule(prefix + "web-app/servlet/security-role-ref",
+                new SecurityRoleRefCreateRule());
 
+        digester.addCallMethod(
+                prefix + "web-app/servlet/security-role-ref/role-link",
+                "setLink", 0);
+        digester.addCallMethod(
+                prefix + "web-app/servlet/security-role-ref/role-name",
+                "setName", 0);
+
         digester.addCallMethod(prefix + "web-app/servlet/servlet-class",
                               "setServletClass", 0);
         digester.addCallMethod(prefix + "web-app/servlet/servlet-name",
@@ -561,7 +567,6 @@
     public void begin(String namespace, String name, Attributes attributes)
         throws Exception {
 
-        Context context = (Context) digester.peek(digester.getCount() - 1);
         Object top = digester.peek();
         Class paramClasses[] = new Class[1];
         paramClasses[0] = "String".getClass();
@@ -615,3 +620,33 @@
     }
 
 }
+
+/**
+ * A Rule that adds a security-role-ref to a servlet, allowing for the fact that
+ * role-link is an optional element.
+ */
+final class SecurityRoleRefCreateRule extends Rule {
+    
+    public SecurityRoleRefCreateRule() {
+    }
+    
+    public void begin(String namespace, String name, Attributes attributes)
+            throws Exception {
+        SecurityRoleRef securityRoleRef = new SecurityRoleRef();
+        digester.push(securityRoleRef);
+        if (digester.getLogger().isDebugEnabled())
+            digester.getLogger().debug("new SecurityRoleRef");
+    }
+
+    public void end(String namespace, String name)
+            throws Exception {
+        SecurityRoleRef securityRoleRef = (SecurityRoleRef) digester.pop();
+        Wrapper wrapper = (Wrapper) digester.peek();
+        
+        wrapper.addSecurityReference(securityRoleRef.getName(),
+                securityRoleRef.getLink());
+
+        if (digester.getLogger().isDebugEnabled())
+            digester.getLogger().debug("pop SecurityRoleRef");
+    }
+}

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/users/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/users/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/users/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -136,10 +136,6 @@
                 group="UserDatabase"
                  type="org.apache.catalina.users.MemoryUserDatabase">
 
-    <attribute   name="encoding"
-          description="Character encoding to use when writing XML file"
-                 type="java.lang.String"/>
-
     <attribute   name="groups"
           description="MBean Names of all defined groups"
                  type="[Ljava.lang.String;"

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/util/RequestUtil.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/util/RequestUtil.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/util/RequestUtil.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -32,7 +32,7 @@
  *
  * @author Craig R. McClanahan
  * @author Tim Tye
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 562625 $ $Date: 2007-08-03 18:15:53 -0600 (Fri, 03 Aug 2007) $
  */
 
 public final class RequestUtil {
@@ -74,7 +74,6 @@
             buf.append("\"");
         }
 
-        long age = cookie.getMaxAge();
         if (cookie.getMaxAge() >= 0) {
             buf.append("; Max-Age=\"");
             buf.append(cookie.getMaxAge());
@@ -308,7 +307,7 @@
      * Decode and return the specified URL-encoded String.
      * When the byte array is converted to a string, the system default
      * character encoding is used...  This may be different than some other
-     * servers.
+     * servers. It is assumed the string is not a query string.
      *
      * @param str The url-encoded string
      *
@@ -316,22 +315,33 @@
      * by a valid 2-digit hexadecimal number
      */
     public static String URLDecode(String str) {
-
         return URLDecode(str, null);
-
     }
-
-
+    
+    
     /**
+     * Decode and return the specified URL-encoded String. It is assumed the
+     * string is not a query string.
+     *
+     * @param str The url-encoded string
+     * @param enc The encoding to use; if null, the default encoding is used
+     * @exception IllegalArgumentException if a '%' character is not followed
+     * by a valid 2-digit hexadecimal number
+     */
+    public static String URLDecode(String str, String enc) {
+        return URLDecode(str, enc, false);
+    }
+    
+    /**
      * Decode and return the specified URL-encoded String.
      *
      * @param str The url-encoded string
      * @param enc The encoding to use; if null, the default encoding is used
+     * @param isQuery Is this a query string being processed
      * @exception IllegalArgumentException if a '%' character is not followed
      * by a valid 2-digit hexadecimal number
      */
-    public static String URLDecode(String str, String enc) {
-
+    public static String URLDecode(String str, String enc, boolean isQuery) {
         if (str == null)
             return (null);
 
@@ -347,13 +357,14 @@
             }
         } catch (UnsupportedEncodingException uee) {}
 
-        return URLDecode(bytes, enc);
+        return URLDecode(bytes, enc, isQuery);
 
     }
 
 
     /**
-     * Decode and return the specified URL-encoded byte array.
+     * Decode and return the specified URL-encoded byte array. It is assumed
+     * the string is not a query string.
      *
      * @param bytes The url-encoded byte array
      * @exception IllegalArgumentException if a '%' character is not followed
@@ -365,7 +376,8 @@
 
 
     /**
-     * Decode and return the specified URL-encoded byte array.
+     * Decode and return the specified URL-encoded byte array. It is assumed
+     * the string is not a query string.
      *
      * @param bytes The url-encoded byte array
      * @param enc The encoding to use; if null, the default encoding is used
@@ -373,7 +385,20 @@
      * by a valid 2-digit hexadecimal number
      */
     public static String URLDecode(byte[] bytes, String enc) {
+        return URLDecode(bytes, null, false);
+    }
 
+    /**
+     * Decode and return the specified URL-encoded byte array.
+     *
+     * @param bytes The url-encoded byte array
+     * @param enc The encoding to use; if null, the default encoding is used
+     * @param isQuery Is this a query string being processed
+     * @exception IllegalArgumentException if a '%' character is not followed
+     * by a valid 2-digit hexadecimal number
+     */
+    public static String URLDecode(byte[] bytes, String enc, boolean isQuery) {
+    
         if (bytes == null)
             return (null);
 
@@ -382,7 +407,7 @@
         int ox = 0;
         while (ix < len) {
             byte b = bytes[ix++];     // Get byte to test
-            if (b == '+') {
+            if (b == '+' && isQuery) {
                 b = (byte)' ';
             } else if (b == '%') {
                 b = (byte) ((convertHexDigit(bytes[ix++]) << 4)
@@ -461,7 +486,6 @@
         throws UnsupportedEncodingException {
 
         if (data != null && data.length > 0) {
-            int    pos = 0;
             int    ix = 0;
             int    ox = 0;
             String key = null;

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/AccessLogValve.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -90,6 +90,7 @@
  * It is modeled after the apache syntax:
  * <ul>
  * <li><code>%{xxx}i</code> for incoming headers
+ * <li><code>%{xxx}o</code> for outgoing headers
  * <li><code>%{xxx}c</code> for a specific cookie
  * <li><code>%{xxx}r</code> xxx is an attribute in the ServletRequest
  * <li><code>%{xxx}s</code> xxx is an attribute in the HttpSession
@@ -105,7 +106,8 @@
  *
  * @author Craig R. McClanahan
  * @author Jason Brittain
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @author Peter Rossbach
+ * @version $Revision: 567009 $ $Date: 2007-08-17 04:54:37 -0600 (Fri, 17 Aug 2007) $
  */
 
 public class AccessLogValve
@@ -120,7 +122,7 @@
      * Construct a new instance of this class with default property values.
      */
     public AccessLogValve() {
-
+        
         super();
         setPattern("common");
 
@@ -599,8 +601,7 @@
 
             result.append(space);
 
-            int length = response.getContentCount();
-
+            long length = response.getContentCountLong() ;
             if (length <= 0)
                 value = "-";
             else
@@ -805,13 +806,13 @@
                 value = "127.0.0.1";
             }
         } else if (pattern == 'b') {
-            int length = response.getContentCount();
+            long length = response.getContentCountLong() ;
             if (length <= 0)
                 value = "-";
             else
                 value = "" + length;
         } else if (pattern == 'B') {
-            value = "" + response.getContentLength();
+            value = "" + response.getContentCountLong();
         } else if (pattern == 'h') {
             value = request.getRemoteHost();
         } else if (pattern == 'H') {
@@ -923,11 +924,22 @@
                 else
                     value= "??";
                 break;
-/*
-            // Someone please make me work
             case 'o':
+                if (null != response) {
+                    String[] values = response.getHeaderValues(header);
+                    if(values.length > 0) {
+                        StringBuffer buf = new StringBuffer() ;
+                        for (int i = 0; i < values.length; i++) {
+                            String string = values[i];
+                            buf.append(string) ;
+                            if(i+1<values.length)
+                                buf.append(",");
+                        }
+                        value = buf.toString();
+                    }
+                } else
+                    value= "??";
                 break;
-*/
             case 'c':
                  Cookie[] c = request.getCookies();
                  for (int i=0; c != null && i < c.length; i++){

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/ExtendedAccessLogValve.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -130,7 +130,7 @@
  *
  *
  * @author Tim Funk
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 567009 $ $Date: 2007-08-17 04:54:37 -0600 (Fri, 17 Aug 2007) $
  */
 
 public class ExtendedAccessLogValve
@@ -584,7 +584,7 @@
                     else if (FieldInfo.SPECIAL_TIME==fieldInfos[i].location)
                         result.append(timeFormatter.format(date));
                     else if (FieldInfo.SPECIAL_BYTES==fieldInfos[i].location) {
-                        int length = response.getContentCount();
+                        long length = response.getContentCountLong() ;
                         if (length > 0)
                             result.append(length);
                         else
@@ -744,7 +744,7 @@
                             FieldInfo.X_LOC_REQUESTEDSESSIONIDVALID) {
                     return wrap(""+request.isRequestedSessionIdValid());
                 } else if (fieldInfo.location==FieldInfo.X_LOC_CONTENTLENGTH) {
-                    return wrap(""+request.getContentLength());
+                    return wrap(""+request.getCoyoteRequest().getContentLengthLong());
                 } else if (fieldInfo.location==
                             FieldInfo.X_LOC_CHARACTERENCODING) {
                     return wrap(request.getCharacterEncoding());

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/FastCommonAccessLogValve.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -55,7 +55,7 @@
  * @author Craig R. McClanahan
  * @author Jason Brittain
  * @author Remy Maucherat
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 567009 $ $Date: 2007-08-17 04:54:37 -0600 (Fri, 17 Aug 2007) $
  */
 
 public final class FastCommonAccessLogValve
@@ -523,8 +523,7 @@
         
         result.append(space);
         
-        int length = response.getContentCount();
-        
+        long length = response.getContentCountLong() ;
         if (length <= 0)
             value = "-";
         else

Modified: trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java
===================================================================
--- trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/catalina/src/share/org/apache/catalina/valves/JDBCAccessLogValve.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -93,6 +93,10 @@
  * INDEX (userAgent)
  * );
  * </pre>
+ * <p>Set JDBCAccessLogValve attribute useLongContentLength="true" as you have more then 4GB outputs. 
+ * Please, use long SQL datatype at access.bytes attribute.
+ * The datatype of bytes at oracle is <i>number</i> and other databases use <i>bytes BIGINT NOT NULL</i>.</p>
+ * 
  * <p>
  * If the table is created as above, its name and the field names don't need 
  * to be defined.
@@ -115,7 +119,6 @@
 
     // ----------------------------------------------------------- Constructors
 
-
     /**
      * Class constructor. Initializes the fields with the default values.
      * The defaults are:
@@ -162,8 +165,13 @@
 
     // ----------------------------------------------------- Instance Variables
 
-
    /**
+    * Use long contentLength as you have more 4 GB output.
+    * @since 5.5.25
+    */
+    protected boolean useLongContentLength = false ;
+    
+   /**
      * The connection username to use when trying to connect to the database.
      */
     protected String connectionName = null;
@@ -419,6 +427,12 @@
         this.resolveHosts = new Boolean(resolveHosts).booleanValue();
     }
 
+    /**
+     * @param useLongContentLength the useLongContentLength to set
+     */
+    public void setUseLongContentLength(boolean useLongContentLength) {
+        this.useLongContentLength = useLongContentLength;
+    }
 
     // --------------------------------------------------------- Public Methods
 
@@ -449,7 +463,8 @@
         String query="";
         if(request != null)
             query = request.getRequestURI();
-        int bytes = response.getContentCount();
+        
+        long bytes = response.getContentCountLong() ;
         if(bytes < 0)
             bytes = 0;
         int status = response.getStatus();
@@ -465,7 +480,14 @@
                 ps.setTimestamp(3, new Timestamp(getCurrentTimeMillis()));
                 ps.setString(4, query);
                 ps.setInt(5, status);
-                ps.setInt(6, bytes);
+                
+                if(useLongContentLength) {
+                    ps.setLong(6, bytes);                
+                } else {
+                    if (bytes > Integer.MAX_VALUE)
+                        bytes = -1 ;
+                    ps.setInt(6, (int) bytes);
+                }               
                 if (pattern.equals("combined")) {
      
                       String virtualHost = "";

Modified: trunk/tomcat5.5/container/modules/build.properties
===================================================================
--- trunk/tomcat5.5/container/modules/build.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/build.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,2 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 #Uncomment the following line to enable the new cluster set
 #cluster-ha=true

Modified: trunk/tomcat5.5/container/modules/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Modules" default="dist" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/modules/cluster/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Cluster" default="dist" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/modules/cluster/etc/cluster-server.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/etc/cluster-server.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/etc/cluster-server.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Example Server Configuration File  - Search for Cluster-->
 <!-- Note that component elements are nested corresponding to their
      parent-child relationships with each other -->

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 cluster.mbean.register.already=MBean {0} already registered!

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/authenticator/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <mbeans-descriptors>
 
   <mbean name="ClusterSingleSignOn"

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <mbeans-descriptors>
 
   <mbean         name="SimpleTcpCluster"

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 cluster.mbean.register.already=MBean {0} already registered!

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastService.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastService.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastService.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -42,7 +42,7 @@
  * 
  * @author Peter Rossbach
  * @author Filip Hanik
- * @version $Revision: 466608 $, $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 567470 $, $Date: 2007-08-19 15:04:15 -0600 (Sun, 19 Aug 2007) $
  */
 
 
@@ -59,7 +59,7 @@
     /**
      * The descriptive information about this implementation.
      */
-    private static final String info = "McastService/2.1";
+    private static final String info = "McastService/2.2";
 
     /**
      * The implementation specific properties
@@ -310,7 +310,16 @@
                                     ttl,
                                     soTimeout,
                                     this);
-
+        String value = properties.getProperty("recoveryEnabled","true");
+        boolean recEnabled = Boolean.valueOf(value).booleanValue() ;
+        impl.setRecoveryEnabled(recEnabled);        
+        int recCnt = Integer.parseInt(properties.getProperty("recoveryCounter","10"));
+        impl.setRecoveryCounter(recCnt);
+        long recSlpTime = Long.parseLong(properties.getProperty("recoverySleepTime","5000"));
+        impl.setRecoverySleepTime(recSlpTime);
+        if(log.isDebugEnabled())
+            log.debug("Recovery Options (enabled=" + recEnabled + ",counter=" +recCnt+ ",time=" +recSlpTime+").");
+        
         impl.start(level);
 		long memberwait = (Long.parseLong(properties.getProperty("msgFrequency"))*4);
         if(log.isInfoEnabled())
@@ -479,6 +488,36 @@
         properties.setProperty("mcastTTL", String.valueOf(mcastTTL));
     }
 
+    public int getRecoveryCounter() {
+        if(impl != null)
+            return impl.getRecoveryCounter() ;
+        else return Integer.parseInt(properties.getProperty("recoveryCounter","10"));
+    }
+    
+    public boolean isRecoveryEnabled() {
+        if(impl != null)
+            return impl.isRecoveryEnabled() ;
+        else return Boolean.getBoolean(properties.getProperty("recoveryEnabled","true"));
+    }
+
+    public long getRecoverySleepTime() {
+        if(impl != null)
+            return impl.getRecoverySleepTime() ;
+        else return Long.parseLong(properties.getProperty("recoverySleepTime","5000"));
+    }
+    
+    public void setRecoveryCounter(int recoveryCounter) {
+        properties.setProperty("recoveryCounter", String.valueOf(recoveryCounter));
+    }
+
+    public void setRecoveryEnabled(boolean recoveryEnabled) {
+        properties.setProperty("recoveryEnabled", String.valueOf(recoveryEnabled));
+    }
+
+    public void setRecoverySleepTime(long recoverySleepTime) {
+        properties.setProperty("recoverySleepTime", String.valueOf(recoverySleepTime));
+    }
+
     /**
      * Simple test program
      * @param args Command-line arguments
@@ -501,4 +540,7 @@
         service.start();
         Thread.sleep(60*1000*60);
     }
+    
+    
+    
 }

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -22,6 +22,8 @@
 import java.io.IOException;
 import java.net.InetAddress ;
 import java.net.DatagramPacket;
+import java.net.SocketTimeoutException;
+
 import org.apache.catalina.cluster.MembershipListener;
 
 /**
@@ -33,7 +35,8 @@
  * Need to fix this, could use java.nio and only need one thread to send and receive, or
  * just use a timeout on the receive
  * @author Filip Hanik
- * @version $Revision: 466608 $, $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @author Peter Rossbach
+ * @version $Revision: 567470 $, $Date: 2007-08-19 15:04:15 -0600 (Sun, 19 Aug 2007) $
  */
 public class McastServiceImpl
 {
@@ -102,6 +105,21 @@
     protected InetAddress mcastBindAddress = null;
 
     /**
+     * nr of times the system has to fail before a recovery is initiated
+     */
+    protected int recoveryCounter = 10;
+    
+    /**
+     * The time the recovery thread sleeps between recovery attempts
+     */
+    protected long recoverySleepTime = 5000;
+    
+    /**
+     * Add the ability to turn on/off recovery
+     */
+    protected boolean recoveryEnabled = true;
+    
+    /**
      * Create a new mcast service impl
      * @param member - the local member
      * @param sendFrequency - the time (ms) in between pings sent out
@@ -129,6 +147,13 @@
         this.mcastSoTimeout = soTimeout;
         this.mcastTTL = ttl;
         this.mcastBindAddress = bind;
+        timeToExpiration = expireTime;
+        this.service = service;
+        this.sendFrequency = sendFrequency;
+        init();
+    }
+
+    protected void init() throws IOException {
         setupSocket();
         sendPacket = new DatagramPacket(new byte[1000],1000);
         sendPacket.setAddress(address);
@@ -136,27 +161,25 @@
         receivePacket = new DatagramPacket(new byte[1000],1000);
         receivePacket.setAddress(address);
         receivePacket.setPort(port);
-        membership = new McastMembership(member.getName());
-        timeToExpiration = expireTime;
-        this.service = service;
-        this.sendFrequency = sendFrequency;
+        if(membership == null) membership = new McastMembership(member.getName());
     }
     
     protected void setupSocket() throws IOException {
         if (mcastBindAddress != null) socket = new MulticastSocket(new java.net.
             InetSocketAddress(mcastBindAddress, port));
         else socket = new MulticastSocket(port);
+	    socket.setLoopbackMode(false); //hint that we don't need loop back messages
         if (mcastBindAddress != null) {
 			if(log.isInfoEnabled())
                 log.info("Setting multihome multicast interface to:" +
                          mcastBindAddress);
             socket.setInterface(mcastBindAddress);
         } //end if
-        if ( mcastSoTimeout >= 0 ) {
- 			if(log.isInfoEnabled())
-                log.info("Setting cluster mcast soTimeout to "+mcastSoTimeout);
-            socket.setSoTimeout(mcastSoTimeout);
-        }
+        //force a so timeout so that we don't block forever
+        if ( mcastSoTimeout <= 0 ) mcastSoTimeout = (int)sendFrequency;
+        if(log.isInfoEnabled())
+            log.info("Setting cluster mcast soTimeout to "+mcastSoTimeout);
+        socket.setSoTimeout(mcastSoTimeout);
         if ( mcastTTL >= 0 ) {
 			if(log.isInfoEnabled())
                 log.info("Setting cluster mcast TTL to " + mcastTTL);
@@ -193,11 +216,17 @@
      * @throws IOException if the service fails to disconnect from the sockets
      */
     public synchronized void stop() throws IOException {
-        socket.leaveGroup(address);
-        doRun = false;
-        sender = null;
-        receiver = null;
-        serviceStartTime = Long.MAX_VALUE;
+        try {
+            socket.leaveGroup(address);
+        } catch (IOException ignore) {
+        } finally {
+            doRun = false;
+            if(sender!= null) sender.interrupt() ;
+            sender = null;
+            if(receiver!= null) receiver.interrupt() ;
+            receiver = null;
+            serviceStartTime = Long.MAX_VALUE;
+        }
     }
 
     /**
@@ -205,22 +234,37 @@
      * @throws IOException
      */
     public void receive() throws IOException {
-        socket.receive(receivePacket);
-        byte[] data = new byte[receivePacket.getLength()];
-        System.arraycopy(receivePacket.getData(),receivePacket.getOffset(),data,0,data.length);
-        McastMember m = McastMember.getMember(data);
-        if(log.isDebugEnabled())
-            log.debug("Mcast receive ping from member " + m);
-        if ( membership.memberAlive(m) ) {
+        try {
+            socket.receive(receivePacket);
+
+            byte[] data = new byte[receivePacket.getLength()];
+            System.arraycopy(receivePacket.getData(),receivePacket.getOffset(),data,0,data.length);
+            McastMember m = McastMember.getMember(data);
             if(log.isDebugEnabled())
-                log.debug("Mcast add member " + m);
-            service.memberAdded(m);
+                log.debug("Mcast receive ping from member " + m);
+            if ( membership.memberAlive(m) ) {
+                if(log.isDebugEnabled())
+                    log.debug("Mcast add member " + m);
+                service.memberAdded(m);
+            }
+        } finally {
+            checkExpire();
         }
-        McastMember[] expired = membership.expire(timeToExpiration);
-        for ( int i=0; i<expired.length; i++) {
-            if(log.isDebugEnabled())
-                log.debug("Mcast exipre  member " + m);
-            service.memberDisappeared(expired[i]);
+    }
+
+    protected Object expiredMutex = new Object();
+
+    /**
+     * check member exipre or alive
+     */
+    protected void checkExpire() {
+        synchronized (expiredMutex) {
+            McastMember[] expired = membership.expire(timeToExpiration);
+            for ( int i=0; i<expired.length; i++) {
+                if(log.isDebugEnabled())
+                    log.debug("Mcast exipre member " + expired[i]);
+                service.memberDisappeared(expired[i]);
+            }
         }
     }
 
@@ -229,55 +273,198 @@
      * @throws Exception
      */
     public void send() throws Exception{
-        member.inc();
-        if(log.isDebugEnabled())
-            log.debug("Mcast send ping from member " + member);
-        byte[] data = member.getData(this.serviceStartTime);
-        DatagramPacket p = new DatagramPacket(data,data.length);
-        p.setAddress(address);
-        p.setPort(port);
-        socket.send(p);
+        try {
+            member.inc();
+
+            if(log.isDebugEnabled())
+                log.debug("Mcast send ping from member " + member);
+            byte[] data = member.getData(this.serviceStartTime);
+            DatagramPacket p = new DatagramPacket(data,data.length);
+            p.setAddress(address);
+            p.setPort(port);
+            socket.send(p);
+        } finally {
+            checkExpire() ;
+        }
     }
 
     public long getServiceStartTime() {
        return this.serviceStartTime;
     }
 
+    public int getRecoveryCounter() {
+        return recoveryCounter;
+    }
 
+    public boolean isRecoveryEnabled() {
+        return recoveryEnabled;
+    }
+
+    public long getRecoverySleepTime() {
+        return recoverySleepTime;
+    }
+
+    public void setRecoveryCounter(int recoveryCounter) {
+        this.recoveryCounter = recoveryCounter;
+    }
+
+    public void setRecoveryEnabled(boolean recoveryEnabled) {
+        this.recoveryEnabled = recoveryEnabled;
+    }
+
+    public void setRecoverySleepTime(long recoverySleepTime) {
+        this.recoverySleepTime = recoverySleepTime;
+    }
+    
     public class ReceiverThread extends Thread {
+        
         public ReceiverThread() {
             super();
             setName("Cluster-MembershipReceiver");
         }
+        
         public void run() {
+            int errorCounter = 0 ;
             while ( doRun ) {
                 try {
                     receive();
+                    errorCounter = 0;
                 } catch ( Exception x ) {
-                    log.warn("Error receiving mcast package. Sleeping 500ms",x);
-                    try { Thread.sleep(500); } catch ( Exception ignore ){}
-                    
+                    if (errorCounter==0) { 
+                        if(! (x instanceof SocketTimeoutException))
+                            log.warn("Error receiving mcast package (errorCounter=" +errorCounter+ "). Sleeping " +sendFrequency + " ms",x);
+                    } else {
+                        if(! (x instanceof SocketTimeoutException)
+                            && log.isDebugEnabled())
+                            log.debug("Error receiving mcast package (errorCounter=" +errorCounter+ "). Sleeping " +sendFrequency+ " ms",x);
+                    }
+                    try { Thread.sleep(sendFrequency); } catch ( Exception ignore ){}
+                    if ( (++errorCounter)>=recoveryCounter ) {
+                        log.warn("Error receiving mcast package (errorCounter=" +errorCounter+ "). Try Recovery!",x);
+                        errorCounter=0;
+                        new RecoveryThread(McastServiceImpl.this);
+                    }
                 }
             }
+            log.warn("Receiver Thread ends with errorCounter=" +errorCounter+ ".");
+            
         }
-    }//class ReceiverThread
+    }
 
     public class SenderThread extends Thread {
+        
         long time;
+        
+        McastServiceImpl service ;
+        
         public SenderThread(long time) {
             this.time = time;
             setName("Cluster-MembershipSender");
 
         }
+        
         public void run() {
+            int errorCounter = 0 ;
             while ( doRun ) {
                 try {
                     send();
+                    errorCounter = 0;
                 } catch ( Exception x ) {
-                    log.warn("Unable to send mcast message.",x);
+                    if (errorCounter==0) {
+                        log.warn("Unable to send mcast message.",x);
+                    }
+                    else {
+                        if(log.isDebugEnabled())
+                            log.debug("Unable to send mcast message.",x);
+                    }
+                    if ( (++errorCounter)>=recoveryCounter ) {
+                        errorCounter=0;
+                        new RecoveryThread(McastServiceImpl.this);
+                     }
                 }
                 try { Thread.sleep(time); } catch ( Exception ignore ) {}
             }
+            log.warn("Sender Thread ends with errorCounter=" +errorCounter+ ".");
+        }       
+    }
+    
+    protected static class RecoveryThread extends Thread {
+        
+        static boolean running = false;
+        
+        McastServiceImpl parent = null;
+       
+        public RecoveryThread(McastServiceImpl parent) {
+            this.parent = parent;
+            if (!init(this)) parent = null;
         }
-    }//class SenderThread
+        
+        public static synchronized boolean init(RecoveryThread t) {
+            if ( running ) {
+                return false;
+            }
+            if ( !t.parent.isRecoveryEnabled()) {
+                return false;
+            }
+            running = true;
+            t.setName("Cluster-MembershipRecovery");
+            t.setDaemon(true);
+            t.start();
+            return true;
+        }
+
+        public boolean stopService() {
+            try {
+                parent.stop();
+                return true;
+            } catch (Exception x) {
+                log.warn("Recovery thread failed to stop membership service.", x);
+                return false;
+            }
+        }
+        
+        public boolean startService() {
+            try {
+                parent.init();
+                parent.start(1);
+                parent.start(2);
+                return true;
+            } catch (Exception x) {
+                log.warn("Recovery thread failed to start membership service.", x);
+                return false;
+            }
+        }
+        
+        public void run() {
+            boolean success = false;
+            int attempt = 0;
+            try {
+                while (!success) {
+                    if(log.isInfoEnabled())
+                        log.info("Cluster membership, running recovery thread, multicasting is not functional.");
+                    success = stopService();
+                    if(success) {
+                        try {
+                            Thread.sleep(1000 + parent.mcastSoTimeout);
+                        } catch (Exception ignore){}
+                        success = startService();
+                        if(success && log.isInfoEnabled())
+                            log.info("Membership recovery was successful.");
+                    }
+                    try {
+                        if (!success) {
+                            if(log.isInfoEnabled())
+                                log.info("Recovery attempt " + (++attempt) + " failed, trying again in " +parent.recoverySleepTime + " milliseconds");
+                            Thread.sleep(parent.recoverySleepTime);
+                            // check member expire...
+                            parent.checkExpire() ;
+                       }
+                    }catch (InterruptedException ignore) {
+                    }
+                }
+            } finally {
+                running = false;
+            }
+        }
+    }
 }

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/mcast/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE mbeans-descriptors PUBLIC
    "-//Apache Software Foundation//DTD Model MBeans Configuration File"
    "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">
@@ -37,6 +53,16 @@
     <attribute   name="mcastTTL"
           description=""
                  type="int"/>
+    <attribute   name="recoveryCounter"
+          description="Counter after membership failure socket restarted (default 10)"
+                 type="int"/>
+    <attribute   name="recoveryEnabled"
+          description="Membership recovery enabled (default true)"
+                   is="true"
+                 type="boolean"/>
+    <attribute   name="recoverySleepTime"
+          description="Sleep time between next socket recovery (5000 msec)"
+                 type="long"/> 
     <attribute   name="localMemberName"
           description="Complete local receiver information"
                  type="java.lang.String"

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/package.html
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/package.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/package.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <body>
 
 <p>This package contains code for Clustering, the base class

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaManager.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaManager.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaManager.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -68,7 +68,7 @@
  * @author Craig R. McClanahan
  * @author Jean-Francois Arcand
  * @author Peter Rossbach
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 565650 $ $Date: 2007-08-14 02:04:19 -0600 (Tue, 14 Aug 2007) $
  */
 
 public class DeltaManager extends ManagerBase implements Lifecycle,
@@ -144,6 +144,17 @@
      */
     private int sendAllSessionsWaitTime = 2 * 1000 ; 
 
+    /**
+     * Send session access message every updateActiveInterval sec 
+     */
+    private int updateActiveInterval = 60;
+
+    /**
+     * The default session maxInactiveInterval + tolerance time interval, in seconds, between client requests before
+     * the servlet container may invalidate a backup session from other cluster node.
+     */
+    private int expireTolerance = 300;
+
     private ArrayList receivedMessageQueue = new ArrayList() ;
     
     private boolean receiverQueue = false ;
@@ -237,6 +248,22 @@
 
     }
 
+    public int getUpdateActiveInterval() {
+        return updateActiveInterval;
+    }
+
+    public void setUpdateActiveInterval(int updateActiveInterval) {
+        this.updateActiveInterval = updateActiveInterval;
+    }
+
+    public int getExpireTolerance() {
+        return expireTolerance;
+    }
+
+    public void setExpireTolerance(int expireTolerance) {
+        this.expireTolerance = expireTolerance;
+    }
+
     /**
      * @return Returns the counterSend_EVT_GET_ALL_SESSIONS.
      */
@@ -620,6 +647,7 @@
         }
 
         DeltaSession session = (DeltaSession) super.createSession(sessionId) ;
+        session.setExpireTolerance(this.expireTolerance);
         if (distribute) {
             sendCreateSession(session.getId(), session);
         }
@@ -637,7 +665,7 @@
      * @param session
      */
     protected void sendCreateSession(String sessionId, DeltaSession session) {
-        if(cluster.getMembers().length > 0 ) {
+        if(cluster != null && cluster.getMembers().length > 0 ) {
             SessionMessage msg = new SessionMessageImpl(getName(),
                     SessionMessage.EVT_SESSION_CREATED, null, sessionId,
                     sessionId + "-" + System.currentTimeMillis());
@@ -747,14 +775,6 @@
                 session.setManager(this);
                 session.setValid(true);
                 session.setPrimarySession(false);
-                //in case the nodes in the cluster are out of
-                //time synch, this will make sure that we have the
-                //correct timestamp, isValid returns true, cause
-                // accessCount=1
-                session.access();
-                //make sure that the session gets ready to expire if
-                // needed
-                session.setAccessCount(0);
                 session.resetDeltaRequest();
                 // FIXME How inform other session id cache like SingleSignOn
                 // increment sessionCounter to correct stats report
@@ -933,6 +953,8 @@
         if (started) {
             return;
         }
+        if(log.isInfoEnabled())
+            log.info("Starting clustering manager...:"+getName());
         started = true;
         lifecycle.fireLifecycleEvent(START_EVENT, null);
 
@@ -1326,7 +1348,9 @@
             if ((msg == null)) {
                 long replDelta = System.currentTimeMillis()
                         - session.getLastTimeReplicated();
-                if (replDelta > (getMaxInactiveInterval() * 1000)) {
+                if (replDelta >= updateActiveInterval*1000 ||
+                    (getMaxInactiveInterval()>=0 &&
+                    replDelta >= getMaxInactiveInterval()*1000)) {
                     counterSend_EVT_SESSION_ACCESSED++;
                     msg = new SessionMessageImpl(getName(),
                             SessionMessage.EVT_SESSION_ACCESSED, null,
@@ -1399,14 +1423,17 @@
      *            session id
      */
     protected void sessionExpired(String id) {
-        counterSend_EVT_SESSION_EXPIRED++ ;
-        SessionMessage msg = new SessionMessageImpl(getName(),
-                SessionMessage.EVT_SESSION_EXPIRED, null, id, id
-                        + "-EXPIRED-MSG");
-        if (log.isDebugEnabled())
-            log.debug(sm.getString("deltaManager.createMessage.expire",
-                    getName(), id));
-        send(msg);
+        // FIX BUG 42720 : don't send a message if no cluster member exists.
+        if (cluster != null && cluster.getMembers().length > 0) {
+            counterSend_EVT_SESSION_EXPIRED++ ;
+            SessionMessage msg = new SessionMessageImpl(getName(),
+                    SessionMessage.EVT_SESSION_EXPIRED, null, id, id
+                    + "-EXPIRED-MSG");
+            if (log.isDebugEnabled())
+                log.debug(sm.getString("deltaManager.createMessage.expire",
+                        getName(), id));
+            send(msg);
+        }
     }
 
     /**
@@ -1493,7 +1520,7 @@
             if (log.isDebugEnabled())
                 log.debug(sm.getString("deltaManager.receiveMessage.eventType",
                         getName(), msg.getEventTypeString(), sender));
- 
+
             switch (msg.getEventType()) {
             case SessionMessage.EVT_GET_ALL_SESSIONS: {
                 handleGET_ALL_SESSIONS(msg,sender);
@@ -1632,6 +1659,9 @@
         session.setValid(true);
         session.setPrimarySession(false);
         session.setCreationTime(msg.getTimestamp());
+        // use container maxInactiveInterval so that session will expire correctly in case of primary transfer
+        session.setMaxInactiveInterval(getMaxInactiveInterval());
+        session.setExpireTolerance(this.expireTolerance);
         session.access();
         if(notifySessionListenersOnReplication)
             session.setId(msg.getSessionID());

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaRequest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaRequest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaRequest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -208,7 +208,7 @@
             new Exception("Session Id is null for setSessionId").fillInStackTrace().printStackTrace();
         }
     }
-    public int getSize() {
+    public synchronized int getSize() {
         return actions.size();
     }
     
@@ -244,7 +244,12 @@
             else {
                 info = new AttributeInfo(-1,-1,null,null);
             }
-            info.readExternal(in);
+            try {
+                info.readExternal(in);
+            } catch (java.io.IOException e) {
+                log.error("Decode failure in delta request receiver: sid=" + sessionId + ", count=" + cnt + ", failure position=" + i);
+                throw e;
+            }
             actions.addLast(info);
         }//for
     }
@@ -335,8 +340,8 @@
             value = in.readObject();
         }
 
-        public synchronized void writeExternal(java.io.ObjectOutput out) throws java.io.
-            IOException {
+        public synchronized void writeExternal(java.io.ObjectOutput out) 
+           throws java.io.IOException {
             //type - int
             //action - int
             //name - String

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaSession.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -74,7 +74,7 @@
  * @author Craig R. McClanahan
  * @author Sean Legassick
  * @author <a href="mailto:jon at latchkey.com">Jon S. Stevens </a>
- * @version $Revision: 500194 $ $Date: 2007-01-26 02:17:39 -0700 (Fri, 26 Jan 2007) $
+ * @version $Revision: 525783 $ $Date: 2007-04-05 11:41:20 +0200 (Thu, 05 Apr 2007) $
  */
 
 public class DeltaSession implements HttpSession, Session, Serializable,
@@ -183,6 +183,12 @@
     private int maxInactiveInterval = -1;
 
     /**
+     * The maxInactiveInterval + tolerance time interval, in seconds, between client requests before
+     * the servlet container may invalidate a backup session from other cluster node.
+     */
+    private int expireTolerance = 300;
+
+    /**
      * Flag indicating whether this session is new or not.
      */
     private boolean isNew = false;
@@ -609,7 +615,7 @@
                     expire(true);
                 }
             } else {
-                if (timeIdle >= (2 * maxInactiveInterval)) {
+                if (timeIdle >= (maxInactiveInterval+expireTolerance)) {
                 //if the session has been idle twice as long as allowed,
                 //the primary session has probably crashed, and no other
                 //requests are coming in. that is why we do this. otherwise
@@ -1657,6 +1663,14 @@
         return accessCount;
     }
 
+    protected void setExpireTolerance(int expireTolerance) {
+        this.expireTolerance = expireTolerance;
+      }
+    
+    protected int getExpireTolerance() {
+        return expireTolerance;
+    }
+
 }
 
 // -------------------------------------------------------------- Private Class

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/JvmRouteBinderValve.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -81,7 +81,7 @@
  * This use case means that only requested session are migrated.
  * 
  * @author Peter Rossbach
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 565470 $ $Date: 2007-08-13 12:35:13 -0600 (Mon, 13 Aug 2007) $
  */
 public class JvmRouteBinderValve extends ValveBase implements ClusterValve, Lifecycle {
 
@@ -218,9 +218,12 @@
      * @param response current response
      */
     protected void handlePossibleTurnover(Request request, Response response) {
-        Session session = request.getSessionInternal(false);
+        Session session = request.getSessionInternal(false);       
         if (session != null) {
-            long t1 = System.currentTimeMillis();
+            long t1 = 0 ;
+            if (log.isDebugEnabled()) {
+                t1 = System.currentTimeMillis();
+            }
             String jvmRoute = getLocalJvmRoute(request);
             if (jvmRoute == null) {
                 if (log.isWarnEnabled())

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 deltaManager.createSession.ise=createSession: Too many active sessions
 deltaManager.createSession.newSession=Created a DeltaSession with Id [{0}] Total count={1}
 deltaManager.createMessage.access=Manager [{0}]: create session message [{1}] access.

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/session/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE mbeans-descriptors PUBLIC
    "-//Apache Software Foundation//DTD Model MBeans Configuration File"
    "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">
@@ -255,6 +271,14 @@
     <attribute   name="sendAllSessionsWaitTime"
           description="wait time between send session block (default 2 sec)"
                  type="int" />
+                 
+    <attribute   name="expireTolerance"
+          description="Auto expire tolerance interval for backup sessions (default 300 sec)"
+                 type="int" />
+                 
+    <attribute   name="updateActiveInterval"
+          description="Send session access to backup after this interval (default 60 sec)"
+                 type="int" />     
 
     <operation   name="listSessionIds"
           description="Return the list of active session ids"
@@ -274,6 +298,15 @@
                  type="java.lang.String"/>
     </operation>
 
+    <operation   name="getSession"
+          description="Return all sessions attributes and values"
+               impact="ACTION"
+           returnType="java.util.HashMap">
+      <parameter name="sessionId"
+          description="Id of the session"
+                 type="java.lang.String"/>
+    </operation>
+
     <operation   name="expireSession"
           description="Expire a session"
                impact="ACTION"
@@ -309,6 +342,7 @@
                impact="ACTION"
                returnType="void">
     </operation>
+    
 	<operation name="getAllClusterSessions"
                description="send to oldest cluster member that this node need all cluster sessions (resync member)"
                impact="ACTION"

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/AsyncSocketSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/AsyncSocketSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/AsyncSocketSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.cluster.tcp;
@@ -36,7 +37,7 @@
  * 
  * @author Filip Hanik
  * @author Peter Rossbach
- * @version $Revision: 366253 $ $Date: 2006-01-05 12:30:42 -0700 (Thu, 05 Jan 2006) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class AsyncSocketSender extends DataSender {
     

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ClusterReceiverBase.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ClusterReceiverBase.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ClusterReceiverBase.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -39,7 +39,7 @@
 /**
 * FIXME i18n log messages
 * @author Peter Rossbach
-* @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+* @version $Revision: 567298 $ $Date: 2007-08-18 11:14:07 -0600 (Sat, 18 Aug 2007) $
 */
 
 public abstract class ClusterReceiverBase implements Runnable, ClusterReceiver,ListenCallback {
@@ -93,6 +93,16 @@
 
     private long lastChecked = System.currentTimeMillis();
 
+    private int rxBufSize = 43800;
+    private int txBufSize = 25188;
+    private boolean tcpNoDelay = true;
+    private boolean soKeepAlive = false;
+    private boolean ooBInline = true;
+    private boolean soReuseAddress = true;
+    private boolean soLingerOn = true;
+    private int soLingerTime = 3;
+    private int soTrafficClass = 0x04 | 0x08 | 0x010;
+    private int timeout = -1; // Regression with older release, better set timeout at production env
 
     /**
      * Compress message data bytes
@@ -105,6 +115,146 @@
     private ObjectName objectName;
 
     /**
+     * @return the ooBInline
+     */
+    public boolean isOoBInline() {
+        return ooBInline;
+    }
+
+    /**
+     * @param ooBInline the ooBInline to set
+     */
+    public void setOoBInline(boolean ooBInline) {
+        this.ooBInline = ooBInline;
+    }
+
+    /**
+     * @return the rxBufSize
+     */
+    public int getRxBufSize() {
+        return rxBufSize;
+    }
+
+    /**
+     * @param rxBufSize the rxBufSize to set
+     */
+    public void setRxBufSize(int rxBufSize) {
+        this.rxBufSize = rxBufSize;
+    }
+
+    /**
+     * @return the soKeepAlive
+     */
+    public boolean isSoKeepAlive() {
+        return soKeepAlive;
+    }
+
+    /**
+     * @param soKeepAlive the soKeepAlive to set
+     */
+    public void setSoKeepAlive(boolean soKeepAlive) {
+        this.soKeepAlive = soKeepAlive;
+    }
+
+    /**
+     * @return the soLingerOn
+     */
+    public boolean isSoLingerOn() {
+        return soLingerOn;
+    }
+
+    /**
+     * @param soLingerOn the soLingerOn to set
+     */
+    public void setSoLingerOn(boolean soLingerOn) {
+        this.soLingerOn = soLingerOn;
+    }
+
+    /**
+     * @return the soLingerTime
+     */
+    public int getSoLingerTime() {
+        return soLingerTime;
+    }
+
+    /**
+     * @param soLingerTime the soLingerTime to set
+     */
+    public void setSoLingerTime(int soLingerTime) {
+        this.soLingerTime = soLingerTime;
+    }
+
+    /**
+     * @return the soReuseAddress
+     */
+    public boolean isSoReuseAddress() {
+        return soReuseAddress;
+    }
+
+    /**
+     * @param soReuseAddress the soReuseAddress to set
+     */
+    public void setSoReuseAddress(boolean soReuseAddress) {
+        this.soReuseAddress = soReuseAddress;
+    }
+
+    /**
+     * @return the soTrafficClass
+     */
+    public int getSoTrafficClass() {
+        return soTrafficClass;
+    }
+
+    /**
+     * @param soTrafficClass the soTrafficClass to set
+     */
+    public void setSoTrafficClass(int soTrafficClass) {
+        this.soTrafficClass = soTrafficClass;
+    }
+
+    /**
+     * @return the tcpNoDelay
+     */
+    public boolean isTcpNoDelay() {
+        return tcpNoDelay;
+    }
+
+    /**
+     * @param tcpNoDelay the tcpNoDelay to set
+     */
+    public void setTcpNoDelay(boolean tcpNoDelay) {
+        this.tcpNoDelay = tcpNoDelay;
+    }
+
+    /**
+     * @return the timeout
+     */
+    public int getTimeout() {
+        return timeout;
+    }
+
+    /**
+     * @param timeout the timeout to set
+     */
+    public void setTimeout(int timeout) {
+        this.timeout = timeout;
+    }
+
+    /**
+     * @return the txBufSize
+     */
+    public int getTxBufSize() {
+        return txBufSize;
+    }
+
+    /**
+     * @param txBufSize the txBufSize to set
+     */
+    public void setTxBufSize(int txBufSize) {
+        this.txBufSize = txBufSize;
+    }
+    
+    /**
      * @return Returns the doListen.
      */
     public boolean isDoListen() {
@@ -117,10 +267,6 @@
     public java.net.InetAddress getBind() {
         if (bind == null) {
             try {
-                if ("auto".equals(tcpListenAddress)) {
-                    tcpListenAddress = java.net.InetAddress.getLocalHost()
-                            .getHostAddress();
-                }
                 if (log.isDebugEnabled())
                     log.debug("Starting replication listener on address:"
                             + tcpListenAddress);
@@ -196,13 +342,38 @@
         this.sendAck = sendAck;
     }
  
+    /**
+     * get tcp listen recevier ip address
+     * @return listen address
+     */
     public String getTcpListenAddress() {
         return tcpListenAddress;
     }
-    
+
+    /**
+     * Set TCP listen ip address. If arg auto use InetAddress.getLocalHost()
+     * otherwise arg converted with InetAddress.getByName().
+     * 
+     * @param tcpListenAddress 
+     */
     public void setTcpListenAddress(String tcpListenAddress) {
-        this.tcpListenAddress = tcpListenAddress;
+        try {
+            if ("auto".equals(tcpListenAddress)) {
+                this.tcpListenAddress = 
+                    java.net.InetAddress.getLocalHost().getHostAddress();
+            } else {
+                this.tcpListenAddress =
+                    java.net.InetAddress.getByName(tcpListenAddress).getHostAddress();
+            }
+            if (log.isDebugEnabled())
+                log.debug("Set replication listener on address:"
+                        + this.tcpListenAddress);
+        } catch (IOException ioe) {
+            log.error("Failed get Inet address at replication listener on address:"
+                    + tcpListenAddress, ioe);
+        }
     }
+
     
     public int getTcpListenPort() {
         return tcpListenPort;

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.cluster.tcp;
@@ -19,7 +20,9 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.net.Socket;
+import java.net.SocketAddress;
 import java.net.SocketException;
 
 import org.apache.catalina.cluster.ClusterMessage;
@@ -32,7 +35,7 @@
  * 
  * @author Peter Rossbach
  * @author Filip Hanik
- * @version $Revision: 418134 $ $Date: 2006-06-29 14:54:33 -0600 (Thu, 29 Jun 2006) $
+ * @version $Revision: 567298 $ $Date: 2007-08-18 11:14:07 -0600 (Sat, 18 Aug 2007) $
  * @since 5.5.7
  */
 public class DataSender implements IDataSender {
@@ -51,7 +54,7 @@
     /**
      * The descriptive information about this implementation.
      */
-    private static final String info = "DataSender/2.1";
+    private static final String info = "DataSender/2.2";
 
     /**
      * receiver address
@@ -89,12 +92,18 @@
      */
     private SenderState senderState = new SenderState();
 
+    private int rxBufSize = 25188;
+    private int txBufSize = 43800;
+    private int timeout = 30000;
+    private boolean tcpNoDelay = true;
+    private boolean soKeepAlive = false;
+    private boolean ooBInline = true;
+    private boolean soReuseAddress = true;
+    private boolean soLingerOn = false;
+    private int soLingerTime = 3;
+    private int soTrafficClass = 0x04 | 0x08 | 0x010;
+     
     /**
-     * wait time for ack
-     */
-    private long ackTimeout;
-
-    /**
      * number of requests
      */
     protected long nrOfRequests = 0;
@@ -212,7 +221,7 @@
     /**
      * After failure make a resend
      */
-    private boolean resend = false ;
+    private boolean resend = true ;
     
     // ------------------------------------------------------------- Constructor
     
@@ -486,12 +495,178 @@
             this.senderState.setReady();
     }
 
+    /**
+     * @return the ooBInline
+     * @since 5.5.25
+     */
+    public boolean isOoBInline() {
+        return ooBInline;
+    }
+
+    /**
+     * @param ooBInline the ooBInline to set
+     * @since 5.5.25
+     */
+    public void setOoBInline(boolean ooBInline) {
+        this.ooBInline = ooBInline;
+    }
+
+    /**
+     * @return the rxBufSize
+     * @since 5.5.25
+     */
+    public int getRxBufSize() {
+        return rxBufSize;
+    }
+
+    /**
+     * @param rxBufSize the rxBufSize to set
+     * @since 5.5.25
+     */
+    public void setRxBufSize(int rxBufSize) {
+        this.rxBufSize = rxBufSize;
+    }
+
+    /**
+     * @return the soKeepAlive
+     * @since 5.5.25
+     */
+    public boolean isSoKeepAlive() {
+        return soKeepAlive;
+    }
+
+    /**
+     * @param soKeepAlive the soKeepAlive to set
+     * @since 5.5.25
+     */
+    public void setSoKeepAlive(boolean soKeepAlive) {
+        this.soKeepAlive = soKeepAlive;
+    }
+
+    /**
+     * @return the soLingerOn
+     * @since 5.5.25
+     */
+    public boolean isSoLingerOn() {
+        return soLingerOn;
+    }
+
+    /**
+     * @param soLingerOn the soLingerOn to set
+     * @since 5.5.25
+     */
+    public void setSoLingerOn(boolean soLingerOn) {
+        this.soLingerOn = soLingerOn;
+    }
+
+    /**
+     * @return the soLingerTime
+     * @since 5.5.25
+     */
+    public int getSoLingerTime() {
+        return soLingerTime;
+    }
+
+    /**
+     * @param soLingerTime the soLingerTime to set
+     * @since 5.5.25
+     */
+    public void setSoLingerTime(int soLingerTime) {
+        this.soLingerTime = soLingerTime;
+    }
+
+    /**
+     * @return the soReuseAddress
+     * @since 5.5.25
+     */
+    public boolean isSoReuseAddress() {
+        return soReuseAddress;
+    }
+
+    /**
+     * @param soReuseAddress the soReuseAddress to set
+     * @since 5.5.25
+     */
+    public void setSoReuseAddress(boolean soReuseAddress) {
+        this.soReuseAddress = soReuseAddress;
+    }
+
+    /**
+     * @return the soTrafficClass
+     * @since 5.5.25
+     */
+    public int getSoTrafficClass() {
+        return soTrafficClass;
+    }
+
+    /**
+     * @param soTrafficClass the soTrafficClass to set
+     * @since 5.5.25
+     */
+    public void setSoTrafficClass(int soTrafficClass) {
+        this.soTrafficClass = soTrafficClass;
+    }
+
+    /**
+     * @return the tcpNoDelay
+     * @since 5.5.25
+     */
+    public boolean isTcpNoDelay() {
+        return tcpNoDelay;
+    }
+
+    /**
+     * @param tcpNoDelay the tcpNoDelay to set
+     * @since 5.5.25
+     */
+    public void setTcpNoDelay(boolean tcpNoDelay) {
+        this.tcpNoDelay = tcpNoDelay;
+    }
+
+    /**
+     * @return the timeout
+     * @since 5.5.25
+     */
+    public int getTimeout() {
+        return timeout;
+    }
+
+    /**
+     * @param timeout the timeout to set
+     * @since 5.5.25
+     */
+    public void setTimeout(int timeout) {
+        this.timeout = timeout;
+    }
+
+    /**
+     * @return the txBufSize
+     * @since 5.5.25
+     */
+    public int getTxBufSize() {
+        return txBufSize;
+    }
+
+    /**
+     * @param txBufSize the txBufSize to set
+     * @since 5.5.25
+     */
+    public void setTxBufSize(int txBufSize) {
+        this.txBufSize = txBufSize;
+    }
+
+    /**
+     * @deprecated since 5.5.25 use timeout instead
+     */
     public long getAckTimeout() {
-        return ackTimeout;
+        return timeout;
     }
 
+    /**
+     * @deprecated since 5.5.25 use timeout instead
+     */
     public void setAckTimeout(long ackTimeout) {
-        this.ackTimeout = ackTimeout;
+        this.timeout = (int)ackTimeout;
     }
 
     public long getKeepAliveTimeout() {
@@ -690,7 +865,7 @@
        try {
             createSocket();
             if (isWaitForAck())
-                socket.setSoTimeout((int) ackTimeout);
+                socket.setSoTimeout((int) getTimeout());
             isSocketConnected = true;
             socketOpenCounter++;
             this.keepAliveCount = 0;
@@ -709,11 +884,30 @@
      }
 
     /**
+     * Create new Socket and use actTimeout (>0) as connect timeout
+     * 
      * @throws IOException
      * @throws SocketException
      */
     protected void createSocket() throws IOException, SocketException {
-        socket = new Socket(getAddress(), getPort());
+        SocketAddress sockAddr = new InetSocketAddress(getAddress(), getPort());
+        socket = new Socket();
+        int timeout = getTimeout();
+        if (timeout > 0) {
+           socket.connect(sockAddr, timeout);
+           socket.setSoTimeout(timeout);
+        } else {
+           socket.connect(sockAddr);
+        }
+        socket.setSendBufferSize(getTxBufSize());
+        socket.setReceiveBufferSize(getRxBufSize());
+        socket.setTcpNoDelay(isTcpNoDelay());
+        socket.setKeepAlive(isSoKeepAlive());
+        socket.setReuseAddress(isSoReuseAddress());
+        socket.setOOBInline(isOoBInline());
+        socket.setSoLinger(isSoLingerOn(),getSoLingerTime());
+        socket.setTrafficClass(getSoTrafficClass());
+
     }
 
     /**
@@ -882,7 +1076,7 @@
             out.write(XByteBuffer.createDataPackage(message,data.getCompress()));
             out.flush();
             if (isWaitForAck())
-                waitForAck(ackTimeout);
+                waitForAck(getTimeout());
         } finally {
             synchronized(this) {
                 isMessageTransferStarted = false ;
@@ -928,13 +1122,11 @@
             missingAckCounter++;
             String errmsg = sm.getString("IDataSender.ack.missing", getAddress(),
                                          new Integer(socket.getLocalPort()), 
-                                         new Long(this.ackTimeout));
+                                         new Long(this.timeout));
             if ( !this.isSuspect() ) {
                 this.setSuspect(true);
-                if ( log.isWarnEnabled() ) log.warn(errmsg, x);
-            } else {
-                if ( log.isDebugEnabled() )log.debug(errmsg, x);
             }
+            if ( log.isDebugEnabled() ) log.debug(errmsg, x);
             throw x;
         } finally {
             if(doWaitAckStats) {

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSenders.properties
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSenders.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/DataSenders.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 fastasyncqueue=org.apache.catalina.cluster.tcp.FastAsyncSocketSender
 asynchronous=org.apache.catalina.cluster.tcp.AsyncSocketSender
 synchronous=org.apache.catalina.cluster.tcp.SocketSender

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/FastAsyncSocketSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/FastAsyncSocketSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/FastAsyncSocketSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2004-2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.cluster.tcp;
@@ -41,7 +42,7 @@
  * </ul>
  * FIXME: refactor code duplications with AsyncSocketSender => configurable or extract super class 
  * @author Peter Rossbach ( idea comes form Rainer Jung)
- * @version $Revision: 465902 $ $Date: 2006-10-19 15:37:51 -0600 (Thu, 19 Oct 2006) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  * @since 5.5.9
  */
 public class FastAsyncSocketSender extends DataSender {

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 AsyncSocketSender.create.thread=Create sender [{0}:{1,number,integer}] queue thread to tcp background replication
 AsyncSocketSender.queue.message=Queue message to [{0}:{1,number,integer}] id=[{2}] size={3}
 AsyncSocketSender.send.error=Unable to asynchronously send session with id=[{0}] - message will be ignored.
@@ -67,7 +82,7 @@
 SocketReplictionListener.accept.failure=ServerSocket [{0}:{1}] - Exception to start thread or accept server socket
 SocketReplictionListener.open=Open Socket at [{0}:{1}]
 SocketReplictionListener.openclose.failure=ServerSocket [{0}:{1}] - Exception to open or close server socket
-SocketReplictionListener.portbusy=Port busy at [{0}:{i}] - reason [{2}]
+SocketReplictionListener.portbusy=Port busy at [{0}:{1}] - reason [{2}]
 SocketReplictionListener.serverSocket.notExists=Fatal error: Receiver socket not bound address={0} port={1} maxport={2}
 SocketReplictionListener.timeout=Receiver ServerSocket no started [{0}:{1}] - reason: timeout={2} or listen={3}
-SocketReplictionListener.unlockSocket.failure=UnLocksocket failure at ServerSocket [{0:{1}]
+SocketReplictionListener.unlockSocket.failure=UnLocksocket failure at ServerSocket [{0}:{1}]

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationListener.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -34,7 +34,7 @@
 * FIXME jmx support
 * @author Peter Rossbach
 * @author Filip Hanik
-* @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+* @version $Revision: 567298 $ $Date: 2007-08-18 11:14:07 -0600 (Sat, 18 Aug 2007) $
 */
 public class ReplicationListener extends ClusterReceiverBase
 {
@@ -123,6 +123,7 @@
         serverChannel.configureBlocking (false);
         // register the ServerSocketChannel with the Selector
         serverChannel.register (selector, SelectionKey.OP_ACCEPT);
+        
         while (doListen && selector != null) {
             // this may block for a long time, upon return the
             // selected set contains keys of the ready channels
@@ -135,11 +136,11 @@
                     //selector wakeup().
                     //if that happens, we must ensure that that
                     //thread has enough time to call interestOps
-                    synchronized (interestOpsMutex) {
+                    //synchronized (interestOpsMutex) {
                         //if we got the lock, means there are no
                         //keys trying to register for the 
                         //interestOps method
-                    }
+                    //}
                     continue; // nothing to do
                 }
                 // get an iterator over the set of selected keys
@@ -151,7 +152,19 @@
                     if (key.isAcceptable()) {
                         ServerSocketChannel server =
                             (ServerSocketChannel) key.channel();
+                        // get channel
                         SocketChannel channel = server.accept();
+                        channel.socket().setReceiveBufferSize(getRxBufSize());
+                        channel.socket().setSendBufferSize(getTxBufSize());
+                        channel.socket().setTcpNoDelay(isTcpNoDelay());
+                        channel.socket().setKeepAlive(isSoKeepAlive());
+                        channel.socket().setOOBInline(isOoBInline());
+                        channel.socket().setReuseAddress(isSoReuseAddress());
+                        channel.socket().setSoLinger(isSoLingerOn(),getSoLingerTime());
+                        channel.socket().setTrafficClass(getSoTrafficClass());
+                        if(getTimeout() > -1)
+                            channel.socket().setSoTimeout(getTimeout());
+                        // attach Reader and register channel
                         Object attach = new ObjectReader(channel, selector,
                                     this) ;
                         registerChannel(selector,

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationTransmitter.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationTransmitter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/ReplicationTransmitter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2004-2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.cluster.tcp;
@@ -46,7 +47,7 @@
  * 
  * @author Peter Rossbach
  * @author Filip Hanik
- * @version $Revision: 418134 $ $Date: 2006-06-29 14:54:33 -0600 (Thu, 29 Jun 2006) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class ReplicationTransmitter implements ClusterSender,IDynamicProperty {
     private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory
@@ -431,7 +432,21 @@
             ClusterData data = serialize(message);
             String key = getKey(member);
             IDataSender sender = (IDataSender) map.get(key);
-            sendMessageData(data, sender);
+            if(sender == null) {
+                if (log.isErrorEnabled() ) {
+                    IDataSender[] senders = getSenders();
+                    StringBuffer senderInfo = new StringBuffer() ;
+                    for (int i = 0; i < senders.length; i++) {
+                        IDataSender sender1 = senders[i];
+                        senderInfo.append(sender1.toString());
+                        if(i-1 < senders.length)
+                            senderInfo.append(",") ;
+                    }                     
+                    log.error("Unable to send replicated message to member ["+
+                            member+"], has only senders for [" + senderInfo + "]");
+                }
+            } else
+                sendMessageData(data, sender);
         } finally {
             if (doTransmitterProcessingStats) {
                 addProcessingStats(time);

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SendMessageData.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SendMessageData.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SendMessageData.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.cluster.tcp;
@@ -20,7 +21,7 @@
 
 /**
  * @author Peter Rossbach
- * @version $Revision: 303987 $ $Date: 2005-07-08 14:50:30 -0600 (Fri, 08 Jul 2005) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class SendMessageData {
 

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SimpleTcpCluster.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -77,7 +77,7 @@
  * @author Filip Hanik
  * @author Remy Maucherat
  * @author Peter Rossbach
- * @version $Revision: 466608 $, $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 522314 $, $Date: 2007-03-25 19:46:37 +0200 (Sun, 25 Mar 2007) $
  */
 public class SimpleTcpCluster implements CatalinaCluster, Lifecycle,
         MembershipListener, LifecycleListener, IDynamicProperty {
@@ -620,18 +620,25 @@
     }
 
     /**
-     * @param name
-     * @param manager
-     * @return
+     * Returns the name for the cluster manager.  This name
+     * depends on whether the cluster manager is defined inside
+     * a Host or an Engine.
+     * Should the cluster be defined in the Engine element, the manager name
+     * is Host.getName+"#"+Context.getManager().getName()
+     * otherwise the name is simply Context.getManager().getName()
+     * @param name The current name
+     * @param manager The cluster manager implementation
+     * @return The name to use for the cluster manager
      */
-    private String getManagerName(String name, Manager manager) {
+    public String getManagerName(String name, Manager manager) {
         String clusterName = name ;
+        if ( clusterName == null ) clusterName = manager.getContainer().getName();
         if(getContainer() instanceof Engine) {
             Container context = manager.getContainer() ;
             if(context != null && context instanceof Context) {
                 Container host = ((Context)context).getParent();
-                if(host != null && host instanceof Host)
-                    clusterName = host.getName()  + name ;
+                if(host != null && host instanceof Host && clusterName!=null && !(clusterName.indexOf("#")>=0))
+                    clusterName = host.getName() +"#" + clusterName ;
             }
         }
         return clusterName;

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationListener.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationListener.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationListener.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -26,7 +26,7 @@
 
 /**
  * @author Peter Rossbach
- * @version $Revision: 466608 $, $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 567298 $, $Date: 2007-08-18 11:14:07 -0600 (Sat, 18 Aug 2007) $
  */
 public class SocketReplicationListener extends ClusterReceiverBase {
 
@@ -44,7 +44,7 @@
     /**
      * The descriptive information about this implementation.
      */
-    private static final String info = "SocketReplicationListener/1.2";
+    private static final String info = "SocketReplicationListener/1.3";
 
     //  ---------------------------------------------------- Properties
     private ServerSocket serverSocket = null;
@@ -100,6 +100,8 @@
         this.tcpListenTimeout = tcpListenTimeout;
     }
 
+
+
     //  ---------------------------------------------------- public methods
 
     /**
@@ -130,7 +132,8 @@
     //  ---------------------------------------------------- protected methods
 
     /**
-     * Master/Slave Sender handling / bind Server Socket at addres and port
+     * Master/Slave sender handling
+     * bind server socket to address and port
      * 
      * @throws Exception
      */
@@ -141,7 +144,7 @@
             return;
         }
 
-        // Get the associated ServerSocket to bind it with
+        // Get the associated ServerSocket to bind it with client
         try {
             serverSocket = createServerSocket();
             if(serverSocket != null) {
@@ -150,6 +153,18 @@
                     try {
                         Socket socket = serverSocket.accept();
                         if (doListen) {
+                            if ( socket == null ) continue;
+                            socket.setReceiveBufferSize(getRxBufSize());
+                            socket.setSendBufferSize(getTxBufSize());
+                            socket.setTcpNoDelay(isTcpNoDelay());
+                            socket.setKeepAlive(isSoKeepAlive());
+                            socket.setOOBInline(isOoBInline());
+                            socket.setReuseAddress(isSoReuseAddress());
+                            socket.setSoLinger(isSoLingerOn(),getSoLingerTime());
+                            socket.setTrafficClass(getSoTrafficClass());
+                            if( getTimeout() > -1)
+                                socket.setSoTimeout(getTimeout());
+                            // Switch to separate thread and read all messages
                             SocketReplicationThread t = new SocketReplicationThread(
                                     this, socket);
                             t.setDaemon(true);
@@ -203,6 +218,7 @@
                             inet.getHostAddress(),
                             Integer.toString(i), 
                             ex.toString()));
+                try {Thread.sleep(25);}catch( InterruptedException ti) {}
                 continue;
             }
         }

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/SocketReplicationThread.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,6 +20,7 @@
 import java.io.InputStream;
 import java.net.Socket;
 import java.net.SocketException;
+import java.net.SocketTimeoutException;
 
 import org.apache.catalina.cluster.io.ListenCallback;
 import org.apache.catalina.cluster.io.SocketObjectReader;
@@ -28,7 +29,7 @@
  * @author Peter Rossbach
  * FIXME ThreadPooling
  * FIXME Socket timeout
- * @version $Revision: 466608 $, $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 567298 $, $Date: 2007-08-18 11:14:07 -0600 (Sat, 18 Aug 2007) $
  */
 public class SocketReplicationThread extends Thread implements ListenCallback {
     private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory
@@ -74,6 +75,7 @@
             InputStream in = socket.getInputStream();
             while (keepRunning) {
                 int cnt = in.read(buffer);
+                // ignore this: normal read timeout 
                 if (log.isTraceEnabled()) {
                     log.trace("read " + cnt + " bytes from " + socket.getPort());
                 }
@@ -88,6 +90,8 @@
                     // EOF
                     keepRunning = false;
             }
+        } catch (SocketTimeoutException se) {
+            // ignore this: normal shutdown or stop listen socket 
         } catch (SocketException se) {
             // ignore this: normal shutdown or stop listen socket 
         } catch (IOException x) {
@@ -96,7 +100,6 @@
             // finish socket
             if (socket != null) {
                 try {
-
                     socket.close();
                 } catch (Exception ignore) {
                 }

Modified: trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/src/share/org/apache/catalina/cluster/tcp/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE mbeans-descriptors PUBLIC
    "-//Apache Software Foundation//DTD Model MBeans Configuration File"
    "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">
@@ -105,8 +121,43 @@
           description="number of tcp listener worker threads"
                  type="int"/>
     <attribute   name="tcpSelectorTimeout"
-          description="tcp listener Selector timeout"
+          description="tcp listener Selector timeout (msec)"
                  type="long"/>
+    <attribute   name="soTrafficClass"
+          description="traffic class (default 0x04 | 0x08 | 0x010)"
+                 type="int"/>
+    <attribute   name="rxBufSize"
+          description="receiver buffer size (default 43800)"
+                 type="int"/>
+    <attribute   name="txBufSize"
+          description="send buffer size (default 25188)"
+                 type="int"/>
+    <attribute   name="tcpNoDelay"
+          description="set tcpNoDelay (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soKeepAlive"
+          description="set soKeepAlive (default false)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="ooBInline"
+          description="set ooBInline (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soReuseAddress"
+          description="set soReuseAddress (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soLingerOn"
+          description="set soLingerOn (default false)"
+			     is="true"
+                 type="boolean" />             
+    <attribute   name="soLingerTime"
+          description="if soLingerOn use soLingerTime (default 3 msec)"
+                 type="int"/>
+    <attribute   name="timeout"
+          description="soTimeout and acknowledge timeout (default no timeout (-1), use msec)"
+                 type="long"/>
     <attribute   name="nrOfMsgsReceived"
           description="number of messages received from other nodes"
                  type="long"
@@ -116,19 +167,19 @@
                  type="long"
                  writeable="false"/>
     <attribute   name="receivedProcessingTime"
-          description="received processing time"
+          description="received processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minReceivedProcessingTime"
-          description="minimal received processing time"
+          description="minimal received processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgReceivedProcessingTime"
-          description="received processing time / nrOfRequests"
+          description="received processing time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxReceivedProcessingTime"
-          description="maximal received processing time"
+          description="maximal received processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doReceivedProcessingStats"
@@ -136,7 +187,7 @@
 			     is="true"
                  type="boolean" />                
     <attribute   name="avgTotalReceivedBytes"
-          description="received totalReceivedBytes / nrOfMsgsReceived"
+          description="received totalReceivedBytes / nrOfMsgsReceived (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="totalReceivedBytes"
@@ -204,24 +255,59 @@
           description="number of messages received from other nodes"
                  type="long"
                  writeable="false"/>
+    <attribute   name="soTrafficClass"
+          description="traffic class (default 0x04 | 0x08 | 0x010)"
+                 type="int"/>
+    <attribute   name="rxBufSize"
+          description="receiver buffer size (default 43800)"
+                 type="int"/>
+    <attribute   name="txBufSize"
+          description="send buffer size (default 25188)"
+                 type="int"/>
+    <attribute   name="tcpNoDelay"
+          description="set tcpNoDelay (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soKeepAlive"
+          description="set soKeepAlive (default false)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="ooBInline"
+          description="set ooBInline (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soReuseAddress"
+          description="set soReuseAddress (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soLingerOn"
+          description="set soLingerOn (default false)"
+			     is="true"
+                 type="boolean" />             
+    <attribute   name="soLingerTime"
+          description="if soLingerOn use soLingerTime (default 3 msec)"
+                 type="int"/>
+    <attribute   name="timeout"
+          description="soTimeout and acknowledge timeout (default no timeout (-1), use msec)"
+                 type="long"/>
     <attribute   name="receivedTime"
-          description="total time message send time"
+          description="total time message send time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="receivedProcessingTime"
-          description="received processing time"
+          description="received processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minReceivedProcessingTime"
-          description="minimal received processing time"
+          description="minimal received processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgReceivedProcessingTime"
-          description="received processing time / nrOfRequests"
+          description="received processing time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxReceivedProcessingTime"
-          description="maximal received processing time"
+          description="maximal received processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doReceivedProcessingStats"
@@ -229,7 +315,7 @@
 			     is="true"
                  type="boolean" />                
     <attribute   name="avgTotalReceivedBytes"
-          description="received totalReceivedBytes / nrOfMsgsReceived"
+          description="received totalReceivedBytes / nrOfMsgsReceived (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="totalReceivedBytes"
@@ -285,7 +371,7 @@
           description="replication mode (synchnous,pooled.asynchnous,fastasyncqueue)"
                  type="java.lang.String"/>
     <attribute   name="ackTimeout"
-          description="acknowledge timeout"
+          description="acknowledge timeout (msec)"
                  type="long"/>
     <attribute   name="autoConnect"
           description="is sender disabled, fork a new socket"
@@ -297,19 +383,19 @@
                  type="boolean"
                  writeable="false" />
     <attribute   name="processingTime"
-          description="sending processing time"
+          description="sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minProcessingTime"
-          description="minimal sending processing time"
+          description="minimal sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgProcessingTime"
-          description="processing time / nrOfRequests"
+          description="processing time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxProcessingTime"
-          description="maximal sending processing time"
+          description="maximal sending processing time  (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doTransmitterProcessingStats"
@@ -379,12 +465,41 @@
 			     is="true"
                  type="boolean"
                  writeable="false"/>
+    <attribute   name="txBufSize"
+          description="send buffer size (default 43800)"
+                 type="int"/>
+    <attribute   name="tcpNoDelay"
+          description="set tcpNoDelay (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soKeepAlive"
+          description="set soKeepAlive (default false)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="ooBInline"
+          description="set ooBInline (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soReuseAddress"
+          description="set soReuseAddress (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soLingerOn"
+          description="set soLingerOn (default false)"
+			     is="true"
+                 type="boolean" />             
+    <attribute   name="soLingerTime"
+          description="if soLingerOn use soLingerTime (default 3 msec)"
+                 type="int"/>
+    <attribute   name="timeout"
+          description="connect and acknowledge timeout (default 30000 msec)"
+                 type="long"/>
     <attribute   name="ackTimeout"
-          description="acknowledge timeout"
+          description="acknowledge timeout acknowledge timeout (deprecated use timeout)"
                  type="long"/>                 
     <attribute   name="avgMessageSize"
                  writeable="false"
-          description="avg message size (totalbytes/nrOfRequests"
+          description="avg message size (totalbytes/nrOfRequests)"
                  type="long"/>
     <attribute   name="queueSize"
                  writeable="false"
@@ -400,7 +515,7 @@
                  is="true"
                  writeable="false"/>
     <attribute   name="keepAliveTimeout"
-          description="active socket keep alive timeout"
+          description="active socket keep alive timeout (msec)"
                  type="long"/>
     <attribute   name="keepAliveMaxRequestCount"
           description="max request over this socket"
@@ -410,7 +525,7 @@
                  type="int"
                  writeable="false"/>
     <attribute   name="keepAliveConnectTime"
-          description="Connect time for keep alive"
+          description="Connect time for keep alive (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="resend"
@@ -431,19 +546,19 @@
                  type="long"
                  writeable="false"/>
     <attribute   name="processingTime"
-          description="sending processing time"
+          description="sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minProcessingTime"
-          description="minimal sending processing time"
+          description="minimal sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgProcessingTime"
-          description="processing time / nrOfRequests"
+          description="processing time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxProcessingTime"
-          description="maximal sending processing time"
+          description="maximal sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doProcessingStats"
@@ -451,19 +566,19 @@
 			     is="true"
                  type="boolean" />
     <attribute   name="waitAckTime"
-          description="sending waitAck time"
+          description="sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minWaitAckTime"
-          description="minimal sending waitAck time"
+          description="minimal sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgWaitAckTime"
-          description="waitAck time / nrOfRequests"
+          description="waitAck time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxWaitAckTime"
-          description="maximal sending waitAck time"
+          description="maximal sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doWaitAckStats"
@@ -561,12 +676,47 @@
 			     is="true"
                  type="boolean"
                  writeable="false"/>
+    <attribute   name="soTrafficClass"
+          description="traffic class (default 0x04 | 0x08 | 0x010)"
+                 type="int"/>
+    <attribute   name="rxBufSize"
+          description="receiver buffer size (default 25188)"
+                 type="int"/>
+    <attribute   name="txBufSize"
+          description="send buffer size (default 43800)"
+                 type="int"/>
+    <attribute   name="tcpNoDelay"
+          description="set tcpNoDelay (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soKeepAlive"
+          description="set soKeepAlive (default false)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="ooBInline"
+          description="set ooBInline (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soReuseAddress"
+          description="set soReuseAddress (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soLingerOn"
+          description="set soLingerOn (default false)"
+			     is="true"
+                 type="boolean" />             
+    <attribute   name="soLingerTime"
+          description="if soLingerOn use soLingerTime (default 3)"
+                 type="int"/>
+    <attribute   name="timeout"
+          description="connect and acknowledge timeout (default 30000 msec)"
+                 type="int"/>
     <attribute   name="ackTimeout"
-          description="acknowledge timeout"
+          description="acknowledge timeout (deprecated use timeout)"
                  type="long"/>
     <attribute   name="avgMessageSize"
                  writeable="false"
-          description="avg message size (totalbytes/nrOfRequests"
+          description="avg message size (totalbytes/nrOfRequests) (msec)"
                  type="long" />
     <attribute   name="queueSize"
                  writeable="false"
@@ -582,7 +732,7 @@
                  is="true"
                  writeable="false"/>
     <attribute   name="keepAliveTimeout"
-          description="active socket keep alive timeout"
+          description="active socket keep alive timeout (msec)"
                  type="long"/>
     <attribute   name="keepAliveMaxRequestCount"
           description="max request over this socket"
@@ -597,7 +747,7 @@
           description="max queue length"
                  type="int"/>
     <attribute   name="queueTimeWait"
-          description="remember queue wait times"
+          description="remember queue wait times (msec)"
                  is="true"
                  type="boolean"/>
     <attribute   name="queueCheckLock"
@@ -613,11 +763,11 @@
                  type="int"
                  writeable="false"/>
     <attribute   name="keepAliveConnectTime"
-          description="Connect time for keep alive"
+          description="Connect time for keep alive (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="resend"
-          description="after send failure make a resend"
+          description="after send failure make a resend (default true)"
 			     is="true"
                  type="boolean" />
     <attribute   name="recoverTimeout"
@@ -640,19 +790,19 @@
                  type="long"
                  writeable="false"/>
     <attribute   name="processingTime"
-          description="sending processing time"
+          description="sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minProcessingTime"
-          description="minimal sending processing time"
+          description="minimal sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgProcessingTime"
-          description="processing time / nrOfRequests"
+          description="processing time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxProcessingTime"
-          description="maximal sending processing time"
+          description="maximal sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doProcessingStats"
@@ -660,19 +810,19 @@
 			     is="true"
                  type="boolean" />                 
     <attribute   name="waitAckTime"
-          description="sending waitAck time"
+          description="sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minWaitAckTime"
-          description="minimal sending waitAck time"
+          description="minimal sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgWaitAckTime"
-          description="waitAck time / nrOfRequests"
+          description="waitAck time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxWaitAckTime"
-          description="maximal sending waitAck time"
+          description="maximal sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doWaitAckStats"
@@ -720,11 +870,11 @@
                  type="long"
                  writeable="false"/>
     <attribute   name="queueAddWaitTime"
-          description="queue add wait time (tomcat thread waits)"
+          description="queue add wait time (tomcat thread waits) (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="queueRemoveWaitTime"
-          description="queue remove wait time (queue thread waits)"
+          description="queue remove wait time (queue thread waits) (msec)"
                  type="long"
                  writeable="false"/>
  	<operation name="connect"
@@ -766,8 +916,43 @@
     <attribute   name="suspect"
           description="Socket is gone"
                  type="boolean"/>
+    <attribute   name="soTrafficClass"
+          description="traffic class (default 0x04 | 0x08 | 0x010)"
+                 type="int"/>
+    <attribute   name="rxBufSize"
+          description="receiver buffer size (default 25188)"
+                 type="int"/>
+    <attribute   name="txBufSize"
+          description="send buffer size (default 43800)"
+                 type="int"/>
+    <attribute   name="tcpNoDelay"
+          description="set tcpNoDelay (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soKeepAlive"
+          description="set soKeepAlive (default false)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="ooBInline"
+          description="set ooBInline (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soReuseAddress"
+          description="set soReuseAddress (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soLingerOn"
+          description="set soLingerOn (default false)"
+			     is="true"
+                 type="boolean" />             
+    <attribute   name="soLingerTime"
+          description="if soLingerOn use soLingerTime (default 3)"
+                 type="int"/>
+    <attribute   name="timeout"
+          description="connect and acknowledge timeout (default 30000 msec)"
+                 type="int"/>
     <attribute   name="ackTimeout"
-          description="acknowledge timeout"
+          description="acknowledge timeout (deprecated use timeout)"
                  type="long"/>
     <attribute   name="waitForAck"
           description="Wait for ack after data send"
@@ -784,7 +969,7 @@
           description="get size of current busy SocketSender from pool"
                  type="int"/>                 
     <attribute   name="keepAliveTimeout"
-          description="active socket keep alive timeout"
+          description="active socket keep alive timeout (msec)"
                  type="long"/>
     <attribute   name="keepAliveMaxRequestCount"
           description="max request over this socket"
@@ -800,7 +985,7 @@
                  writeable="false"/>
     <attribute   name="avgMessageSize"
                  writeable="false"
-          description="avg message size (totalbytes/nrOfRequests"
+          description="avg message size (totalbytes/nrOfRequests)"
                  type="long"/>
     <attribute   name="nrOfRequests"
           description="number of send messages to other members"
@@ -852,16 +1037,51 @@
     <attribute   name="suspect"
           description="Socket is gone"
                  type="boolean"/>
+    <attribute   name="soTrafficClass"
+          description="traffic class (default 0x04 | 0x08 | 0x010)"
+                 type="int"/>
+    <attribute   name="rxBufSize"
+          description="receiver buffer size (default 25188)"
+                 type="int"/>
+    <attribute   name="txBufSize"
+          description="send buffer size (default 43800)"
+                 type="int"/>
+    <attribute   name="tcpNoDelay"
+          description="set tcpNoDelay (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soKeepAlive"
+          description="set soKeepAlive (default false)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="ooBInline"
+          description="set ooBInline (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soReuseAddress"
+          description="set soReuseAddress (default true)"
+			     is="true"
+                 type="boolean" />
+    <attribute   name="soLingerOn"
+          description="set soLingerOn (default false)"
+			     is="true"
+                 type="boolean" />             
+    <attribute   name="soLingerTime"
+          description="if soLingerOn use soLingerTime (default 3)"
+                 type="int"/>
+    <attribute   name="timeout"
+          description="connect and acknowledge timeout (default 30000 msec)"
+                 type="int"/>
     <attribute   name="ackTimeout"
-          description="acknowledge timeout"
+          description="acknowledge timeout (deprecated use timeout)"
                  type="long"/>
     <attribute   name="waitForAck"
-          description="Wait for ack after data send"
+          description="Wait for ack after data send (default false)"
 			     is="true"
                  type="boolean"
                  writeable="false" />
     <attribute   name="keepAliveTimeout"
-          description="active socket keep alive timeout"
+          description="active socket keep alive timeout (msec)"
                  type="long"/>
     <attribute   name="keepAliveMaxRequestCount"
           description="max request over this socket"
@@ -876,7 +1096,7 @@
                  type="int"
                  writeable="false"/>
     <attribute   name="keepAliveConnectTime"
-          description="Connect time for keep alive"
+          description="Connect time for keep alive (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="resend"
@@ -890,7 +1110,7 @@
                  writeable="false"/>
     <attribute   name="avgMessageSize"
                  writeable="false"
-          description="avg message size (totalbytes/nrOfRequests"
+          description="avg message size (totalbytes/nrOfRequests)"
                  type="long"/>
     <attribute   name="nrOfRequests"
           description="number of send messages to other members"
@@ -901,19 +1121,19 @@
                  type="long"
                  writeable="false"/>
     <attribute   name="processingTime"
-          description="sending processing time"
+          description="sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minProcessingTime"
-          description="minimal sending processing time"
+          description="minimal sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgProcessingTime"
-          description="processing time / nrOfRequests"
+          description="processing time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxProcessingTime"
-          description="maximal sending processing time"
+          description="maximal sending processing time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doProcessingStats"
@@ -921,19 +1141,19 @@
 			     is="true"
                  type="boolean" />
     <attribute   name="waitAckTime"
-          description="sending waitAck time"
+          description="sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="minWaitAckTime"
-          description="minimal sending waitAck time"
+          description="minimal sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="avgWaitAckTime"
-          description="waitAck time / nrOfRequests"
+          description="waitAck time / nrOfRequests (msec)"
                  type="double"
                  writeable="false"/>
     <attribute   name="maxWaitAckTime"
-          description="maximal sending waitAck time"
+          description="maximal sending waitAck time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="doWaitAckStats"
@@ -1035,15 +1255,15 @@
                  type="long"
                  writeable="false"/>
     <attribute   name="totalRequestTime"
-          description="total replicated request time"
+          description="total replicated request time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="totalSendTime"
-          description="total replicated send time"
+          description="total replicated send time (msec)"
                  type="long"
                  writeable="false"/>
     <attribute   name="lastSendTime"
-          description="last replicated request time"
+          description="last replicated request time (msec)"
                  type="long"
                  writeable="false"/>
     <operation name="resetStatistics"

Modified: trunk/tomcat5.5/container/modules/cluster/test/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- @author Peter Rossbach -->
 <project name="Tomcat: Cluster Testcases" basedir="." default="test">
 	<property file="../../../../build/build.properties" />

Modified: trunk/tomcat5.5/container/modules/cluster/test/conf/log4j.xml
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/conf/log4j.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/conf/log4j.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,11 +1,27 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 <!-- ===================================================================== -->
 <!-- -->
 <!-- Log4j Configuration -->
 <!-- -->
 <!-- ===================================================================== -->
-<!-- $Id: log4j.xml 303832 2005-04-03 16:03:01Z pero $ -->
+<!-- $Id: log4j.xml 565198 2007-08-12 23:22:23Z markt $ -->
 <!--
 | For more configuration infromation and examples see the Jakarta Log4j
 | owebsite: http://jakarta.apache.org/log4j

Modified: trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/io/XByteBufferTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/io/XByteBufferTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/io/XByteBufferTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.cluster.io;
 
 import java.io.IOException;
@@ -25,7 +27,7 @@
 /**
  * @author Peter Rossbach
  * 
- * @version $Revision: 384818 $ $Date: 2006-03-10 08:29:17 -0700 (Fri, 10 Mar 2006) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class XByteBufferTest extends TestCase {
 

Modified: trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/mcast/McastMemberTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/mcast/McastMemberTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/mcast/McastMemberTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.cluster.mcast;
 
 import org.apache.catalina.cluster.io.XByteBuffer;
@@ -22,7 +24,7 @@
 /**
  * @author Peter Rossbach
  * 
- * @version $Revision: 303950 $
+ * @version $Revision: 565198 $
  */
 public class McastMemberTest extends TestCase{
 

Modified: trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/session/DeltaManagerTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/session/DeltaManagerTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/session/DeltaManagerTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.cluster.session;
 
 import java.util.ArrayList;
@@ -30,7 +32,7 @@
 /**
  * @author Peter Rossbach
  * 
- * @version $Revision: 303950 $ $Date: 2005-06-09 14:38:30 -0600 (Thu, 09 Jun 2005) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class DeltaManagerTest extends TestCase {
 

Modified: trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/session/DeltaSessionTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/session/DeltaSessionTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/session/DeltaSessionTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.cluster.session;
 
 import junit.framework.TestCase;
@@ -22,7 +24,7 @@
 /**
  * @author Peter Rossbach
  * 
- * @version $Revision: 384817 $ $Date: 2006-03-10 08:27:43 -0700 (Fri, 10 Mar 2006) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class DeltaSessionTest extends TestCase {
 

Modified: trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/DataSenderTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/DataSenderTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/DataSenderTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.cluster.tcp;
@@ -32,7 +33,7 @@
 /**
  * @author Peter Rossbach
  * 
- * @version $Revision: 366254 $ $Date: 2006-01-05 12:32:21 -0700 (Thu, 05 Jan 2006) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class DataSenderTest extends TestCase {
     

Modified: trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/ReplicationTransmitterTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/ReplicationTransmitterTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/ReplicationTransmitterTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.cluster.tcp;
 
 import java.io.ByteArrayInputStream;
@@ -27,7 +29,7 @@
 /**
  * @author Peter Rossbach
  * 
- * @version $Revision: 303962 $ $Date: 2005-06-26 15:21:50 -0600 (Sun, 26 Jun 2005) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class ReplicationTransmitterTest extends TestCase {
 

Modified: trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/ReplicationValveTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/ReplicationValveTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/ReplicationValveTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.cluster.tcp;
 
 import junit.framework.TestCase;
@@ -20,7 +22,7 @@
 /**
  * @author Peter Rossbach
  * 
- * @version $Revision: 303832 $ $Date: 2005-04-03 10:03:01 -0600 (Sun, 03 Apr 2005) $
+ * @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
  */
 public class ReplicationValveTest extends TestCase {
 

Modified: trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/SimpleTcpClusterTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/SimpleTcpClusterTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/test/src/share/org/apache/catalina/cluster/tcp/SimpleTcpClusterTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.cluster.tcp;
@@ -25,7 +26,7 @@
 
 /*
 * @author Peter Rossbach
-* @version $Revision: 303864 $ $Date: 2005-04-18 12:55:38 -0600 (Mon, 18 Apr 2005) $
+* @version $Revision: 565198 $ $Date: 2007-08-12 17:22:23 -0600 (Sun, 12 Aug 2007) $
 */
 public class SimpleTcpClusterTest extends TestCase {
 

Modified: trunk/tomcat5.5/container/modules/cluster/to-do.txt
===================================================================
--- trunk/tomcat5.5/container/modules/cluster/to-do.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/cluster/to-do.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 ==============================
 Next actions
 ==============================

Modified: trunk/tomcat5.5/container/modules/groupcom/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="GroupCom" default="dist" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/modules/groupcom/doc/faq.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/doc/faq.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/doc/faq.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/modules/groupcom/doc/introduction.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/doc/introduction.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/doc/introduction.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/modules/groupcom/doc/project.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/doc/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/doc/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Apache Tribes Documentation - Top Level Directory"
         href="http://tomcat.apache.org/">
 

Modified: trunk/tomcat5.5/container/modules/groupcom/doc/setup.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/doc/setup.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/doc/setup.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/modules/groupcom/doc/tomcat-docs.xsl
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/doc/tomcat-docs.xsl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/doc/tomcat-docs.xsl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,23 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Content Stylesheet for "tomcat-docs" Documentation -->
 
-<!-- $Id: tomcat-docs.xsl 467206 2006-10-24 02:45:46Z markt $ -->
+<!-- $Id: tomcat-docs.xsl 565199 2007-08-12 23:22:45Z markt $ -->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">

Modified: trunk/tomcat5.5/container/modules/groupcom/etc/cluster-server.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/etc/cluster-server.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/etc/cluster-server.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Example Server Configuration File -->
 <!-- Note that component elements are nested corresponding to their
      parent-child relationships with each other -->

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 cluster.mbean.register.already=MBean {0} already registered!

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/RemoteProcessException.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/RemoteProcessException.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/RemoteProcessException.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.tribes;
 
 /**

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/AbsoluteOrder.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/AbsoluteOrder.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/AbsoluteOrder.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.group;
 
 import org.apache.catalina.tribes.Member;

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/RpcMessage.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/RpcMessage.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/RpcMessage.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,14 +24,6 @@
 import java.io.ObjectOutput;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/StaticMembershipInterceptor.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.group.interceptors;
 
 import org.apache.catalina.tribes.group.ChannelInterceptorBase;

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -29,14 +29,6 @@
 import java.util.Map;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <mbeans-descriptors>
 
   <mbean         name="SimpleTcpCluster"

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/membership/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/membership/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/membership/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 cluster.mbean.register.already=MBean {0} already registered!

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/membership/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/membership/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/membership/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE mbeans-descriptors PUBLIC
    "-//Apache Software Foundation//DTD Model MBeans Configuration File"
    "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/package.html
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/package.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/package.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <body>
 <head><title>Apache Tribes - The Tomcat Cluster Communication Module</title>
 <h3>QuickStart</h3>

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/AbstractSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.tribes.transport;
@@ -23,14 +24,6 @@
 import org.apache.catalina.tribes.Member;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/DataSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/DataSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/DataSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,14 +19,6 @@
 import java.io.IOException;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 AsyncSocketSender.create.thread=Create sender [{0}:{1,number,integer}] queue thread to tcp background replication
 AsyncSocketSender.queue.message=Queue message to [{0}:{1,number,integer}] id=[{2}] size={3}
 AsyncSocketSender.send.error=Unable to asynchronously send session with id=[{0}] - message will be ignored.

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/PooledSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/PooledSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/PooledSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,14 +20,6 @@
 import java.util.List;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/ReceiverBase.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/ReceiverBase.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/ReceiverBase.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.tribes.transport;
 
 import java.io.IOException;
@@ -27,14 +29,6 @@
 import org.apache.commons.logging.Log;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/ReplicationTransmitter.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/ReplicationTransmitter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/ReplicationTransmitter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2004-2005 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.tribes.transport;
@@ -29,7 +30,7 @@
  * type 
  * 
  * @author Filip Hanik
- * @version $Revision: 467206 $ $Date: 2006-10-23 20:45:46 -0600 (Mon, 23 Oct 2006) $
+ * @version $Revision: 565199 $ $Date: 2007-08-12 17:22:45 -0600 (Sun, 12 Aug 2007) $
  */
 public class ReplicationTransmitter implements ChannelSender {
     private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(ReplicationTransmitter.class);

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/BioReceiver.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/BioReceiver.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/BioReceiver.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,18 +1,20 @@
 /*
- * Copyright 1999,2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
+
 package org.apache.catalina.tribes.transport.bio;
 
 import java.io.IOException;
@@ -27,14 +29,6 @@
 import org.apache.catalina.tribes.transport.WorkerThread;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/BioSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/BioSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/BioSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2006 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.tribes.transport.bio;
@@ -39,7 +40,7 @@
  * 
  * @author Peter Rossbach
  * @author Filip Hanik
- * @version $Revision: 467206 $ $Date: 2006-10-23 20:45:46 -0600 (Mon, 23 Oct 2006) $
+ * @version $Revision: 565199 $ $Date: 2007-08-12 17:22:45 -0600 (Sun, 12 Aug 2007) $
  * @since 5.5.16
  */
 public class BioSender extends AbstractSender implements DataSender {

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/MultipointBioSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/MultipointBioSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/MultipointBioSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.catalina.tribes.transport.bio;
 
 import java.io.IOException;
@@ -14,14 +31,6 @@
 import org.apache.catalina.tribes.Channel;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/bio/PooledMultiSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.catalina.tribes.transport.bio;
 
 import org.apache.catalina.tribes.transport.DataSender;
@@ -8,14 +25,6 @@
 import org.apache.catalina.tribes.ChannelMessage;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE mbeans-descriptors PUBLIC
    "-//Apache Software Foundation//DTD Model MBeans Configuration File"
    "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">

Modified: trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/src/share/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -26,14 +26,6 @@
 import org.apache.catalina.tribes.transport.PooledSender;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/CoordinationDemo.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/CoordinationDemo.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/CoordinationDemo.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.demos;
 
 import java.io.BufferedReader;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/EchoRpcTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/EchoRpcTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/EchoRpcTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.catalina.tribes.demos;
 
 import java.io.Serializable;
@@ -11,14 +28,6 @@
 
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/LoadTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -31,14 +31,6 @@
 
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/MapDemo.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/MapDemo.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/demos/MapDemo.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.catalina.tribes.demos;
 
 import java.io.Serializable;
@@ -34,14 +51,6 @@
 import org.apache.catalina.tribes.util.Arrays;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/TestNioSender.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/TestNioSender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/TestNioSender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.catalina.tribes.test;
 
 import java.io.IOException;
@@ -12,14 +29,6 @@
 import org.apache.catalina.tribes.Channel;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/TribesTestSuite.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/TribesTestSuite.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/TribesTestSuite.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test;
 
 import junit.framework.Test;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestChannelOptionFlag.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestChannelOptionFlag.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestChannelOptionFlag.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.channel;
 
 import junit.framework.*;
@@ -6,14 +22,6 @@
 import org.apache.catalina.tribes.ChannelException;
 
 /**
- * <p>Title: </p> 
- * 
- * <p>Description: </p> 
- * 
- * <p>Copyright: Copyright (c) 2005</p> 
- * 
- * <p>Company: </p>
- * 
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.channel;
 
 import junit.framework.TestCase;
@@ -12,14 +28,6 @@
 import org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor;
 
 /**
- * <p>Title: </p> 
- * 
- * <p>Description: </p> 
- * 
- * <p>Copyright: Copyright (c) 2005</p> 
- * 
- * <p>Company: </p>
- * 
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/channel/TestRemoteProcessException.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.channel;
 
 import junit.framework.TestCase;
@@ -10,14 +26,6 @@
 import java.io.PrintStream;
 
 /**
- * <p>Title: </p> 
- * 
- * <p>Description: </p> 
- * 
- * <p>Copyright: Copyright (c) 2005</p> 
- * 
- * <p>Company: </p>
- * 
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors/TestNonBlockingCoordinator.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors/TestNonBlockingCoordinator.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors/TestNonBlockingCoordinator.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.interceptors;
 
 import org.apache.catalina.tribes.Channel;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors/TestTwoPhaseCommit.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors/TestTwoPhaseCommit.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/interceptors/TestTwoPhaseCommit.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,14 +19,6 @@
 import junit.framework.TestCase;
 
 /**
- * <p>Title: </p> 
- * 
- * <p>Description: </p> 
- * 
- * <p>Copyright: Copyright (c) 2005</p> 
- * 
- * <p>Company: </p>
- * 
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io/TestSenderConnections.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io/TestSenderConnections.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io/TestSenderConnections.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.io;
 
 import java.util.ArrayList;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io/TestSerialization.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io/TestSerialization.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/io/TestSerialization.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.io;
 
 import org.apache.catalina.tribes.io.XByteBuffer;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/MemberSerialization.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/MemberSerialization.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/MemberSerialization.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,14 +20,6 @@
 import java.util.Arrays;
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestDomainFilter.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestDomainFilter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestDomainFilter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.membership;
 
 import java.util.ArrayList;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestMemberArrival.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestMemberArrival.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestMemberArrival.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.membership;
 
 import java.util.ArrayList;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestTcpFailureDetector.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestTcpFailureDetector.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/membership/TestTcpFailureDetector.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.membership;
 
 import java.util.ArrayList;
@@ -13,14 +29,6 @@
 import junit.framework.TestCase;
 
 /**
- * <p>Title: </p> 
- * 
- * <p>Description: </p> 
- * 
- * <p>Copyright: Copyright (c) 2005</p> 
- * 
- * <p>Company: </p>
- * 
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioReceive.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioReceive.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioReceive.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.transport;
 
 import java.text.DecimalFormat;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioSend.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioSend.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioSend.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.transport;
 
 import java.io.OutputStream;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioValidateSend.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioValidateSend.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketNioValidateSend.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.transport;
 
 import java.io.OutputStream;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketReceive.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketReceive.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketReceive.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.transport;
 
 import java.net.ServerSocket;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketSend.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketSend.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketSend.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.transport;
 
 import java.io.OutputStream;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketTribesReceive.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketTribesReceive.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketTribesReceive.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.transport;
 
 import java.net.ServerSocket;

Modified: trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketValidateReceive.java
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketValidateReceive.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test/java/org/apache/catalina/tribes/test/transport/SocketValidateReceive.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.tribes.test.transport;
 
 import java.net.ServerSocket;

Modified: trunk/tomcat5.5/container/modules/groupcom/test-cases.txt
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/test-cases.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/test-cases.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 Categories
   -- Membership
   -- Sending data

Modified: trunk/tomcat5.5/container/modules/groupcom/to-do.txt
===================================================================
--- trunk/tomcat5.5/container/modules/groupcom/to-do.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/groupcom/to-do.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 To Do:
 ===========================================
 

Modified: trunk/tomcat5.5/container/modules/ha/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/ha/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Cluster" default="dist" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/modules/ha/etc/cluster-server.xml
===================================================================
--- trunk/tomcat5.5/container/modules/ha/etc/cluster-server.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/etc/cluster-server.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Example Server Configuration File -->
 <!-- Note that component elements are nested corresponding to their
      parent-child relationships with each other -->

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/ClusterMessageBase.java
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/ClusterMessageBase.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/ClusterMessageBase.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.catalina.ha;
 
 import org.apache.catalina.tribes.Member;
@@ -4,14 +20,6 @@
 
 
 /**
- * <p>Title: </p>
- *
- * <p>Description: </p>
- *
- * <p>Copyright: Copyright (c) 2005</p>
- *
- * <p>Company: </p>
- *
  * @author not attributable
  * @version 1.0
  */

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 cluster.mbean.register.already=MBean {0} already registered!

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <mbeans-descriptors>
 
   <mbean         name="SimpleTcpCluster"

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/package.html
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/package.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/package.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <body>
 
 <p>This package contains code for Clustering, the base class

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 deltaManager.createSession.ise=createSession: Too many active sessions
 deltaManager.createSession.newSession=Created a DeltaSession with Id [{0}] Total count={1}
 deltaManager.createMessage.access=Manager [{0}]: create session message [{1}] access.

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/session/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/session/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/session/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE mbeans-descriptors PUBLIC
    "-//Apache Software Foundation//DTD Model MBeans Configuration File"
    "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 AsyncSocketSender.create.thread=Create sender [{0}:{1,number,integer}] queue thread to tcp background replication
 AsyncSocketSender.queue.message=Queue message to [{0}:{1,number,integer}] id=[{2}] size={3}
 AsyncSocketSender.send.error=Unable to asynchronously send session with id=[{0}] - message will be ignored.

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/SendMessageData.java
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/SendMessageData.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/SendMessageData.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,17 +1,18 @@
 /*
- * Copyright 1999,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 package org.apache.catalina.ha.tcp;
@@ -20,7 +21,7 @@
 
 /**
  * @author Peter Rossbach
- * @version $Revision: 467206 $ $Date: 2006-10-23 20:45:46 -0600 (Mon, 23 Oct 2006) $
+ * @version $Revision: 565200 $ $Date: 2007-08-12 17:26:25 -0600 (Sun, 12 Aug 2007) $
  */
 public class SendMessageData {
 

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/SimpleTcpCluster.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/SimpleTcpCluster.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -67,7 +67,7 @@
  * @author Filip Hanik
  * @author Remy Maucherat
  * @author Peter Rossbach
- * @version $Revision: 467206 $, $Date: 2006-10-23 20:45:46 -0600 (Mon, 23 Oct 2006) $
+ * @version $Revision: 522314 $, $Date: 2007-03-25 11:46:37 -0600 (Sun, 25 Mar 2007) $
  */
 public class SimpleTcpCluster 
     implements CatalinaCluster, Lifecycle, LifecycleListener, IDynamicProperty,
@@ -546,18 +546,25 @@
     }
 
     /**
-     * @param name
-     * @param manager
-     * @return
+     * Returns the name for the cluster manager.  This name
+     * depends on whether the cluster manager is defined inside
+     * a Host or an Engine.
+     * Should the cluster be defined in the Engine element, the manager name
+     * is Host.getName+"#"+Context.getManager().getName()
+     * otherwise the name is simply Context.getManager().getName()
+     * @param name The current name
+     * @param manager The cluster manager implementation
+     * @return The name to use for the cluster manager
      */
     public String getManagerName(String name, Manager manager) {
         String clusterName = name ;
+        if ( clusterName == null ) clusterName = manager.getContainer().getName();
         if(getContainer() instanceof Engine) {
             Container context = manager.getContainer() ;
             if(context != null && context instanceof Context) {
                 Container host = ((Context)context).getParent();
-                if(host != null && host instanceof Host)
-                    clusterName = host.getName()  + name ;
+                if(host != null && host instanceof Host && clusterName!=null && !(clusterName.indexOf("#")>=0))
+                    clusterName = host.getName() +"#" + clusterName ;
             }
         }
         return clusterName;

Modified: trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/ha/src/share/org/apache/catalina/ha/tcp/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE mbeans-descriptors PUBLIC
    "-//Apache Software Foundation//DTD Model MBeans Configuration File"
    "http://jakarta.apache.org/commons/dtds/mbeans-descriptors.dtd">

Modified: trunk/tomcat5.5/container/modules/storeconfig/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="StoreConfig" default="dist" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/modules/storeconfig/docs/Readme.txt
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/docs/Readme.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/docs/Readme.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 Status:
 
 Peter Roßbach

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/CatalinaClusterSF.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/CatalinaClusterSF.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/CatalinaClusterSF.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -28,8 +28,6 @@
 import org.apache.catalina.cluster.MembershipService;
 import org.apache.catalina.cluster.MessageListener;
 import org.apache.catalina.cluster.tcp.SimpleTcpCluster;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Generate Cluster Element with Membership,Sender,Receiver,Deployer and
@@ -39,8 +37,6 @@
  */
 public class CatalinaClusterSF extends StoreFactoryBase {
 
-    private static Log log = LogFactory.getLog(CatalinaClusterSF.class);
-
     /**
      * Store the specified Cluster childs.
      * 

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/ConnectorSF.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/ConnectorSF.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/ConnectorSF.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -22,8 +22,6 @@
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleListener;
 import org.apache.catalina.connector.Connector;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Store Connector and Listeners
@@ -32,8 +30,6 @@
  */
 public class ConnectorSF extends StoreFactoryBase {
 
-    private static Log log = LogFactory.getLog(ConnectorSF.class);
-
     /**
      * Store Connector description
      * 

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/ConnectorStoreAppender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/ConnectorStoreAppender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,6 +23,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.net.InetAddress;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -79,9 +80,6 @@
             boolean include, Object bean, StoreDescription desc)
             throws Exception {
 
-        // Render the relevant properties of this bean
-        String className = bean.getClass().getName();
-
         // Render a className attribute if requested
         if (include && desc != null && !desc.isStandard()) {
             writer.print(" className=\"");
@@ -106,6 +104,10 @@
             if (value == null) {
                 continue; // Null values are not persisted
             }
+            // Convert IP addresses to strings so they will be persisted
+            if (value instanceof InetAddress) {
+                value = ((InetAddress) value).getHostAddress();
+            }
             if (!isPersistable(value.getClass())) {
                 continue;
             }
@@ -256,7 +258,6 @@
 
     protected File getCatalinaBase() {
 
-        File appBase;
         File file = new File(System.getProperty("catalina.base"));
         try {
             file = file.getCanonicalFile();

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/IDynamicPropertyStoreAppender.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/IDynamicPropertyStoreAppender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/IDynamicPropertyStoreAppender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -55,9 +55,6 @@
             boolean include, Object bean, StoreDescription desc)
             throws Exception {
 
-        // Render the relevant properties of this bean
-        String className = bean.getClass().getName();
-
         // Render a className attribute if requested
         if (include && desc != null && !desc.isStandard()) {
             writer.print(" className=\"");

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,2 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 factory.storeTag=store tag {0} ( Object: {1} )
 factory.storeNoDescriptor=Descriptor for element class {0} not configured!

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/PersistentManagerSF.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/PersistentManagerSF.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/PersistentManagerSF.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -21,8 +21,6 @@
 
 import org.apache.catalina.Store;
 import org.apache.catalina.session.PersistentManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * store server.xml PersistentManager element with nested "Store"
@@ -31,8 +29,6 @@
  */
 public class PersistentManagerSF extends StoreFactoryBase {
 
-    private static Log log = LogFactory.getLog(PersistentManagerSF.class);
-
     /**
      * Store the specified PersistentManager properties.
      * 

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardContextSF.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardContextSF.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardContextSF.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -207,7 +207,6 @@
     protected StoreFileMover getConfigFileWriter(Context context)
             throws IOException {
         String configFile = context.getConfigFile();
-        PrintWriter writer = null;
         StoreFileMover mover = null;
         if (configFile != null) {
             File config = new File(configFile);

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardEngineSF.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardEngineSF.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardEngineSF.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -26,8 +26,6 @@
 import org.apache.catalina.Realm;
 import org.apache.catalina.Valve;
 import org.apache.catalina.core.StandardEngine;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Store server.xml Element Engine
@@ -36,8 +34,6 @@
  */
 public class StandardEngineSF extends StoreFactoryBase {
 
-    private static Log log = LogFactory.getLog(StandardEngineSF.class);
-
     /**
      * Store the specified Engine properties.
      * 

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardHostSF.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardHostSF.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardHostSF.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -30,8 +30,6 @@
 import org.apache.catalina.Valve;
 import org.apache.catalina.cluster.ClusterValve;
 import org.apache.catalina.core.StandardHost;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Store server.xml Element Host
@@ -40,8 +38,6 @@
  */
 public class StandardHostSF extends StoreFactoryBase {
 
-    private static Log log = LogFactory.getLog(StandardHostSF.class);
-
     /**
      * Store the specified Host properties and childs
      * (Listener,Alias,Realm,Valve,Cluster, Context)

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardServerSF.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardServerSF.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardServerSF.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -25,8 +25,6 @@
 import org.apache.catalina.core.StandardServer;
 import org.apache.catalina.deploy.NamingResources;
 import org.apache.catalina.mbeans.ServerLifecycleListener;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Store server.xml Server element and childs (
@@ -36,8 +34,6 @@
  */
 public class StandardServerSF extends StoreFactoryBase {
 
-    private static Log log = LogFactory.getLog(StandardServerSF.class);
-
     /**
      * Store the specified Server properties.
      * 

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardServiceSF.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardServiceSF.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StandardServiceSF.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,8 +24,6 @@
 import org.apache.catalina.LifecycleListener;
 import org.apache.catalina.connector.Connector;
 import org.apache.catalina.core.StandardService;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * Store server.xml Element Service and all childs 
@@ -33,8 +31,6 @@
  */
 public class StandardServiceSF extends StoreFactoryBase {
 
-    private static Log log = LogFactory.getLog(StandardServiceSF.class);
-
     /**
      * Store Childs from this StandardService description
      * 

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,8 +24,6 @@
 import java.util.Iterator;
 
 import org.apache.catalina.deploy.ResourceBase;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.tomcat.util.IntrospectionUtils;
 
 /**
@@ -35,7 +33,6 @@
  *  
  */
 public class StoreAppender {
-    private static Log log = LogFactory.getLog(StoreAppender.class);
 
     /**
      * The set of classes that represent persistable properties.
@@ -213,9 +210,6 @@
             boolean include, Object bean, StoreDescription desc)
             throws Exception {
 
-        // Render the relevant properties of this bean
-        String className = bean.getClass().getName();
-
         // Render a className attribute if requested
         if (include && desc != null && !desc.isStandard()) {
             writer.print(" className=\"");

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,8 +23,6 @@
 import org.apache.catalina.Container;
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.core.StandardHost;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /**
  * store StandardContext Attributes ... 
@@ -34,8 +32,6 @@
  */
 public class StoreContextAppender extends StoreAppender {
 
-    private static Log log = LogFactory.getLog(StoreContextAppender.class);
-
     /**
      * @param writer
      * @param indent

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <mbeans-descriptors>
 
   <mbean         name="StoreConfig"

Modified: trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <Registry name="Tomcat" version="5.5.18" encoding="UTF-8" >
      <Description
 	    tag="Server"

Modified: trunk/tomcat5.5/container/modules/storeconfig/test/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/test/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/test/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- @author Peter Rossbach -->
 <project name="Tomcat: StoreConfig Testcases" basedir="." default="test">
 	<property file="../../../../build.properties" />

Modified: trunk/tomcat5.5/container/modules/storeconfig/test/conf/context.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/test/conf/context.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/test/conf/context.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <Context
     cookies="false"
     reloadable="true">

Modified: trunk/tomcat5.5/container/modules/storeconfig/test/conf/log4j.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/test/conf/log4j.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/test/conf/log4j.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,11 +1,27 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 <!-- ===================================================================== -->
 <!-- -->
 <!-- Log4j Configuration -->
 <!-- -->
 <!-- ===================================================================== -->
-<!-- $Id: log4j.xml 303623 2005-01-08 11:15:00Z pero $ -->
+<!-- $Id: log4j.xml 565201 2007-08-12 23:27:44Z markt $ -->
 <!--
 | For more configuration infromation and examples see the Jakarta Log4j
 | owebsite: http://jakarta.apache.org/log4j

Modified: trunk/tomcat5.5/container/modules/storeconfig/test/conf/server-registry-test.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/test/conf/server-registry-test.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/test/conf/server-registry-test.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <Registry name="Tomcat" version="5.1.0" encoding="UTF-8" >
      <Description
 	    tag="Server"

Modified: trunk/tomcat5.5/container/modules/storeconfig/test/conf/server.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/test/conf/server.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/test/conf/server.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Example Server Configuration File -->
 <!-- Note that component elements are nested corresponding to their
      parent-child relationships with each other -->

Modified: trunk/tomcat5.5/container/modules/storeconfig/test/genstore.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/test/genstore.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/test/genstore.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="store" default="store" basedir=".">
 
      <target name="store">

Modified: trunk/tomcat5.5/container/modules/storeconfig/test/src/share/org/apache/catalina/storeconfig/StoreContextAppenderTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/test/src/share/org/apache/catalina/storeconfig/StoreContextAppenderTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/test/src/share/org/apache/catalina/storeconfig/StoreContextAppenderTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
  * Created on 24.08.2004
  *
  * TODO To change the template for this generated file go to

Modified: trunk/tomcat5.5/container/modules/storeconfig/to-do.txt
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig/to-do.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig/to-do.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 1. Fix new connector properties and protocolhandler for 5.5 (testcases)
 	 Work!
 2. Fix context default handling (hard stuff)

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="StoreConfig" default="dist" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/docs/Readme.txt
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/docs/Readme.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/docs/Readme.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 Status:
 
 Peter Roßbach

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,2 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 factory.storeTag=store tag {0} ( Object: {1} )
 factory.storeNoDescriptor=Descriptor for element class {0} not configured!

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <mbeans-descriptors>
 
   <mbean         name="StoreConfig"

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/server-registry.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/server-registry.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/src/share/org/apache/catalina/storeconfig/server-registry.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <Registry name="Tomcat" version="5.5.5" encoding="UTF-8" >
      <Description
 	    tag="Server"

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/test/build.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/test/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/test/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- @author Peter Rossbach -->
 <project name="Tomcat: StoreConfig Testcases" basedir="." default="test">
 	<property file="../../../../build.properties" />

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/context.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/context.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/context.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <Context
     cookies="false"
     reloadable="true">

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/log4j.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/log4j.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/log4j.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,11 +1,27 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
 <!-- ===================================================================== -->
 <!-- -->
 <!-- Log4j Configuration -->
 <!-- -->
 <!-- ===================================================================== -->
-<!-- $Id: log4j.xml 303623 2005-01-08 11:15:00Z pero $ -->
+<!-- $Id: log4j.xml 565202 2007-08-12 23:29:31Z markt $ -->
 <!--
 | For more configuration infromation and examples see the Jakarta Log4j
 | owebsite: http://jakarta.apache.org/log4j

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/server-registry-test.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/server-registry-test.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/server-registry-test.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <Registry name="Tomcat" version="5.1.0" encoding="UTF-8" >
      <Description
 	    tag="Server"

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/server.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/server.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/test/conf/server.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Example Server Configuration File -->
 <!-- Note that component elements are nested corresponding to their
      parent-child relationships with each other -->

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/test/genstore.xml
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/test/genstore.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/test/genstore.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="store" default="store" basedir=".">
 
      <target name="store">

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/test/src/share/org/apache/catalina/storeconfig/StoreContextAppenderTest.java
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/test/src/share/org/apache/catalina/storeconfig/StoreContextAppenderTest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/test/src/share/org/apache/catalina/storeconfig/StoreContextAppenderTest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
  * Created on 24.08.2004
  *
  * TODO To change the template for this generated file go to

Modified: trunk/tomcat5.5/container/modules/storeconfig-ha/to-do.txt
===================================================================
--- trunk/tomcat5.5/container/modules/storeconfig-ha/to-do.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/modules/storeconfig-ha/to-do.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 1. Fix new connector properties and protocolhandler for 5.5 (testcases)
 	 Work!
 2. Fix context default handling (hard stuff)

Modified: trunk/tomcat5.5/container/tester/build.xml
===================================================================
--- trunk/tomcat5.5/container/tester/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Tester" default="build-main" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/tester/src/bin/tester.xml
===================================================================
--- trunk/tomcat5.5/container/tester/src/bin/tester.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/bin/tester.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Tester" default="all">
 
   <!-- ========== Global Properties ======================================= -->

Modified: trunk/tomcat5.5/container/tester/src/conf/tomcat-users.xml
===================================================================
--- trunk/tomcat5.5/container/tester/src/conf/tomcat-users.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/conf/tomcat-users.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
-<?xml version='1.0' encoding='utf-8'?>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <tomcat-users>
   <role rolename="tomcat"/>
   <role rolename="role1"/>

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Aggregate01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Aggregate01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Aggregate01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * values returned by request.getParameterValues().
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Aggregate01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Aggregate02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Aggregate02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Aggregate02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -35,7 +36,7 @@
  * <code>getParameterMap()</code> method to retrieve parameter values.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Aggregate02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * constraint in the deployment descriptor.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Authentication01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * have authenticated a user previously by calling "/Authentication01".
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Authentication02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication03.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication03.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication03.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * not assigned to the specified user.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Authentication03 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication05.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication05.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication05.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * roles will permit access to an authenticated user.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Authentication05 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication06.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication06.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Authentication06.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * roles will permit access to an authenticated user.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 467206 $ $Date: 2006-10-23 20:45:46 -0600 (Mon, 23 Oct 2006) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Authentication06 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/CharArrayResponse.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/CharArrayResponse.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/CharArrayResponse.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * upper case via an intermediate buffer.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class CharArrayResponse extends HttpServletResponseWrapper {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/CharArrayWriterUpperCase.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/CharArrayWriterUpperCase.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/CharArrayWriterUpperCase.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * Implementation of CharArrayWriter that upper cases its output.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class CharArrayWriterUpperCase extends CharArrayWriter {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context00.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context00.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context00.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * time, and remove it at <code>destroy()</code> time.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Context00 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * present, which should be erased after a web application restart.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Context01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Context02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -33,7 +34,7 @@
  * be cleaned up during a restart.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Context02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextBean.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextBean.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextBean.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -24,7 +25,7 @@
  * Simple JavaBean to use for context attribute tests.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ContextBean implements Serializable {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextListener01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextListener01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextListener01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * are logged appropriately to the static logger..
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ContextListener01

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextListener02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextListener02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ContextListener02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * editor classes for this web application are appropriately registered.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ContextListener02

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/DatePropertyEditor.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/DatePropertyEditor.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/DatePropertyEditor.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * PropertyEditor implementation for a java.sql.Date property.
  *
  * @author Craig R. McClanahan
- * @revision $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $ $Revision: 302726 $
+ * @revision $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $ $Revision: 565210 $
  */
 public class DatePropertyEditor extends PropertyEditorSupport {
 

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Decoding01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Decoding01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Decoding01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * respectively.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Decoding01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * ErrorPage02 servlet in the deployment descriptor.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ErrorPage01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * the ErrorPage01 servlet returns the appropriate status code.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ErrorPage02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage03.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage03.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage03.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * is mapped to the ErrorPage04 servlet in the deployment descriptor.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ErrorPage03 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage04.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage04.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage04.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * the ErrorPage01 servlet returns the appropriate exception.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ErrorPage04 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage05.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage05.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage05.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -34,7 +35,7 @@
  * </ul>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ErrorPage05 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage06.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage06.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage06.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * the ErrorPage05 servlet returns the appropriate exception.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ErrorPage06 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage07.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage07.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ErrorPage07.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * status 503 (service unavailable) when it is called later.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ErrorPage07 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -31,7 +32,7 @@
  * whether to call getReader() ("reader") or getInputStream() ("stream").
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class FilterRequest01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * visible to the called servlet.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class FilterRequest02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest02a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest02a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterRequest02a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * visible to the called servlet.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class FilterRequest02a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * filtered and converted to upper case before return to the client.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class FilterResponse01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse04.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse04.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse04.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * visible to the called servlet.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class FilterResponse04 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse04a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse04a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/FilterResponse04a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * visible to the called servlet.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class FilterResponse04a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Exercise basic forwarding functionality.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward00 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Exercise basic forwarding functionality.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward00a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00d.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00d.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward00d.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Exercise basic forwarding functionality.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward00d extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * Positive test for forwarding to a static resource.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward03.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward03.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward03.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * parameter.  The default is the servlet.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward03 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward03a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward03a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward03a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * parameter.  The default is the servlet.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward03a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward04 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward04a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04b.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04b.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward04b.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward04b extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward05 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward05a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05b.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05b.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward05b.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward05b extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward06 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward06a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06b.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06b.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward06b.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward06b extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward07 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward07a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07b.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07b.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward07b.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward07b extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward08 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward08a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08b.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08b.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward08b.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Testing for double forwarding.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward08b extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward09.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward09.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Forward09.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * <code>request.getRequestDispatcher()</code>.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Forward09 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetHeaders01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetHeaders01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetHeaders01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * "Accept-Language" headers.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class GetHeaders01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetInputStream01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetInputStream01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetInputStream01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * This should throw an IllegalStateException.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class GetInputStream01 extends GenericServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetLocales01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetLocales01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetLocales01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * corresponds to "en_CA" Accept-Language header that is sent first.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class GetLocales01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetLocales02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetLocales02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetLocales02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * "Accept-Language" headers.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class GetLocales02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetParameter01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetParameter01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetParameter01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * URI like "/tester/GetParameter01?foo=1".
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class GetParameter01 extends GenericServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetParameterMap00.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetParameterMap00.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetParameterMap00.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * This should throw an IllegalStateException.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class GetParameterMap00 extends GenericServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetQueryString01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetQueryString01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/GetQueryString01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * URI like "/tester/GetQueryString01?foo=1".
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class GetQueryString01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Golden01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Golden01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Golden01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * with known contents for comparison to the golden file.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Golden01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Exercise basic including functionality.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include00 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Exercise basic including functionality.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include00a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00d.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00d.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include00d.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Exercise basic including functionality.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include00d extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * Positive test for including a static resource.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * these types should be propogated back to the caller unchanged.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include02a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include02a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include02a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Included servlet for the test performed by Include02.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include02a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include03.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include03.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include03.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -32,7 +33,7 @@
  * parameter.  The default is the servlet.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include03 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include03a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include03a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include03a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * intent to behave in this manner.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include03a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * then forward to another servlet that replaces the original contents.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include04 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * First subservlet for "include then forward" test.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include04a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04b.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04b.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include04b.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Second subservlet for "include then forward" test.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include04b extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include06a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include06a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include06a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * First subservlet for "include then include" test.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include06a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * includes another servlet, and we see all of the output in the right order.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include07 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * includes another servlet, and we see all of the output in the right order.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include07a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07b.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07b.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07b.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * includes another servlet, and we see all of the output in the right order.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include07b extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07c.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07c.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include07c.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * includes another servlet, and we see all of the output in the right order.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include07c extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include09.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include09.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include09.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * <code>request.getRequestDispatcher()</code>.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include09 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include10.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include10.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include10.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Make sure container sets up include reques attributes.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include10 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include10a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include10a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Include10a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Ensure the correct container managed request attributes are set.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Include10a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Jndi01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Jndi01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Jndi01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -37,7 +38,7 @@
  * should succeed.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Jndi01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Jndi02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Jndi02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Jndi02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -38,7 +39,7 @@
  * deployment descriptor.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 303152 $ $Date: 2004-08-31 08:41:22 -0600 (Tue, 31 Aug 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Jndi02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * made to it should be a "GET".
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Lifecycle01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * made to it should be a "POST".
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Lifecycle02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle03.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle03.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Lifecycle03.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -37,7 +38,7 @@
  * </ul>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Lifecycle03 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Redirect01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Redirect01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Redirect01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * Positive test for HttpServletResponse.sendRedirect().
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Redirect01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Redirect01a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Redirect01a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Redirect01a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * Positive test for HttpServletResponse.sendRedirect().
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Redirect01a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Reflection01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Reflection01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Reflection01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -29,7 +30,7 @@
  * are exposed to this servlet by the container.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Reflection01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Request01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Request01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Request01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * present, which should be erased after a web application restart.
  *
  * @author Justyna Horwat
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Request01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/RequestListener01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/RequestListener01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/RequestListener01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * are logged appropriately to the static logger..
  *
  * @author Justyna Horwat
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class RequestListener01

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Reset01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Reset01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Reset01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * Positive test for ServletResponse.reset().
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Reset01 extends GenericServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -36,7 +37,7 @@
  * </ul>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Resources01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -36,7 +37,7 @@
  * </ul>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Resources02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources03.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources03.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources03.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -36,7 +37,7 @@
  * </ul>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Resources03 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources04.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources04.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources04.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -36,7 +37,7 @@
  * </ul>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Resources04 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources05.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources05.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources05.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -41,7 +42,7 @@
  * </ul>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Resources05 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources06.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources06.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Resources06.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -32,7 +33,7 @@
  * found in order to pass.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Resources06 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * or including both servlets and JSP pages.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ResponseWrap01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01a.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01a.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01a.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * or including both servlets and JSP pages.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ResponseWrap01a extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01c.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01c.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/ResponseWrap01c.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * or including both servlets and JSP pages.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class ResponseWrap01c extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -31,7 +32,7 @@
  * calling setAttribute("name", null) acts like removeAttribute().
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Session01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * that the session bean stashed in Part 1 can be retrieved successfully.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Session02 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session03.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session03.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session03.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -31,7 +32,7 @@
  * Then, it removes that attribute and verifies successful removal.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Session03 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session04.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session04.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session04.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * identifier) while processing this request.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Session04 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session05.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session05.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session05.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * of SessionListener01 and SessionListener02 in the web.xml file
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Session05 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session06.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session06.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Session06.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * after the response has been committed throws IllegalStateException.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Session06 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionBean.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionBean.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionBean.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -30,7 +31,7 @@
  * so that instances can be saved and restored across server restarts.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class SessionBean implements

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * creation and destruction events are logged to the servlet context log.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class SessionListener01

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener02.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener02.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener02.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -26,7 +27,7 @@
  * are logged appropriately to the static logger.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class SessionListener02

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener03.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener03.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SessionListener03.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001, 2002 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * All events that occur are logged to the servlet context log.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 304039 $ $Date: 2005-08-01 10:55:47 -0600 (Mon, 01 Aug 2005) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class SessionListener03

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SetBufferSize01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SetBufferSize01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SetBufferSize01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * Negative test for ServletResponse.setBufferSize().
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class SetBufferSize01 extends GenericServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SetLocale01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SetLocale01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/SetLocale01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * Positive test for ServletResponse.setLocale().
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class SetLocale01 extends GenericServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/StaticFilter.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/StaticFilter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/StaticFilter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * so that no leftovers from the previous request are inadvertently included.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class StaticFilter implements Filter {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/StaticLogger.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/StaticLogger.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/StaticLogger.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * recording and retrieval of log messages.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class StaticLogger {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TestClient.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TestClient.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TestClient.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -79,7 +80,7 @@
  * </ul>
  *
  * @author Craig R. McClanahan
- * @version $Revision: 303278 $ $Date: 2004-09-25 15:27:31 -0600 (Sat, 25 Sep 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class TestClient extends Task {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterException.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterException.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterException.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -25,7 +26,7 @@
  * Generic exception class to use for testing error page assertions.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class TesterException extends Exception {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterHttpServletRequestWrapper.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterHttpServletRequestWrapper.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterHttpServletRequestWrapper.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * before passing them on to the underlying request.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class TesterHttpServletRequestWrapper

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterHttpServletResponseWrapper.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterHttpServletResponseWrapper.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterHttpServletResponseWrapper.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * before passing them on to the underlying response.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class TesterHttpServletResponseWrapper

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterServletRequestWrapper.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterServletRequestWrapper.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterServletRequestWrapper.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * before passing them on to the underlying request.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class TesterServletRequestWrapper extends ServletRequestWrapper {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterServletResponseWrapper.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterServletResponseWrapper.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/TesterServletResponseWrapper.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * before passing them on to the underlying response.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class TesterServletResponseWrapper extends ServletResponseWrapper {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseFilter.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseFilter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseFilter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * Filter that simply transforms its output to upper case.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UpperCaseFilter implements Filter {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseInputStream.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseInputStream.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseInputStream.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * WARNING:  This will only work on 8-bit character sets!
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UpperCaseInputStream extends ServletInputStream {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseOutputStream.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseOutputStream.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseOutputStream.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * WARNING:  This will only work on 8-bit character sets!
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UpperCaseOutputStream extends ServletOutputStream {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseReader.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseReader.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseReader.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * BufferedReader that converts all characters to upper case.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UpperCaseReader extends BufferedReader {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseRequest.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseRequest.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseRequest.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * upper case.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UpperCaseRequest extends HttpServletRequestWrapper {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseResponse.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseResponse.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseResponse.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -28,7 +29,7 @@
  * upper case.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UpperCaseResponse extends HttpServletResponseWrapper {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseWriter.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseWriter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/UpperCaseWriter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * PrintWriter that converts all characters to upper case.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UpperCaseWriter extends PrintWriter {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/WrapperFilter.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/WrapperFilter.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/WrapperFilter.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -27,7 +28,7 @@
  * it passes on with either generic or HTTP-specific wrappers.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class WrapperFilter implements Filter {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Xerces01.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Xerces01.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Xerces01.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -32,7 +33,7 @@
  *
  * @author Amy Roh
  * @author Craig McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Xerces01 extends HttpServlet {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Xerces01Parser.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Xerces01Parser.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/Xerces01Parser.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000, 2001 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -33,7 +34,7 @@
  *
  * @author Amy Roh
  * @author Craig McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class Xerces01Parser extends HandlerBase {

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/shared/SharedSessionBean.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/shared/SharedSessionBean.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/shared/SharedSessionBean.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -34,7 +35,7 @@
  * <code>$CATALINA_HOME/lib</code>.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class SharedSessionBean implements

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/unpshared/UnpSharedSessionBean.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/unpshared/UnpSharedSessionBean.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/unpshared/UnpSharedSessionBean.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -34,7 +35,7 @@
  * <code>$CATALINA_HOME/classes</code>.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UnpSharedSessionBean implements

Modified: trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/unshared/UnsharedSessionBean.java
===================================================================
--- trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/unshared/UnsharedSessionBean.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/src/tester/org/apache/tester/unshared/UnsharedSessionBean.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,11 @@
 /*
- * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
  *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
@@ -35,7 +36,7 @@
  * <code>/WEB-INF/lib/tester.jar</code>.
  *
  * @author Craig R. McClanahan
- * @version $Revision: 302726 $ $Date: 2004-02-27 07:59:07 -0700 (Fri, 27 Feb 2004) $
+ * @version $Revision: 565210 $ $Date: 2007-08-12 18:01:26 -0600 (Sun, 12 Aug 2007) $
  */
 
 public class UnsharedSessionBean extends SessionBean implements

Modified: trunk/tomcat5.5/container/tester/web/Authentication04.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Authentication04.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Authentication04.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><%
   StringBuffer results = new StringBuffer();
   String remoteUser = request.getRemoteUser();

Modified: trunk/tomcat5.5/container/tester/web/Encoding01.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Encoding01.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Encoding01.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
 <%@ page contentType="text/html;charset=SJIS" %>
 
 <h2>Test Character</h2>

Modified: trunk/tomcat5.5/container/tester/web/Encoding02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Encoding02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Encoding02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>Encoding02.jsp</title>

Modified: trunk/tomcat5.5/container/tester/web/Encoding03.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Encoding03.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Encoding03.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>Encoding03.jsp</title>

Modified: trunk/tomcat5.5/container/tester/web/ErrorPage06.html
===================================================================
--- trunk/tomcat5.5/container/tester/web/ErrorPage06.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/ErrorPage06.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 ErrorPage06 PASSED - HTML

Modified: trunk/tomcat5.5/container/tester/web/ErrorPage06.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/ErrorPage06.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/ErrorPage06.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><%
 
         // Accumulate all the reasons this request might fail

Modified: trunk/tomcat5.5/container/tester/web/ErrorPage08.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/ErrorPage08.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/ErrorPage08.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><%
 
         // Write a FAILED message that should get replaced by the error text

Modified: trunk/tomcat5.5/container/tester/web/ErrorPage09.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/ErrorPage09.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/ErrorPage09.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" errorPage="/ErrorPage10.jsp" %><%
 
         // Write a FAILED message that should get replaced by the error text

Modified: trunk/tomcat5.5/container/tester/web/ErrorPage10.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/ErrorPage10.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/ErrorPage10.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" isErrorPage="true" %><%
 
         // Accumulate all the reasons this request might fail

Modified: trunk/tomcat5.5/container/tester/web/FilterResponse02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/FilterResponse02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/FilterResponse02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>FilterResponse02 PASSED
 <%
         while (true) {

Modified: trunk/tomcat5.5/container/tester/web/Forward00b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward00b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward00b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>Forward00b PASSED
 requestURI=<%= request.getRequestURI() %>
 contextPath=<%= request.getContextPath() %>

Modified: trunk/tomcat5.5/container/tester/web/Forward00c.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward00c.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward00c.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>Forward00c PASSED
 requestURI=<%= request.getRequestURI() %>
 contextPath=<%= request.getContextPath() %>

Modified: trunk/tomcat5.5/container/tester/web/Forward00e.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward00e.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward00e.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>Forward00e PASSED
 requestURI=<%= request.getRequestURI() %>
 contextPath=<%= request.getContextPath() %>

Modified: trunk/tomcat5.5/container/tester/web/Forward03b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward03b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward03b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%
   String specials[] =
     { "javax.servlet.include.request_uri",

Modified: trunk/tomcat5.5/container/tester/web/Forward04.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward04.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward04.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:forward page="/Forward04a.jsp"/>Forward04.jsp FAILED - Content should not be visible

Modified: trunk/tomcat5.5/container/tester/web/Forward04a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward04a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward04a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:forward page="/Forward04b.jsp"/>Forward04a.jsp FAILED - Content should not be visible

Modified: trunk/tomcat5.5/container/tester/web/Forward04b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward04b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward04b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>Forward04b.jsp PASSED

Modified: trunk/tomcat5.5/container/tester/web/Forward05.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward05.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward05.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:forward page="/Forward05a"/>Forward05.jsp FAILED - Content should not be visible

Modified: trunk/tomcat5.5/container/tester/web/Forward05a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward05a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward05a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:forward page="/Forward05b"/>Forward05a.jsp FAILED - Content should not be visible

Modified: trunk/tomcat5.5/container/tester/web/Forward05b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward05b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward05b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>Forward05b.jsp PASSED

Modified: trunk/tomcat5.5/container/tester/web/Forward06.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward06.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward06.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:forward page="/servlet/Forward06a"/>Forward06.jsp FAILED - Content should not be visible

Modified: trunk/tomcat5.5/container/tester/web/Forward06a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward06a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward06a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:forward page="/servlet/Forward06b"/>Forward06a.jsp FAILED - Content should not be visible

Modified: trunk/tomcat5.5/container/tester/web/Forward06b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Forward06b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Forward06b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>Forward06b.jsp PASSED

Modified: trunk/tomcat5.5/container/tester/web/Include00b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include00b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include00b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" session="false" %>Include00b PASSED
 requestURI=<%= request.getRequestURI() %>
 contextPath=<%= request.getContextPath() %>

Modified: trunk/tomcat5.5/container/tester/web/Include00c.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include00c.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include00c.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" session="false"%>Include00c PASSED
 requestURI=<%= request.getRequestURI() %>
 contextPath=<%= request.getContextPath() %>

Modified: trunk/tomcat5.5/container/tester/web/Include00e.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include00e.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include00e.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" session="false" %>Include00e PASSED
 requestURI=<%= request.getRequestURI() %>
 contextPath=<%= request.getContextPath() %>

Modified: trunk/tomcat5.5/container/tester/web/Include03b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include03b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include03b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <% request.setAttribute("Include03b.jsp", "This is a new attribute"); %>

Modified: trunk/tomcat5.5/container/tester/web/Include03c.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include03c.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include03c.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><%
   // Duplicate logic from "Include03.java"
   StringBuffer sb = new StringBuffer();

Modified: trunk/tomcat5.5/container/tester/web/Include05.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include05.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include05.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:include page="/Include05a.jsp" flush="false"/><jsp:forward page="/Include05b.jsp"/>

Modified: trunk/tomcat5.5/container/tester/web/Include05a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include05a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include05a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 Include05a PASSED

Modified: trunk/tomcat5.5/container/tester/web/Include05b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include05b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include05b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 Include05b PASSED

Modified: trunk/tomcat5.5/container/tester/web/Include06.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include06.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include06.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>==========
 <jsp:include page="servlet/org.apache.tester.Include06a" flush="false"/>==========
 <jsp:include page="/Include06b.jsp"/>==========

Modified: trunk/tomcat5.5/container/tester/web/Include06b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Include06b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Include06b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 Include06b.jsp output

Modified: trunk/tomcat5.5/container/tester/web/JspBeans01.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspBeans01.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspBeans01.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:useBean id="bean" class="org.apache.tester.SessionBean"/>JspBeans01 PASSED
 lifecycle = <%= bean.getLifecycle() %>
 stringProperty= <%= bean.getStringProperty() %>

Modified: trunk/tomcat5.5/container/tester/web/JspBeans02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspBeans02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspBeans02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:useBean id="bean" class="org.apache.tester.shared.SharedSessionBean"/>JspBeans02 PASSED
 lifecycle = <%= bean.getLifecycle() %>
 stringProperty= <%= bean.getStringProperty() %>

Modified: trunk/tomcat5.5/container/tester/web/JspBeans03.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspBeans03.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspBeans03.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:useBean id="bean" class="org.apache.tester.unshared.UnsharedSessionBean"/>JspBeans03 PASSED
 lifecycle = <%= bean.getLifecycle() %>
 stringProperty= <%= bean.getStringProperty() %>

Modified: trunk/tomcat5.5/container/tester/web/JspDoc01.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspDoc01.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspDoc01.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <?xml version="1.0"?>
 <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2">
   <a>text<b></b></a>

Modified: trunk/tomcat5.5/container/tester/web/JspDoc02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspDoc02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspDoc02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <?xml version="1.0"?>
 <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
   version="1.2">

Modified: trunk/tomcat5.5/container/tester/web/JspForward01.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspForward01.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspForward01.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,2 +1,18 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:forward page="<%= request.getParameter(\"path\") %>"/>
 JspForward01 FAILED - Content from forwarded-to page not included

Modified: trunk/tomcat5.5/container/tester/web/JspForward01a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspForward01a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspForward01a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>JspForward01a PASSED

Modified: trunk/tomcat5.5/container/tester/web/JspInclude01.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspInclude01.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspInclude01.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>This is before the include
 <jsp:include page="<%= request.getParameter(\"path\") %>" flush="true"/>
 This is after the include

Modified: trunk/tomcat5.5/container/tester/web/JspInclude01a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspInclude01a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspInclude01a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>This is the include

Modified: trunk/tomcat5.5/container/tester/web/JspInclude02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspInclude02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspInclude02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>This is before the include
 <jsp:include page="<%= request.getParameter(\"path\") %>" flush="false"/>
 This is after the include

Modified: trunk/tomcat5.5/container/tester/web/JspInclude02a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspInclude02a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspInclude02a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>This is the include

Modified: trunk/tomcat5.5/container/tester/web/JspParams01.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspParams01.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspParams01.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <jsp:include page="JspParams01a.jsp" flush="true">
   <jsp:params>
     <jsp:param name="foo" value="bar"/>

Modified: trunk/tomcat5.5/container/tester/web/JspParams02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/JspParams02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/JspParams02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <jsp:forward page="JspParams01a.jsp">
   <jsp:params>
     <jsp:param name="foo" value="bar"/>

Modified: trunk/tomcat5.5/container/tester/web/Property01.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Property01.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Property01.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>Property01.jsp - Positive PropertyEditor Test</title>

Modified: trunk/tomcat5.5/container/tester/web/Property02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Property02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Property02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>Property02.jsp - Negative PropertyEditor Test</title>

Modified: trunk/tomcat5.5/container/tester/web/Redirect02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Redirect02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Redirect02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><% String dummy = null; if (dummy == null) { response.sendRedirect(request.getContextPath() + "/Redirect02a.jsp"); return; } %>Redirect02.jsp FAILED - Content should not be visible

Modified: trunk/tomcat5.5/container/tester/web/Redirect02a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Redirect02a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Redirect02a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>Redirect02a.jsp PASSED

Modified: trunk/tomcat5.5/container/tester/web/Redirect03.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Redirect03.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Redirect03.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><% String dummy = null; if (dummy == null) { response.sendRedirect(request.getContextPath() + "/Redirect03a.jsp");  } %>Redirect03.jsp FAILED - Content should not be visible

Modified: trunk/tomcat5.5/container/tester/web/Redirect03a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Redirect03a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Redirect03a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>Redirect03a.jsp PASSED

Modified: trunk/tomcat5.5/container/tester/web/ResponseWrap01b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/ResponseWrap01b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/ResponseWrap01b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain"%>ResponseWrap01b PASSED

Modified: trunk/tomcat5.5/container/tester/web/ResponseWrap01d.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/ResponseWrap01d.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/ResponseWrap01d.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain"%>ResponseWrap01d PASSED

Modified: trunk/tomcat5.5/container/tester/web/SSIConditional01.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConditional01.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConditional01.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 Before if block.
 <!--#set var="test" value="value1" -->
 <!--#if expr="\"$test\" = \"value1\"" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConditional02.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConditional02.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConditional02.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 Before if block.
 <!--#set var="test" value="value2" -->
 <!--#if expr="\"$test\" = \"value1\"" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConditional03.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConditional03.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConditional03.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 Before if block.
 <!--#set var="test" value="unquoted multi-word value" -->
 <!--#if expr="\"$test\" = unquoted multi-word value" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConditional04.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConditional04.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConditional04.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test1" value="not one" -->
 <!--#set var="test2" value="two" -->
 <!--#set var="test3" value="three" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConditional05.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConditional05.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConditional05.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test1" value="not one" -->
 <!--#set var="test2" value="two" -->
 <!--#set var="test3" value="three" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConditional06.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConditional06.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConditional06.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test1" value="not one" -->
 <!--#set var="test2" value="two" -->
 <!--#set var="test3" value="three" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConditional07.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConditional07.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConditional07.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test1" value="not one" -->
 <!--#set var="test2" value="not two" -->
 <!--#set var="test3" value="three" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConditional08.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConditional08.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConditional08.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test" value="one" -->
 <!--#if expr="\"$test\" = \"one\"" -->
 <!--#set var="test" value="two" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConfig01.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConfig01.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConfig01.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,2 +1,18 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#config errmsg="errmsg:Sorry this command won't work." -->
 <!--#fsize file="foo.shtml" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIConfig03.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIConfig03.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIConfig03.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#config sizefmt="bytes" -->
 <!--#fsize file="includeme.txt" -->
 <!--#config sizefmt="abbrev" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIExecCGI.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIExecCGI.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIExecCGI.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html> 
   <head> 
  <title>exec command  test examples </title> 

Modified: trunk/tomcat5.5/container/tester/web/SSIExecCmd.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIExecCmd.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIExecCmd.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
   <head>
  <title>exec command  test examples </title>

Modified: trunk/tomcat5.5/container/tester/web/SSIFsize01.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIFsize01.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIFsize01.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#fsize -->

Modified: trunk/tomcat5.5/container/tester/web/SSIFsize02.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIFsize02.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIFsize02.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#fsize file="includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIFsize03.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIFsize03.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIFsize03.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#fsize file="./includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIFsize04.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIFsize04.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIFsize04.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#fsize virtual="includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIFsize05.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIFsize05.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIFsize05.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#fsize virtual="/tester/includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIFsize06.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIFsize06.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIFsize06.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#fsize virtual="ssidir/includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIFsize07.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIFsize07.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIFsize07.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#fsize virtual="./ssidir/includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIFsize08.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIFsize08.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIFsize08.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,2 +1,18 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#fsize file="includeme.txt"
   -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude01.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude01.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude01.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude02.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude02.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude02.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include file="includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude03.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude03.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude03.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include file="./includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude04.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude04.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude04.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include virtual="includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude05.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude05.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude05.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include virtual="/tester/includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude06.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude06.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude06.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include virtual="ssidir/includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude07.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude07.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude07.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include virtual="./ssidir/includeme.txt" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude08.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude08.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude08.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,2 +1,18 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include file="includeme.txt"
   -->

Modified: trunk/tomcat5.5/container/tester/web/SSIInclude09.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIInclude09.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIInclude09.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#include file="includeme.txt"
   -->
 <!--#include file="SSIInclude08.shtml"

Modified: trunk/tomcat5.5/container/tester/web/SSIVarSub01.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIVarSub01.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIVarSub01.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test" value="$DOCUMENT_URI" -->
 <!--#echo var="test" -->
 

Modified: trunk/tomcat5.5/container/tester/web/SSIVarSub02.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIVarSub02.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIVarSub02.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test" value="value of test" -->
 <!--#set var="test2" value="${test}" -->
 <!--#echo var="test2" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIVarSub03.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIVarSub03.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIVarSub03.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test" value="value of test" -->
 <!--#set var="test2" value="value of test2" -->
 <!--#set var="test3" value="$test $test2" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIVarSub04.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIVarSub04.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIVarSub04.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test" value="value of test" -->
 <!--#set var="test2" value="value of test2" -->
 <!--#set var="test3" value="${test} ${test2}" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIVarSub05.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIVarSub05.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIVarSub05.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test" value="value of test" -->
 <!--#set var="test2" value="value of test2" -->
 <!--#set var="test3" value="${test}|${test2}" -->

Modified: trunk/tomcat5.5/container/tester/web/SSIVarSub06.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/SSIVarSub06.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/SSIVarSub06.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!--#set var="test" value="value of test" -->
 <!--#set var="test3" value="${test}\${test2}" -->
 <!--#echo var="test3" -->

Modified: trunk/tomcat5.5/container/tester/web/Session07a.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Session07a.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Session07a.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:useBean id="simpleBean"
     scope="session" class="org.apache.tester.SessionBean"/><%
   simpleBean.setStringProperty("From Session07a");

Modified: trunk/tomcat5.5/container/tester/web/Session07b.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Session07b.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Session07b.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %><jsp:useBean id="simpleBean"
     scope="session" class="org.apache.tester.SessionBean"/><%
   if ("From Session07a".equals(simpleBean.getStringProperty())) {

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/array.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/array.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/array.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 print "Content-type: text/html\n\n";
 
 @days = ("Monday", 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/binary.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/binary.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/binary.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/concat.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/concat.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/concat.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/days.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/days.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/days.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 @days = ("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
 
 print "Content-type: text/html\n\n";

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/dowhile.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/dowhile.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/dowhile.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/else.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/else.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/else.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/elsif.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/elsif.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/elsif.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/exponents.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/exponents.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/exponents.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/for.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/for.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/for.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/getday.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/getday.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/getday.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 @days = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday);
 
 print "Content-type: text/html\n\n";

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/helloperl.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/helloperl.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/helloperl.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 	$t	= "Hello World!";
 	print	<<EOT;
 Content-type: text/html

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/if.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/if.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/if.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/increment.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/increment.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/increment.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 print "Content-type: text/html\n\n";

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/modifyall.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/modifyall.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/modifyall.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 require "subparseform.lib";
 &Parse_Form;
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/preference.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/preference.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/preference.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/usr/bin/perl
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 $div = 40 / 5 + 3;
 $parens = 40 / (5 + 3);
 $subadd = 9 - 3 + 5;

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/subparseform.lib
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/subparseform.lib	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/subparseform.lib	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 sub Parse_Form 
 {
 if ($ENV{'REQUEST_METHOD'} eq 'GET') 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/subroutines.lib
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/subroutines.lib	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/subroutines.lib	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,20 @@
 #!/usr/local/bin/perl;
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 sub cap {
 	$captext = $_[0];
 	$captext =~ tr/a-z/A-Z/;

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/test-cgi.pl
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/test-cgi.pl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/cgi/test-cgi.pl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,63 +1,21 @@
 #!/usr/local/bin/perl
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
 #
-# ========================================================================= *
-#                                                                           *
-#                 The Apache Software License,  Version 1.1                 *
-#                                                                           *
-#     Copyright (c) 1999, 2000, 2001  The Apache Software Foundation.       *
-#                           All rights reserved.                            *
-#                                                                           *
-# ========================================================================= *
-#                                                                           *
-# Redistribution and use in source and binary forms,  with or without modi- *
-# fication, are permitted provided that the following conditions are met:   *
-#                                                                           *
-# 1. Redistributions of source code  must retain the above copyright notice *
-#    notice, this list of conditions and the following disclaimer.          *
-#                                                                           *
-# 2. Redistributions  in binary  form  must  reproduce the  above copyright *
-#    notice,  this list of conditions  and the following  disclaimer in the *
-#    documentation and/or other materials provided with the distribution.   *
-#                                                                           *
-# 3. The end-user documentation  included with the redistribution,  if any, *
-#    must include the following acknowlegement:                             *
-#                                                                           *
-#       "This product includes  software developed  by the Apache  Software *
-#        Foundation <http://www.apache.org/>."                              *
-#                                                                           *
-#    Alternately, this acknowlegement may appear in the software itself, if *
-#    and wherever such third-party acknowlegements normally appear.         *
-#                                                                           *
-# 4. The names  "The  Jakarta  Project",  "Tomcat",  and  "Apache  Software *
-#    Foundation"  must not be used  to endorse or promote  products derived *
-#    from this  software without  prior  written  permission.  For  written *
-#    permission, please contact <apache at apache.org>.                        *
-#                                                                           *
-# 5. Products derived from this software may not be called "Apache" nor may *
-#    "Apache" appear in their names without prior written permission of the *
-#    Apache Software Foundation.                                            *
-#                                                                           *
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES *
-# INCLUDING, BUT NOT LIMITED TO,  THE IMPLIED WARRANTIES OF MERCHANTABILITY *
-# AND FITNESS FOR  A PARTICULAR PURPOSE  ARE DISCLAIMED.  IN NO EVENT SHALL *
-# THE APACHE  SOFTWARE  FOUNDATION OR  ITS CONTRIBUTORS  BE LIABLE  FOR ANY *
-# DIRECT,  INDIRECT,   INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL *
-# DAMAGES (INCLUDING,  BUT NOT LIMITED TO,  PROCUREMENT OF SUBSTITUTE GOODS *
-# OR SERVICES;  LOSS OF USE,  DATA,  OR PROFITS;  OR BUSINESS INTERRUPTION) *
-# HOWEVER CAUSED AND  ON ANY  THEORY  OF  LIABILITY,  WHETHER IN  CONTRACT, *
-# STRICT LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN *
-# ANY  WAY  OUT OF  THE  USE OF  THIS  SOFTWARE,  EVEN  IF  ADVISED  OF THE *
-# POSSIBILITY OF SUCH DAMAGE.                                               *
-#                                                                           *
-# ========================================================================= *
-#                                                                           *
-# This software  consists of voluntary  contributions made  by many indivi- *
-# duals on behalf of the  Apache Software Foundation.  For more information *
-# on the Apache Software Foundation, please see <http://www.apache.org/>.   *
-#                                                                           *
-# ========================================================================= */
+#     http://www.apache.org/licenses/LICENSE-2.0
 #
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
 
+
 print <<EOM;
 Content-type: text/html
 

Modified: trunk/tomcat5.5/container/tester/web/WEB-INF/web.xml
===================================================================
--- trunk/tomcat5.5/container/tester/web/WEB-INF/web.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WEB-INF/web.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

Modified: trunk/tomcat5.5/container/tester/web/WrappedFilterResponse02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/WrappedFilterResponse02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/WrappedFilterResponse02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain" %>FilterResponse02 PASSED

Modified: trunk/tomcat5.5/container/tester/web/Xerces00.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Xerces00.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Xerces00.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- This File is generated automatically by jsp2XML converter tool --> 
 <!-- Written By Ramesh Mandava/Santosh Singh -->
 <jsp:root

Modified: trunk/tomcat5.5/container/tester/web/Xerces01.xml
===================================================================
--- trunk/tomcat5.5/container/tester/web/Xerces01.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Xerces01.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <personnel>
 
   <person id="Big.Boss">

Modified: trunk/tomcat5.5/container/tester/web/Xerces02.jsp
===================================================================
--- trunk/tomcat5.5/container/tester/web/Xerces02.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/Xerces02.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%@ page contentType="text/plain"%>Xerces02 PASSED

Modified: trunk/tomcat5.5/container/tester/web/includeme.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/includeme.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/includeme.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 This is Content of "includeme.shtml"

Modified: trunk/tomcat5.5/container/tester/web/index.shtml
===================================================================
--- trunk/tomcat5.5/container/tester/web/index.shtml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/tester/web/index.shtml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html> 
  <head> 
  <title>Config command examples </title>

Modified: trunk/tomcat5.5/container/webapps/ROOT/admin/index.html
===================================================================
--- trunk/tomcat5.5/container/webapps/ROOT/admin/index.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/ROOT/admin/index.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!doctype html public "-//w3c//dtd html 4.0 transitional//en" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html>
     <head>

Modified: trunk/tomcat5.5/container/webapps/ROOT/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/ROOT/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/ROOT/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="ROOT" default="build-main" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/webapps/ROOT/index.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/ROOT/index.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/ROOT/index.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
@@ -81,7 +97,7 @@
       </td>
       <td align="left" valign="top"><b><%= application.getServerInfo() %></b></td>
       <td align="right">
-        <a href="http://jakarta.apache.org/">
+        <a href="http://www.apache.org/">
 	  <img src="asf-logo-wide.gif" height="51" width="537" alt="The Apache Software Foundation"/>
 	</a>
        </td>

Modified: trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 application.title=Tomcat Server Administration
 errors.header=<h2><font color="red">Validation Errors</font></h2>You must correct the following errors before proceeding:<ul>
 errors.footer=</ul><hr>

Modified: trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_es.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 application.title=Administración del Servidor Tomcat
 errors.header=<h3><font color="red">Error(es) de Validación</font></h3>Debe corregir el/los siguiente(s) error(es) antes de continuar:<ul>
 errors.footer=</ul><hr>

Modified: trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_ja.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_ja.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/ApplicationResources_ja.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 application.title=Tomcat\u30b5\u30fc\u30d0\u30fc\u7ba1\u7406\u30b3\u30f3\u30bd\u30fc\u30eb
 errors.header=<h2><fontcolor="red">\u4e0d\u6b63\u306a\u30a8\u30e9\u30fc</font></h2>\u5b9f\u884c\u3059\u308b\u524d\u306b\u3001\u4e0b\u8a18\u306e\u30a8\u30e9\u30fc\u3092\u4fee\u6b63\u3057\u3066\u4e0b\u3055\u3044:<ul>
 errors.footer=</ul><hr>

Modified: trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/EditConnectorAction.java
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/EditConnectorAction.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/EditConnectorAction.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -40,7 +40,7 @@
  * The <code>Action</code> that sets up <em>Edit Connector</em> transactions.
  *
  * @author Manveen Kaur
- * @version $Revision: 505759 $ $Date: 2007-02-10 13:20:48 -0700 (Sat, 10 Feb 2007) $
+ * @version $Revision: 528826 $ $Date: 2007-04-14 18:17:12 +0200 (Sat, 14 Apr 2007) $
  */
 
 public class EditConnectorAction extends Action {
@@ -247,13 +247,13 @@
                 attribute = "keystoreType";
                 connectorFm.setKeyStoreType
                     ((String) mBServer.getAttribute(cname, attribute));   
-                attribute = "trustStoreFile";
+                attribute = "truststoreFile";
                 connectorFm.setTrustStoreFileName
                     ((String) mBServer.getAttribute(cname, attribute));
-                attribute = "trustStorePass";
+                attribute = "truststorePass";
                 connectorFm.setTrustStorePassword
                     ((String) mBServer.getAttribute(cname, attribute));     
-                attribute = "trustStoreType";
+                attribute = "truststoreType";
                 connectorFm.setTrustStoreType
                     ((String) mBServer.getAttribute(cname, attribute));   
                 attribute = "sslProtocol";

Modified: trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/SaveConnectorAction.java
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/SaveConnectorAction.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/connector/SaveConnectorAction.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -45,7 +45,7 @@
  * <em>Edit Connector</em> transactions.
  *
  * @author Manveen Kaur
- * @version $Revision: 477406 $ $Date: 2006-11-20 16:34:22 -0700 (Mon, 20 Nov 2006) $
+ * @version $Revision: 528826 $ $Date: 2007-04-14 18:17:12 +0200 (Sat, 14 Apr 2007) $
  */
 
 public final class SaveConnectorAction extends Action {
@@ -423,17 +423,17 @@
                 String trustFile = cform.getTrustStoreFileName();
                 if ((trustFile != null) && (trustFile.length()>0)) 
                     mBServer.setAttribute(coname,
-                              new Attribute("trustStoreFile", trustFile));            
+                              new Attribute("truststoreFile", trustFile));            
                 
                 String trustPass = cform.getTrustStorePassword();
                 if ((trustPass != null) && (trustPass.length()>0)) 
                     mBServer.setAttribute(coname,
-                              new Attribute("trustStorePass", trustPass));                 
+                              new Attribute("truststorePass", trustPass));                 
                 
                 String trustType = cform.getTrustStoreType();
                 if ((trustType != null) && (trustType.length()>0)) 
                     mBServer.setAttribute(coname,
-                              new Attribute("trustStoreType", trustType));   
+                              new Attribute("truststoreType", trustType));   
                 
                 String sslProtocol = cform.getSslProtocol();
                 if ((sslProtocol != null) && (sslProtocol.length()>0)) 

Modified: trunk/tomcat5.5/container/webapps/admin/WEB-INF/controls.tld
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/WEB-INF/controls.tld	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/WEB-INF/controls.tld	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE taglib
   PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
          "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

Modified: trunk/tomcat5.5/container/webapps/admin/WEB-INF/struts-config.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/WEB-INF/struts-config.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/WEB-INF/struts-config.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
 <!DOCTYPE struts-config PUBLIC
           "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
           "http://struts.apache.org/dtds/struts-config_1_2.dtd">

Modified: trunk/tomcat5.5/container/webapps/admin/WEB-INF/web.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/WEB-INF/web.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/WEB-INF/web.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

Modified: trunk/tomcat5.5/container/webapps/admin/admin.css
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/admin.css	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/admin.css	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 .masthead-title-text {
   color: #FFFFFF;
   margin: 3px 5px 5px 3px;

Modified: trunk/tomcat5.5/container/webapps/admin/admin.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/admin.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/admin.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,8 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
+
     Context configuration file for the Tomcat Administration Web App
 
-    $Id: admin.xml 303123 2004-08-26 17:03:35Z remm $
+    $Id: admin.xml 565211 2007-08-13 00:09:38Z markt $
 
 -->
 

Modified: trunk/tomcat5.5/container/webapps/admin/banner.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/banner.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/banner.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/blank.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/blank.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/blank.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="admin" default="build-main" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/webapps/admin/buttons.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/buttons.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/buttons.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
     <tr>
       <td>&nbsp;</td>

Modified: trunk/tomcat5.5/container/webapps/admin/connector/connector.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/connector/connector.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/connector/connector.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/connector/connectors.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/connector/connectors.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/connector/connectors.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/context/context.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/context/context.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/context/context.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/context/contexts.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/context/contexts.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/context/contexts.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/dumpRegistry.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/dumpRegistry.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/dumpRegistry.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/dumpServer.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/dumpServer.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/dumpServer.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/error.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/error.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/error.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/footer.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/footer.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/footer.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,16 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->

Modified: trunk/tomcat5.5/container/webapps/admin/frameset.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/frameset.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/frameset.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/header.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/header.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/header.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,8 +1,19 @@
 <!--
-  Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
-  reserved.
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
 -->
-
 <head>
   <title><bean:message key="application.title"/></title>
   <html:base/>

Modified: trunk/tomcat5.5/container/webapps/admin/host/alias.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/host/alias.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/host/alias.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/host/aliases.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/host/aliases.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/host/aliases.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/host/host.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/host/host.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/host/host.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/host/hosts.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/host/hosts.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/host/hosts.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/index.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/index.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/index.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1 +1,17 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <% response.sendRedirect(response.encodeRedirectURL("frameset.jsp")); %>

Modified: trunk/tomcat5.5/container/webapps/admin/login.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/login.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/login.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/realm/dataSourceRealm.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/realm/dataSourceRealm.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/realm/dataSourceRealm.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/realm/jdbcRealm.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/realm/jdbcRealm.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/realm/jdbcRealm.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/realm/jndiRealm.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/realm/jndiRealm.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/realm/jndiRealm.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/realm/memoryRealm.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/realm/memoryRealm.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/realm/memoryRealm.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/realm/realms.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/realm/realms.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/realm/realms.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/realm/userDatabaseRealm.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/realm/userDatabaseRealm.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/realm/userDatabaseRealm.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/dataSource.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/dataSource.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/dataSource.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/dataSources.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/dataSources.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/dataSources.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%-- DataSources List --%>
 
 <table class="back-table" border="0" cellspacing="0" cellpadding="1"

Modified: trunk/tomcat5.5/container/webapps/admin/resources/deleteDataSources.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/deleteDataSources.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/deleteDataSources.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/deleteEnvEntries.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/deleteEnvEntries.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/deleteEnvEntries.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/deleteMailSessions.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/deleteMailSessions.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/deleteMailSessions.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/deleteResourceLinks.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/deleteResourceLinks.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/deleteResourceLinks.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/deleteUserDatabases.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/deleteUserDatabases.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/deleteUserDatabases.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/envEntries.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/envEntries.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/envEntries.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%-- Env Entries List --%>
 
 <table class="back-table" border="0" cellspacing="0" cellpadding="1"

Modified: trunk/tomcat5.5/container/webapps/admin/resources/envEntry.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/envEntry.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/envEntry.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listDataSources.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listDataSources.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listDataSources.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listDataSources.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listDataSources.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listDataSources.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <td align="right" nowrap>
 <div class="page-title-text">
 <controls:actions label="Data Source Actions">

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listEnvEntries.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listEnvEntries.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listEnvEntries.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listEnvEntries.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listEnvEntries.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listEnvEntries.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <td align="right" nowrap>
 <div class="page-title-text">
 <controls:actions label="Environment Entry Actions">

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listMailSessions.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listMailSessions.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listMailSessions.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listMailSessions.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listMailSessions.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listMailSessions.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <td align="right" nowrap>
 <div class="page-title-text">
 <controls:actions label="Mail Session Actions">

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listResourceLinks.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listResourceLinks.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listResourceLinks.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listResourceLinks.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listResourceLinks.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listResourceLinks.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <td align="right" nowrap>
 <div class="page-title-text">
 <controls:actions label="Resource Link Actions">

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listUserDatabases.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listUserDatabases.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listUserDatabases.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/listUserDatabases.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/listUserDatabases.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/listUserDatabases.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <td align="right" nowrap>
 <div class="page-title-text">
 <controls:actions label="User Database Actions">

Modified: trunk/tomcat5.5/container/webapps/admin/resources/mailSession.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/mailSession.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/mailSession.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/mailSessions.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/mailSessions.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/mailSessions.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%-- MailSessions List --%>
 
 <table class="back-table" border="0" cellspacing="0" cellpadding="1"

Modified: trunk/tomcat5.5/container/webapps/admin/resources/resourceLink.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/resourceLink.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/resourceLink.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/resourceLinks.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/resourceLinks.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/resourceLinks.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%-- ResourceLinks List --%>
 
 <table class="back-table" border="0" cellspacing="0" cellpadding="1"

Modified: trunk/tomcat5.5/container/webapps/admin/resources/userDatabase.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/userDatabase.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/userDatabase.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/resources/userDatabases.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/resources/userDatabases.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/resources/userDatabases.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%-- Env Entries List --%>
 
 <table class="back-table" border="0" cellspacing="0" cellpadding="1"

Modified: trunk/tomcat5.5/container/webapps/admin/saved.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/saved.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/saved.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/savefail.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/savefail.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/savefail.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/server/server.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/server/server.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/server/server.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/service/service.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/service/service.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/service/service.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/service/services.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/service/services.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/service/services.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/tree-control-test.css
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/tree-control-test.css	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/tree-control-test.css	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 .tree-control {
   font-family: arial, verdana, geneva, helvetica, sans-serif;
   font-size: 80%;

Modified: trunk/tomcat5.5/container/webapps/admin/tree-control-test.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/tree-control-test.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/tree-control-test.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/deleteGroups.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/deleteGroups.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/deleteGroups.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/deleteRoles.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/deleteRoles.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/deleteRoles.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/deleteUsers.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/deleteUsers.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/deleteUsers.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/footer.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/footer.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/footer.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -0,0 +1,16 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->

Modified: trunk/tomcat5.5/container/webapps/admin/users/group.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/group.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/group.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/groups.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/groups.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/groups.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%-- Groups List --%>
 
 <table class="back-table" border="0" cellspacing="0" cellpadding="1"

Modified: trunk/tomcat5.5/container/webapps/admin/users/header.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/header.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/header.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,8 +1,19 @@
 <!--
-  Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
-  reserved.
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
 -->
-
 <head>
   <title><bean:message key="application.title"/></title>
   <html:base/>

Modified: trunk/tomcat5.5/container/webapps/admin/users/listGroups.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/listGroups.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/listGroups.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/listGroups.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/listGroups.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/listGroups.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <td align="right" nowrap>
 <div class="page-title-text">
 <controls:actions label="Group Actions">

Modified: trunk/tomcat5.5/container/webapps/admin/users/listRoles.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/listRoles.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/listRoles.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/listRoles.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/listRoles.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/listRoles.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <td align="right" nowrap>
 <div class="page-title-text">
 <controls:actions label="Role Actions">

Modified: trunk/tomcat5.5/container/webapps/admin/users/listUsers.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/listUsers.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/listUsers.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/listUsers.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/listUsers.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/listUsers.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <td align="right" nowrap>
 <div class="page-title-text">
 <controls:actions label="User Actions">

Modified: trunk/tomcat5.5/container/webapps/admin/users/role.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/role.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/role.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/roles.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/roles.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/roles.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%-- Roles List --%>
 
 <table class="back-table" border="0" cellspacing="0" cellpadding="1"

Modified: trunk/tomcat5.5/container/webapps/admin/users/user.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/user.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/user.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>

Modified: trunk/tomcat5.5/container/webapps/admin/users/users.jspf
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/users/users.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/users/users.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <%-- Users List --%>
 
 <table class="back-table" border="0" cellspacing="0" cellpadding="1"

Modified: trunk/tomcat5.5/container/webapps/admin/valve/accessLogValve.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/valve/accessLogValve.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/valve/accessLogValve.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/valve/remoteAddrValve.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/valve/remoteAddrValve.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/valve/remoteAddrValve.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/valve/remoteHostValve.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/valve/remoteHostValve.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/valve/remoteHostValve.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/valve/requestDumperValve.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/valve/requestDumperValve.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/valve/requestDumperValve.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/valve/singleSignOnValve.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/valve/singleSignOnValve.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/valve/singleSignOnValve.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/admin/valve/valves.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/admin/valve/valves.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/admin/valve/valves.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Standard Struts Entries -->
 <%@ page language="java" import="java.net.URLEncoder" contentType="text/html;charset=utf-8" %>
 <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>

Modified: trunk/tomcat5.5/container/webapps/balancer/META-INF/context.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/balancer/META-INF/context.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/balancer/META-INF/context.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
+
     Context configuration file for the Tomcat Balancer Web App
     This is only needed to keep the distribution small and avoid duplicating
     commons libraries
 
-    $Id: context.xml 303123 2004-08-26 17:03:35Z remm $
+    $Id: context.xml 565211 2007-08-13 00:09:38Z markt $
 
 -->
 

Modified: trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/overview.html
===================================================================
--- trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/overview.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/overview.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>Balancer Webapp Overview</title>

Modified: trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/package.html
===================================================================
--- trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/package.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/package.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>org.apache.webapp.balancer Package Overview</title>

Modified: trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/rules/CharacterEncodingRule.java
===================================================================
--- trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/rules/CharacterEncodingRule.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/balancer/WEB-INF/classes/org/apache/webapp/balancer/rules/CharacterEncodingRule.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.webapp.balancer.rules;
 
 import javax.servlet.http.HttpServletRequest;

Modified: trunk/tomcat5.5/container/webapps/balancer/WEB-INF/config/rules.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/balancer/WEB-INF/config/rules.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/balancer/WEB-INF/config/rules.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <rules>
   <!-- If the URL contains News (case-sensitive), go to CNN.com -->
   <rule className="org.apache.webapp.balancer.rules.URLStringMatchRule"

Modified: trunk/tomcat5.5/container/webapps/balancer/WEB-INF/web.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/balancer/WEB-INF/web.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/balancer/WEB-INF/web.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

Modified: trunk/tomcat5.5/container/webapps/balancer/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/balancer/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/balancer/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
 <!-- 
 This is the build script for the balancer webapp.
 @author Yoav Shapira

Modified: trunk/tomcat5.5/container/webapps/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Webapps" default="dist" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/webapps/docs/META-INF/context.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/META-INF/context.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/META-INF/context.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,10 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
+
     Context configuration file for the Tomcat Balancer Web App
     This is only needed to keep the distribution small and avoid duplicating
     commons libraries
 
-    $Id: context.xml 303123 2004-08-26 17:03:35Z remm $
+    $Id: context.xml 565211 2007-08-13 00:09:38Z markt $
 
 -->
 

Modified: trunk/tomcat5.5/container/webapps/docs/WEB-INF/web.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/WEB-INF/web.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/WEB-INF/web.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/build.xml.txt
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/build.xml.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/build.xml.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 <!--
      General purpose build script for web applications and web services,
      including enhanced support for deploying directly to a Tomcat 5
@@ -18,7 +33,7 @@
                              image files), including the WEB-INF subdirectory
                              and its configuration file contents.
 
-     $Id: build.xml.txt 302898 2004-05-23 19:50:44Z markt $
+     $Id: build.xml.txt 565211 2007-08-13 00:09:38Z markt $
 -->
 
 

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/deployment.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/deployment.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/deployment.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/index.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/index.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/index.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/installation.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/installation.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/installation.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/introduction.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/introduction.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/introduction.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/processes.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/processes.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/processes.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/project.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Application Developer's Guide"
         href="http://apache.apache.org/">
 

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/sample/docs/README.txt
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/sample/docs/README.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/sample/docs/README.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,2 +1,17 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 This is a dummy README file for the sample
 web application.

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/sample/index.html
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/sample/index.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/sample/index.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <meta name="author" content="Ben Souther" />
@@ -20,7 +36,7 @@
         <a href="http://localhost:8080/sample">http://localhost:8080/sample</a>
       </p>
       <p>
-        If you just want to browse the code you can unpack the war file 
+        If you just want to browse the contents, you can unpack the war file 
         with the <b>jar</b> command.
         <source>
           jar -xvf sample.war

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/sample/sample.war
===================================================================
(Binary files differ)

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/sample/src/mypackage/Hello.java
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/sample/src/mypackage/Hello.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/sample/src/mypackage/Hello.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -69,24 +69,11 @@
 	writer.println("<td>");
 	writer.println("<h1>Sample Application Servlet</h1>");
 	writer.println("This is the output of a servlet that is part of");
-	writer.println("the Hello, World application.  It displays the");
-	writer.println("request headers from the request we are currently");
-	writer.println("processing.");
+	writer.println("the Hello, World application.");
 	writer.println("</td>");
 	writer.println("</tr>");
 	writer.println("</table>");
 
-	writer.println("<table border=\"0\" width=\"100%\">");
-	Enumeration names = request.getHeaderNames();
-	while (names.hasMoreElements()) {
-	    String name = (String) names.nextElement();
-	    writer.println("<tr>");
-	    writer.println("  <th align=\"right\">" + name + ":</th>");
-	    writer.println("  <td>" + request.getHeader(name) + "</td>");
-	    writer.println("</tr>");
-	}
-	writer.println("</table>");
-
 	writer.println("</body>");
 	writer.println("</html>");
 

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/WEB-INF/web.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/WEB-INF/web.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/WEB-INF/web.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/hello.jsp
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/hello.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/hello.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>Sample Application JSP Page</title>
@@ -12,33 +28,12 @@
 <td>
 <h1>Sample Application JSP Page</h1>
 This is the output of a JSP page that is part of the Hello, World
-application.  It displays several useful values from the request
-we are currently processing.
+application.
 </td>
 </tr>
 </table>
 
-<table border="0" border="100%">
-<tr>
-  <th align="right">Context Path:</th>
-  <td align="left"><%= request.getContextPath() %></td>
-</tr>
-<tr>
-  <th align="right">Path Information:</th>
-  <td align="left"><%= request.getPathInfo() %></td>
-</tr>
-<tr>
-  <th align="right">Query String:</th>
-  <td align="left"><%= request.getQueryString() %></td>
-</tr>
-<tr>
-  <th align="right">Request Method:</th>
-  <td align="left"><%= request.getMethod() %></td>
-</tr>
-<tr>
-  <th align="right">Servlet Path:</th>
-  <td align="left"><%= request.getServletPath() %></td>
-</tr>
-</table>
+<%= new String("Hello!") %>
+
 </body>
 </html>

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/index.html
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/index.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/sample/web/index.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>Sample "Hello, World" Application</title>

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/source.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/source.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/source.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/appdev/web.xml.txt
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/appdev/web.xml.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/appdev/web.xml.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
 <!DOCTYPE web-app 

Modified: trunk/tomcat5.5/container/webapps/docs/apr.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/apr.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/apr.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/architecture/index.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/architecture/index.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/architecture/index.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/architecture/overview.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/architecture/overview.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/architecture/overview.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/architecture/project.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/architecture/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/architecture/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Tomcat Architecture"
         href="http://jakarta.apache.org/tomcat/">
 

Modified: trunk/tomcat5.5/container/webapps/docs/architecture/requestProcess.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/architecture/requestProcess.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/architecture/requestProcess.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/architecture/startup/serverStartup.txt
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/architecture/startup/serverStartup.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/architecture/startup/serverStartup.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
 Tomcat 5 Startup Sequence
 
 Sequence 1. Start from Command Line

Modified: trunk/tomcat5.5/container/webapps/docs/architecture/startup.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/architecture/startup.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/architecture/startup.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/balancer-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/balancer-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/balancer-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="tomcat-docs" default="build-main" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/webapps/docs/building.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/building.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/building.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/catalina/docs/api/index.html
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/catalina/docs/api/index.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/catalina/docs/api/index.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!doctype html public "-//w3c//dtd html 4.0 transitional//en" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html>
     <head>

Modified: trunk/tomcat5.5/container/webapps/docs/cgi-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/cgi-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/cgi-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/changelog.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/changelog.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/changelog.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -14,6 +30,338 @@
   </properties>
 
 <body>
+<section name="Tomcat 5.5.25 (fhanik)">
+  <subsection name="General">
+    <changelog>
+      <docs>
+        Correct j.u.l log levels in JULI docs. (rjung)
+      </docs>
+      <update>
+        Update to Commons Modeler 2.0.1, fix embed release starting issue. (pero)
+      </update>
+    </changelog>
+  </subsection>
+  <subsection name="Catalina">
+    <changelog>
+      <fix>
+        Handle special case of ROOT when re-loading webapp after ROOT.xml has
+        been modified. In some circumstances the reloaded ROOT webapp had no
+        associated resources. (markt)
+      </fix>
+      <fix>
+        Fix WebDAV Servlet so it works correctly with MS clients. (markt)
+      </fix>
+      <fix>
+        Remove invalid attribute "encoding" of MBean MemoryUserDatabase,
+        which lead to errors in the manager webapp JMXProxy output. (rjung)
+      </fix>
+      <fix>
+        Fix XSS security vulnerability (CVE-2007-2450) in the Manager and Host
+        Manager. Reported by Daiki Fukumori. (markt)
+      </fix>
+      <add>
+        <bug>39055</bug>: Add JMXAdaptorLifecycleListener to start JMX Connector with fix naming and data port. 
+        This feature is needed to have stable remote access as your local firewall is activ. The adaptor read all
+        standard JMX system properties (-Dcom.sun.management.jmxremote.XXX). Currently only included at src release (used JDK 1.5 classes)
+        Feature provided by George Lindholm and Juergen Herrman (pero)
+      </add>
+      <fix>
+        <bug>41722</bug>: Make the role-link element optional (as required by
+        the spec) when using a security-role-ref element. (markt)
+      </fix>
+      <fix>
+        <bug>42547</bug>: Fix NPE when a ResourceLink in context.xml tries to
+        override an env-entry in web.xml. (markt)
+      </fix>
+      <fix>
+        <bug>42944</bug>: Correctly handle servlet mappings that use a '+'
+        character as part of the url pattern. (markt)
+      </fix>
+      <fix>
+        Improve large-file support (more then 4 Gb) at all AccessLogValves. (pero)
+      </fix>
+      <update>
+        <bug>43129</bug>: Support logging of response headers at AccessLogValve (ex. add %{Set-Cookie}o to your pattern). (pero)
+      </update>
+    </changelog>
+  </subsection>
+  <subsection name="Jasper">
+    <changelog>
+      <fix>
+        <bug>2500</bug>: FileNotFoundException within a JSP pages resulted in a
+        404 rather than a 500. (markt)
+      </fix>
+      <fix>
+        <bug>37326</bug>: No error reported when an included page does not
+        exist. (markt)
+      </fix>
+      <fix>
+        <bug>42643</bug>: Prevent creation of duplicate JSP function mapper
+        variables. (markt)
+      </fix>
+      <fix>
+        <bug>42314</bug>: Provide compilation error details in cases where the
+        error can't be mapped back to a source file. (markt)
+      </fix>
+    </changelog>
+  </subsection>
+  <subsection name="Webapps">
+    <changelog>
+      <fix>
+        Don't write error on System.out, use log() instead. (rjung)
+      </fix>
+      <fix>
+        Fix XSS security vulnerabilities (CVE-2007-2449) in the examples.
+        Reported by Toshiharu Sugiyama. (markt)
+      </fix>
+      <fix>
+        <bug>39212</bug>: Fix possible NPE in DummyCart example and remove
+        redundant code. (markt)
+      </fix>
+      <fix>
+        <bug>42979</bug>: Update sample.war to include recent security fixes
+        in the source code. (markt)
+      </fix>
+    </changelog>
+  </subsection>
+  <subsection name="Coyote">
+    <changelog>
+      <fix>
+        Separate sequence increment from getter in ThreadPool to avoid
+        misleading increments during monitoring via JMX. (rjung)
+      </fix>
+    </changelog>
+  </subsection> 
+  <subsection name="Cluster">
+   <changelog>
+     <fix>
+        <bug>40042</bug>: Recovery membership heartbeat after interface down. (pero)
+     </fix>
+     <fix>
+        <bug>42691</bug>: Don't set access time after session sync. Fix that sessions
+        after node restart better expire. Requested by Casey Lucas (pero)
+     </fix>   
+     <fix>
+        Backport Tomcat 6 cluster socket parameter. (pero)
+     </fix>   
+     <fix>
+        Fix typo in new MBean attribute which lead to errors in the manager webapp JMXProxy output. (rjung)
+     </fix>     
+     <fix>
+        <bug>42689</bug>: No way to timeout new connect attempts for replication sockets. 
+        Patch by Casey Lucas (pero)
+     </fix>   
+     <fix>  
+         Fix timeout setting on a replicated DeltaSession.
+         Patch by Alexander Maas (fhanik,pero)
+     </fix>
+     <fix>  
+         <bug>42720</bug>: Don't send a message if no cluster member exists.
+         Patch by Keiichi Fujino (pero)
+     </fix>  
+    </changelog>
+  </subsection>
+</section>
+<section name="Tomcat 5.5.24 (fhanik)">
+  <subsection name="General">
+    <changelog>
+      <update>
+        Update to Commons DBCP src 1.2.2 (pero)
+      </update>
+      <update>
+        Update to Commons Pool src 1.3 (pero)
+      </update>
+    </changelog>
+  </subsection>
+  <subsection name="Catalina">
+    <changelog>
+      <fix>
+        <bug>33774</bug> Retry JNDI authentiction on ServiceUnavailableException
+        as at least one provider throws this after an idle connection has been
+        closed. (markt)
+      </fix>
+      <fix>
+        <bug>40593</bug> Cleanup that Listener stop after Manager stop 
+        at StandardContext.stop(). Patch by Suzuki Yuichiro (pero)
+      </fix>
+      <fix>
+        <bug>41747</bug> Correct example ant script for deploy task. (markt)
+      </fix>
+      <fix>
+        <bug>41752</bug> Correct error message on exception in MemoryRealm.
+        (markt)
+      </fix>
+      <fix>
+        <bug>39875</bug> Minor cleanup in RealmBase.init, as requested by Takayoshi Kimura. (yoavs)
+      </fix>
+      <fix>
+        <bug>41477</bug> Add commons-el.jar to bin/catalina-tasks.xml, required for jasper2 tasks
+          using EL. Patch by Daniel Santos. (yoavs)
+      </fix>
+      <fix>
+        <bug>40150</bug> Ensure user and roll classnames are validated on startup.  Patch by
+          Tom. (yoavs)
+      </fix>
+      <fix>
+        <bug>42039</bug> Log a stack trace if a servlet throws an
+         UnavailableException. Patch provided by Kawasima Kazuh. (markt)
+      </fix>
+      <fix>
+        <bug>41990</bug> Add some additional mime-type mappings. (markt)
+      </fix>
+      <fix>
+        <bug>41655</bug> Fix message translations. Japanese translations
+        provided by Suzuki Yuichiro. (markt)
+      </fix>
+      <fix>
+        <bug>41939</bug> Add configuration option to disable nulling of static
+        and final fields of loaded classes when stopping a web application
+        classloader. Setting the system property
+        org.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES to
+        false will stop these fields being set to null on context stop. (markt)
+      </fix>
+      <fix>
+        Fix a logging related memory leak in ManagerBase and
+        ApplicationDispatcher. (markt)
+      </fix>
+      <fix>
+         <bug>42354</bug>: Ensure JARs in webapps are scanned for TLDs when the
+         Tomcat installation path contains spaces. (markt)
+      </fix>
+      <fix>
+         <bug>42361</bug>: Handle multi-part forms when saving requests during
+         FORM authentication process. Patch provided by Peter Runge. (markt)
+      </fix>
+      <fix>
+         <bug>42401</bug>: Update RUNNING.txt with better JRE/JDK information.
+         (markt)
+      </fix>
+      <fix>
+         <bug>42497</bug>: Ensure ETag header is present in a 304 response.
+         Patch provided by Len Popp. (markt)
+      </fix>
+      <fix>
+         Allow for a forward/include to call getAttributeNames on the Request in a sandbox. (billbarker)
+      </fix>
+      <add>
+        And getSession() operation to StandardManager and DeltaManager JMX Interface (pero)
+      </add>     
+    </changelog>
+  </subsection>
+  <subsection name="Webapps">
+    <changelog>
+      <update>
+        Update host configuration document for new behaviour for directories
+        in appBase. (markt)
+      </update>
+      <update>
+        <bug>39883</bug>  Add note to context configuration document about using
+          antiResourceLocking on a webapp outside the Host's appBase directory. (yoavs)
+      </update>
+      <update>
+        <bug>39540</bug> Add link to httpd 2.2 mod_proxy_ajp docs in AJP connector doc. (yoavs)
+      </update>
+      <fix>
+        <bug>41289</bug>: Create configBase, since it is no longer created elsewhere.
+        Submitted by Shiva Kumar H R. (pero)
+      </fix>
+      <fix>
+        <bug>42103</bug>: Use correct names for truststoreFile, truststoreType and 
+        truststorePass when saving server.xml in Admin webapp. Patch provided by
+        Matheus Bastos. (markt)
+      </fix>
+      <fix>
+        <bug>42025</bug>: Update valve documentation to refer to correct regular
+        expression implementation. (markt)
+      </fix>
+      <fix>
+        <bug>41956</bug>: Don't skip the connector address attribute when
+        persisting server.xml changes via the admin webapp. (markt)
+      </fix>
+    </changelog>
+  </subsection>
+  <subsection name="Coyote">
+    <changelog>
+      <fix>
+        <bug>40960</bug> Inconsistent exception type thrown on socket timeout in
+          InternalAprInputBuffer.  Patch by Christophe Pierret. (yoavs)
+      </fix>
+      <add>
+        <bug>41675</bug> Add a couple of DEBUG-level logging statements to Http11Processors
+          when sending error responses.  Patch by Ralf Hauser. (yoavs)
+      </add>
+      <fix>
+        <bug>42119</bug> Fix return value for request.getCharacterEncoding() when
+        Content-Type headers contain parameters other than charset. Patch by
+        Leigh L Klotz Jr. (markt)
+      </fix>
+      <fix>
+        <bug>36155</bug> Always reset the MB when doing getBytes in the JK Connector (billbarker)
+      </fix>
+      <fix>
+        Improve large-file support in the AJP Connectors (billbarker)
+      </fix>
+    </changelog>
+  </subsection>
+  <subsection name="Cluster">
+    <changelog>
+      <fix>
+        Receiver can also use tcpListenAddress with a hostname. (rjung, pero)
+      </fix>     
+      <fix>
+        DeltaRequest synchronized getSize() and show log message as 
+        readExternal() failure. (rjung, pero)
+      </fix>
+      <add>
+        Add DeltaManager expireTolerance attribute to quicker auto expire long backup sessions. (rjung, pero)
+      </add>
+      <add>
+        Add DeltaManager updateActiveIntervall attribute to send every 60 sec a session access message. (rjung, pero)
+      </add>
+      <fix>
+        <bug>39866</bug> Duplicate names appended to cluster manager name. (yoavs)
+      </fix>
+    </changelog>
+  </subsection>   
+  <subsection name="Jasper">
+    <changelog>
+      <fix>
+        <bug>39425</bug> Add additional system property permission to
+        catalina.policy for pre-compiled JSPs. (markt)
+      </fix>
+      <fix>
+        <bug>41227</bug> Add a bit of DEBUG-level logging to JspC so users know
+          which file is being compiled. (yoavs)
+      </fix>
+      <fix>
+        <bug>41869</bug> TagData.getAttribute() should return
+        TagData.REQUEST_TIME_VALUE when the attribute value is an EL expression.
+        (markt)
+      </fix>
+      <fix>
+        <bug>42071</bug> Fix IllegalStateException on multiple requests to
+        an unavailable JSP. Patch provided by Kawasima Kazuh. (markt)
+      </fix>
+      <fix>
+        After a JSP throws an UnavailableException allow it to be accessed once
+        the unavailable period has expired. (markt)
+      </fix>
+      <fix>
+        <bug>42072</bug> Don't call destroy() if the associated init() fails.
+        Patch provided by Kawasima Kazuh. (markt)
+      </fix>
+      <fix>
+        Fix a logging related memory leak in PageContextImpl. (markt)
+      </fix>
+      <fix>
+        <bug>42438</bug> Duplicate temporary variables were created when
+        jsp:attribute was used in conjunction with custom tags. Patch provided
+        by Brian Lenz. (markt)
+      </fix>
+    </changelog>
+  </subsection>
+</section>
+
 <section name="Tomcat 5.5.23 (fhanik)">
   <subsection name="Catalina">
     <changelog>
@@ -438,7 +786,6 @@
       </add>
     </changelog>
   </subsection>   
-
 </section>
 
 

Modified: trunk/tomcat5.5/container/webapps/docs/class-loader-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/class-loader-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/class-loader-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/cluster-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/cluster-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/cluster-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -390,7 +406,7 @@
                   primaryIndicator="true" /&gt;
 	   &lt;Valve            className="org.apache.catalina.cluster.session.JvmRouteBinderValve"
 	                      enabled="true"  /&gt;
-&lt;Cluster/&gt;
+&lt;/Cluster&gt;
 </source> 
 </p>
 </section>
@@ -481,13 +497,16 @@
                                  mcastClusterDomain="d10" 
                                           mcastPort="45564"
                                      mcastFrequency="1000"
-                                      mcastDropTime="30000"/&gt;
+                                      mcastDropTime="30000"
+									recoveryCounter="10"
+                                    recoveryEnabled="true"
+                                  recoverySleepTime="5000"/&gt;         
                   &lt;Receiver 
                                            className="org.apache.catalina.cluster.tcp.ReplicationListener"
                                     tcpListenAddress="auto"
                                        tcpListenPort="9015"
                                   tcpSelectorTimeout="100"
-                                      tcpThreadCount="6"
+                                      tcpThreadCount="6"/&gt;
                   &lt;Sender
                                            className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                                      replicationMode="fastasyncqueue"
@@ -687,7 +706,9 @@
 </p>
 <p>
 Example to get a lot of statistic information, wait for ACK and
-recover after connection failure (wait 5 secs and 6 trails (==30 secs Mcast Timeout) <br/>
+recover after connection failure. Wait 5 secs with attribute <i>recoverTimeout</i>, make 6 trails
+with attribute <i>recoverCounter</i> and use 30 secs (<i>mcastDropTime="30000"</i>) timeout
+at Service element <br/>
 <source>
     &lt;Sender
       className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
@@ -954,6 +975,18 @@
     <td><code>true</code></td>
   </tr>  
   
+  <tr>
+    <td>updateActiveInterval</td>
+    <td>Send session access message every updateActiveInterval sec.</td>
+    <td><code>60</code></td>
+  </tr>  
+  
+  <tr>
+    <td>expireTolerance</td>
+    <td>Autoexpire backup session after MaxInactive + expireTolerance sec.</td>
+    <td><code>300</code></td>
+  </tr> 
+  
 </table>
   
 </p>

Modified: trunk/tomcat5.5/container/webapps/docs/config/ajp.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/ajp.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/ajp.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -32,9 +48,11 @@
 
 <p>The native connectors supported with this Tomcat release are:
 <ul>
-<li>JK 1.2.x with any of the supported servers</li>
-<li>mod_proxy on Apache httpd 2.x (included by default in Apache HTTP Server 2.2), 
-with AJP enabled</li>
+  <li>JK 1.2.x with any of the supported servers</li>
+  <li>mod_proxy on Apache httpd 2.x (included by default in Apache HTTP Server 2.2), 
+      with AJP enabled: see
+      <a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html">the httpd docs</a>
+      for details.</li>
 </ul>
 </p>
 

Modified: trunk/tomcat5.5/container/webapps/docs/config/context.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/context.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/context.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -246,6 +262,14 @@
         including the disabling of JSP reloading in a running server: see
         <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=37668">Bugzilla 37668</a>.
         </p>
+        <p>
+        Please note that setting this flag to true in applications that are
+        outside the appBase for the Host (the <code>webapps</code> directory
+        by default) will cause the application to be
+        <strong>deleted</strong> on Tomcat shutdown.  You probably don't want to
+        do this, so think twice before setting antiResourceLocking=true on a webapp
+        that's outside the appBase for its Host.
+        </p>
       </attribute>
 
       <attribute name="cacheMaxSize" required="false">

Modified: trunk/tomcat5.5/container/webapps/docs/config/engine.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/engine.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/engine.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/globalresources.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/globalresources.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/globalresources.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/host.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/host.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/host.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -278,10 +294,9 @@
         deployer, if enabled, will automatically expand the updated WAR file
         once the previously expanded directory is removed).</li>
     <li>Any subdirectory within the <em>application base directory</em>
-        that appears to be an unpacked web application (that is, it contains
-        a <code>/WEB-INF/web.xml</code> file) will receive an automatically
-        generated <a href="context.html">Context</a> element, even if this
-        directory is not mentioned in the <code>conf/server.xml</code> file.
+        will receive an automatically generated <a href="context.html">
+        Context</a> element, even if this directory is not mentioned in the
+        <code>conf/server.xml</code> file.
         This generated Context entry will be configured according to the
         defaults configured for this Host element.  The context path for this
         deployed Context will be a slash character ("/") followed by the
@@ -291,8 +306,7 @@
 
     <p>In addition to the automatic deployment that occurs at startup time,
     you can also request that new XML configuration files, WAR files, or
-    subdirectories (containing web applications) that are dropped in to the
-    <code>appBase</code> (or 
+    subdirectories that are dropped in to the <code>appBase</code> (or 
     <code>$CATALINA_HOME/conf/[engine_name]/[host_name]</code> in the case of
     an XML configuration file) directory while Tomcat is running will be
     automatically deployed, according to the rules described above. The 
@@ -392,9 +406,8 @@
     <a href="context.html">Context</a> element.  The remote address or name
     will be checked against a configured list of "accept" and/or "deny"
     filters, which are defined using the Regular Expression syntax supported
-    by the <a href="http://jakarta.apache.org/regexp/">Jakarta Regexp</a>
-    regular expression library.  Requests that come from locations that are
-    not accepted will be rejected with an HTTP "Forbidden" error.
+    by the standard Java <code>java.util.regex</code> regular expression library.  Requests 
+    that come from locations that are not accepted will be rejected with an HTTP "Forbidden" error.
     Example filter declarations:</p>
 
 <source>
@@ -426,8 +439,7 @@
 <source>
 &lt;Host name="localhost" ...&gt;
   ...
-  &lt;Valve className="org.apache.catalina.authenticator.SingleSignOn"
-         debug="0"/&gt;
+  &lt;Valve className="org.apache.catalina.authenticator.SingleSignOn" /&gt;
   ...
 &lt;/Host&gt;
 </source>
@@ -496,7 +508,7 @@
   ...
   &lt;Listener className="org.apache.catalina.startup.UserConfig"
             directoryName="public_html"
-            homeBase=c:\Homes"
+            homeBase="c:\Homes"
             userClass="org.apache.catalina.startup.HomesUserDatabase"/&gt;
   ...
 &lt;/Host&gt;

Modified: trunk/tomcat5.5/container/webapps/docs/config/http.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/http.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/http.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -311,7 +327,7 @@
 
     <attribute name="server" required="false">
       <p>The Server header for the http response.
-         Unless your paranoid, you won't need this feature.
+         Unless you are paranoid, you won't need this feature.
       </p>
     </attribute>
 

Modified: trunk/tomcat5.5/container/webapps/docs/config/index.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/index.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/index.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/loader.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/loader.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/loader.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/manager.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/manager.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/manager.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/project.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Apache Tomcat Configuration Reference"
         href="http://tomcat.apache.org/">
 

Modified: trunk/tomcat5.5/container/webapps/docs/config/realm.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/realm.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/realm.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/resources.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/resources.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/resources.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/server.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/server.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/server.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/service.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/service.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/service.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/config/valve.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/config/valve.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/config/valve.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -164,11 +180,12 @@
 
     <p>
     There is also support to write information from the cookie, incoming
-    header, the Session or something else in the ServletRequest.
+    header, outgoing response headers, the Session or something else in the ServletRequest.
     It is modeled after the apache syntax:
     <ul>
-    <li><b><code>%{xxx}i</code></b> for incoming headers</li>
-    <li><b><code>%{xxx}c</code></b> for a specific cookie</li>
+    <li><b><code>%{xxx}i</code></b> for incoming request headers</li>
+    <li><b><code>%{xxx}o</code></b> for outgoing response headers</li>
+    <li><b><code>%{xxx}c</code></b> for a specific request cookie</li>
     <li><b><code>%{xxx}r</code></b> xxx is an attribute in the ServletRequest</li>
     <li><b><code>%{xxx}s</code></b> xxx is an attribute in the HttpSession</li>
     </ul>
@@ -176,7 +193,7 @@
 
 
     <p>The shorthand pattern name <code>common</code> (which is also the
-    default) corresponds to <strong>%h %l %u %t "%r" %s %b"</strong>.</p>
+    default) corresponds to <strong>'%h %l %u %t "%r" %s %b'</strong>.</p>
 
     <p>The shorthand pattern name <code>combined</code> appends the
     values of the <code>Referer</code> and <code>User-Agent</code> headers,
@@ -202,10 +219,9 @@
     presented to this container for processing before it will be passed on.</p>
 
     <p>The syntax for <em>regular expressions</em> is different than that for
-    'standard' wildcard matching. Tomcat uses the
-    <a href="http://jakarta.apache.org/regexp/">Jakarta Regexp</a> library.
-    Please consult the Regexp documentation for details of the expressions
-    supported.</p>
+    'standard' wildcard matching. Tomcat uses the <code>java.util.regex</code>
+    package. Please consult the Java documentation for details of the
+    expressions supported.</p>
 
   </subsection>
 
@@ -259,10 +275,9 @@
     presented to this container for processing before it will be passed on.</p>
 
     <p>The syntax for <em>regular expressions</em> is different than that for
-    'standard' wildcard matching. Tomcat uses the
-    <a href="http://jakarta.apache.org/regexp/">Jakarta Regexp</a> library.
-    Please consult the Regexp documentation for details of the expressions
-    supported.</p>
+    'standard' wildcard matching. Tomcat uses the <code>java.util.regex</code>
+    package. Please consult the Java documentation for details of the
+    expressions supported.</p>
 
   </subsection>
 
@@ -380,8 +395,11 @@
         requests based on the presence of a valid SSO cookie, without 
         rechecking with the <strong>Realm</strong>.</p>
       </attribute>
+      
+      <attribute name="cookieDomain" required="false">
+        <p>Sets the host domain to be used for sso cookies.</p>
+      </attribute>
  
-
     </attributes>
 
   </subsection>

Modified: trunk/tomcat5.5/container/webapps/docs/connectors.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/connectors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/connectors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/default-servlet.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/default-servlet.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/default-servlet.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/deployer-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/deployer-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/deployer-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -114,11 +130,9 @@
                 <li>$CATALINA_HOME/conf/[enginename]/[hostname]/context.xml</li>
                 <li>$CATALINA_HOME/webapps/[webappname]/META-INF/context.xml</li>
             </ol>
-            If a Context Descriptor is not provided for a Context, Tomcat
-            automatically creates one and places it in (1) with a filename of
-            [webappname].xml although if manually created, the filename need not
-            match the web application name as Tomcat is concerned only with the
-            Context configuration contained within the Context Descriptor file(s).
+            Files in (1) are named [webappname].xml but files in (2) are named
+            context.xml. If a Context Descriptor is not provided for a Context,
+            Tomcat configures the Context using default values.
         </p>
     </section>
     

Modified: trunk/tomcat5.5/container/webapps/docs/developers.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/developers.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/developers.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -38,6 +54,7 @@
       <li>Jan Luehe (luehe): Jasper</li>
       <li>Jean-Francois Arcand (jfarcand): Catalina</li>
       <li>Jean-Frederic Clere (jfclere): Connectors</li>
+      <li>Jim Jagielski (jim): Connectors</li>
       <li>Kin-Man Chung (kinman): Jasper</li>
       <li>Mark Thomas (markt): CGI, SSI, WebDAV, bug fixing</li>
       <li>Mladen Turk (mturk): Connectors</li>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-apps.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-apps.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-apps.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -9,7 +25,7 @@
   <properties>
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <title>Administrative Apps - Overall Requirements</title>
-    <revision>$Id: fs-admin-apps.xml 301989 2003-06-25 01:38:16Z yoavs $</revision>
+    <revision>$Id: fs-admin-apps.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-objects.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-objects.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-objects.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -9,7 +25,7 @@
   <properties>
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <title>Administrative Apps - Administered Objects</title>
-    <revision>$Id: fs-admin-objects.xml 303281 2004-09-27 16:00:31Z yoavs $</revision>
+    <revision>$Id: fs-admin-objects.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-opers.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-opers.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-admin-opers.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -9,7 +25,7 @@
   <properties>
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <title>Administrative Apps - Supported Operations</title>
-    <revision>$Id: fs-admin-opers.xml 303281 2004-09-27 16:00:31Z yoavs $</revision>
+    <revision>$Id: fs-admin-opers.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-default.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-default.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-default.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -9,7 +25,7 @@
   <properties>
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <title>Default Servlet</title>
-    <revision>$Id: fs-default.xml 301460 2003-01-15 03:40:45Z glenn $</revision>
+    <revision>$Id: fs-default.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-invoker.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-invoker.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-invoker.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -9,7 +25,7 @@
   <properties>
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <title>Invoker Servlet</title>
-    <revision>$Id: fs-invoker.xml 301460 2003-01-15 03:40:45Z glenn $</revision>
+    <revision>$Id: fs-invoker.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-jdbc-realm.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-jdbc-realm.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-jdbc-realm.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -9,7 +25,7 @@
   <properties>
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <title>JDBCRealm</title>
-    <revision>$Id: fs-jdbc-realm.xml 301460 2003-01-15 03:40:45Z glenn $</revision>
+    <revision>$Id: fs-jdbc-realm.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-jndi-realm.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-jndi-realm.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-jndi-realm.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -9,7 +25,7 @@
   <properties>
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <title>JNDIRealm</title>
-    <revision>$Id: fs-jndi-realm.xml 301460 2003-01-15 03:40:45Z glenn $</revision>
+    <revision>$Id: fs-jndi-realm.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-memory-realm.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-memory-realm.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/fs-memory-realm.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -9,7 +25,7 @@
   <properties>
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <title>MemoryRealm</title>
-    <revision>$Id: fs-memory-realm.xml 301460 2003-01-15 03:40:45Z glenn $</revision>
+    <revision>$Id: fs-memory-realm.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/index.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/index.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/index.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/mbean-names.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/mbean-names.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/mbean-names.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -10,7 +26,7 @@
     <author email="craigmcc at apache.org">Craig McClanahan</author>
     <author email="amyroh at apache.org">Amy Roh</author>
     <title>Tomcat MBean Names</title>
-    <revision>$Id: mbean-names.xml 466611 2006-10-22 00:44:42Z markt $</revision>
+    <revision>$Id: mbean-names.xml 565211 2007-08-13 00:09:38Z markt $</revision>
   </properties>
 
 <body>

Modified: trunk/tomcat5.5/container/webapps/docs/funcspecs/project.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/funcspecs/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/funcspecs/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Catalina Functional Specifications"
         href="http://tomcat.apache.org/">
 

Modified: trunk/tomcat5.5/container/webapps/docs/html-manager-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/html-manager-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/html-manager-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/index.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/index.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/index.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/introduction.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/introduction.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/introduction.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/jasper/docs/api/index.html
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/jasper/docs/api/index.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/jasper/docs/api/index.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!doctype html public "-//w3c//dtd html 4.0 transitional//en" "http://www.w3.org/TR/REC-html40/strict.dtd">
 <html>
     <head>

Modified: trunk/tomcat5.5/container/webapps/docs/jasper-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/jasper-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/jasper-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/jndi-datasource-examples-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/jndi-datasource-examples-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/jndi-datasource-examples-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -192,15 +208,10 @@
 </source>
 </p>
 
-<h3>2. server.xml configuration</h3>
+<h3>2. Context configuration</h3>
 <p>Configure the JNDI DataSource in Tomcat by adding a declaration for your
-resource to <code>$CATALINA_HOME/conf/server.xml</code>.</p>
-<p>Add this in between the <code>&lt;/Context&gt;</code> tag of the examples
-context and the <code>&lt;/Host&gt;</code> tag closing the localhost definition.
-If there is no such tag, you can add one as illustrated in the 
-<a href="config/context.html">Context</a> and
-<a href="config/host.html">Host</a> configuration references, and repeated below
-for your convenience.
+resource to your <a href="config/context.html">Context</a>.</p>
+<p>For example:
 
 <source>
 &lt;Context path="/DBTest" docBase="DBTest"
@@ -316,22 +327,19 @@
 extension. Since jarfiles are zipfiles, there is no need to unzip and jar these
 files - a simple rename will suffice.</p>
 
-<p>Some early versions of Tomcat 4.0 when used with JDK 1.4 will not load
-classes12.zip unless you unzip the file, remove the <code>javax.sql.*</code>
-class heirarchy and rejar.</p>
-
 <p>For Oracle 9i onwards you should use <code>oracle.jdbc.OracleDriver</code>
 rather than <code>oracle.jdbc.driver.OracleDriver</code> as Oracle have stated
 that <code>oracle.jdbc.driver.OracleDriver</code> is deprecated and support
 for this driver class will be discontinued in the next major release.
 </p>
 
-<h3>1.    server.xml configuration</h3>
+<h3>1. Context configuration</h3>
 <p>In a similar manner to the mysql config above, you will need to define your
-Datasource in your server.xml file. Here we define a Datasource called myoracle
-using the thin driver to connect as user scott, password tiger to the sid
-called mysid. (Note: with the thin driver this sid is not the same as the
-tnsname). The schema used will be the default schema for the user scott.</p>
+Datasource in your <a href="config/context.html">Context</a>. Here we define a
+Datasource called myoracle using the thin driver to connect as user scott,
+password tiger to the sid called mysid. (Note: with the thin driver this sid is
+not the same as the tnsname). The schema used will be the default schema for the
+user scott.</p>
 
 <p>Use of the OCI driver should simply involve a changing thin to oci in the URL string.
 <source>
@@ -344,7 +352,7 @@
 </p>
 
 <h3>2.    web.xml configuration</h3>
-<p>You should ensure that you respect the elemeent ordering defined by the DTD when you
+<p>You should ensure that you respect the element ordering defined by the DTD when you
 create you applications web.xml file.</p>
 <source>
 &lt;resource-ref&gt;
@@ -409,10 +417,8 @@
 </p>
 
 <p>
-Create a resource definition file for your application defining the
-datasource. This file must have the same name as your application, so if
-your application deploys as <code>someApp.war</code>, this filename must
-be <code>someApp.xml</code>. This file should look something like the following.
+Create a resource definition for your <a href="config/context.html">Context</a>.
+The Context element should look something like the following.
 </p>
 
 <source>

Modified: trunk/tomcat5.5/container/webapps/docs/jndi-resources-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/jndi-resources-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/jndi-resources-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/logging.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/logging.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/logging.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -160,8 +176,8 @@
   </p>
   <p>
     The default logging.properties specifies a ConsoleHandler for routing logging to stdout and
-    also a FileHandler. A handler's log level threshold can be set using SEVERE, CONFIG, INFO, 
-    WARN, FINE, FINEST or ALL. The logging.properties shipped with JDK is set to INFO. You
+    also a FileHandler. A handler's log level threshold can be set using SEVERE, WARNING, INFO,
+    CONFIG, FINE, FINER, FINEST or ALL. The logging.properties shipped with JDK is set to INFO. You
     can also target specific packages to collect logging from and specify a level. Here is how
     you would set debugging from Tomcat. You would need to ensure the ConsoleHandler's level is also
     set to collect this threshold, so FINEST or ALL should be set. Please refer to Sun's java.util.logging

Modified: trunk/tomcat5.5/container/webapps/docs/manager-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/manager-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/manager-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -62,8 +78,7 @@
 (installed by default on context path <code>/manager</code>) that supports
 the following functions:</p>
 <ul>
-<li>Deploy a new web application, on a specified context path, from
-    the uploaded contents of a WAR file.</li>
+<li>Deploy a new web application from the uploaded contents of a WAR file.</li>
 <li>Deploy a new web application, on a specified context path, from the
     server file system.</li>
 <li>List the currently deployed web applications, as well as the
@@ -83,22 +98,16 @@
     directory (unless it was deployed from file system).</li>
 </ul>
 
-<p>There are two ways to configure the Manager web application
-<code>Context</code>:
-<ul>
-<li>Install the <code>manager.xml</code> context configuration file
-    in the <code>$CATALINA_HOME/conf/[enginename]/[hostname]</code> folder.
-</li>
-<li>Configure the Manager <code>Context</code> within the
-    <code>Host</code> configuration in your Tomcat <code>server.xml</code>
-    configuration. Here is an example:
+<p>A default Tomcat installation includes the manager. To add an instance of the
+Manager web application <code>Context</code> to a new host install the
+<code>manager.xml</code> context configuration file in the
+<code>$CATALINA_HOME/conf/[enginename]/[hostname]</code> folder. Here is an
+example:
 <pre>
 &lt;Context path="/manager" debug="0" privileged="true"
          docBase="/usr/local/kinetic/tomcat5/server/webapps/manager"&gt;
 &lt;/Context&gt;
 </pre>
-</li>
-</ul>
 </p>
 
 <p>If you have Tomcat configured to support multiple virtual hosts
@@ -121,17 +130,6 @@
 </ul>
 </p>
 
-<p>Future versions of Tomcat 5 will include administrative functionality that
-is presented in (at least) the following forms:
-<ul>
-<li>As web services, so that Tomcat administration can be easily integrated
-    into remote and/or non-Java mnagement environments.</li>
-<li>As a web application with a nice user interface (built on top of the
-    web services processing layer) for easy Tomcat administration via a
-    web browser.</li>
-</ul>
-</p>
-
 </section>
 
 <section name="Configuring Manager Application Access">
@@ -203,7 +201,7 @@
 &lt;Context path="/manager" debug="0" privileged="true"
          docBase="/usr/local/kinetic/tomcat5/server/webapps/manager"&gt;
          &lt;Valve className="org.apache.catalina.valves.RemoteAddrValve"
-                allow="127.0.0.1"/&gt;
+                allow="127\.0\.0\.1"/&gt;
 &lt;/Context&gt;
 </pre>
 </p>
@@ -281,17 +279,16 @@
 <subsection name="Deploy A New Application Remotely">
 
 <source>
-http://localhost:8080/manager/deploy?path=/foo
+http://localhost:8080/manager/deploy
 </source>
 
 <p>Upload the web application archive (WAR) file that is specified as the
 request data in this HTTP PUT request, install it into the <code>appBase</code>
-directory of our corresponding virtual host, and start it on the context path
-specified by the <code>path</code> request parameter.  If no <code>path</code>
-is specified the directory name or the war file name without the .war extension
-is used as the path.  The application can
-later be undeployed (and the corresponding application directory removed)
-by use of the <code>/undeploy</code>.</p>
+directory of our corresponding virtual host, and start it using the war file
+name without the .war extension as the path.  The application can later be
+undeployed (and the corresponding application directory removed) by use of the
+<code>/undeploy</code>. To deploy the ROOT web application (the application
+with a context path of "/"), name the war ROOT.war.</p>
 
 <p>The .WAR file may include Tomcat specific deployment configuration, by 
 including a Context configuration XML file in 
@@ -337,15 +334,6 @@
     classes encountered when initializing application event listeners and
     filters.</p>
     </blockquote></li>
-<li><em>Invalid context path was specified</em>
-    <blockquote>
-    <p>The context path must start with a slash character. To reference the
-    ROOT web application use "/".</p>
-    </blockquote></li>
-<li><em>No context path was specified</em>
-    <blockquote>
-    The <code>path</code> parameter is required.
-    </blockquote></li>
 </ul>
 
 </subsection>
@@ -401,14 +389,13 @@
 <h3>Deploy a Directory or War from the Host appBase</h3>
 
 <p>Deploy a web application directory or ".war" file located in your Host
-appBase directory. If no <code>path</code> is specified the directory name
-or the war file name without the ".war" extension is used as the path.</p>
+appBase directory. The directory name or the war file name without the ".war"
+extension is used as the path.</p>
 
 <p>In this example the web application located in a sub directory named
 <code>foo</code> in the Host appBase directory of the Tomcat server is
 deployed as the web application context named <code>/foo</code>. Notice
-that there is no <code>path</code> parameter so the context path defaults
-to the name of the web application directory.
+that the context path used is the name of the web application directory.
 <source>
 http://localhost:8080/manager/deploy?war=foo
 </source>
@@ -416,9 +403,9 @@
 
 <p>In this example the ".war" file <code>bar.war</code> located in your
 Host appBase directory on the Tomcat server is deployed as the web
-application context named <code>/bartoo</code>.
+application context named <code>/bar</code>.
 <source>
-http://localhost:8080/manager/deploy?path=/bartoo&amp;war=bar.war
+http://localhost:8080/manager/deploy?war=bar.war
 </source>
 </p>
 
@@ -974,7 +961,7 @@
   &lt;target name="deploy" description="Install web application"
           depends="compile"&gt;
     &lt;deploy url="${url}" username="${username}" password="${password}"
-            path="${path}" war="${build}${path}.war"/&gt;
+            path="${path}" war="file:${build}${path}.war"/&gt;
   &lt;/target&gt;
 
   &lt;target name="reload" description="Reload web application"

Modified: trunk/tomcat5.5/container/webapps/docs/mbeans-descriptor-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/mbeans-descriptor-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/mbeans-descriptor-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/monitoring.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/monitoring.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/monitoring.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -63,10 +79,20 @@
     </ol>
     <b>Note:</b>The JSR 160 JMX-Adaptor opens a second data protocol port. That is a problem
     when you have installed a local firewall.  However, there is at least one possible
-    workaround: using a custom JMXConnectorServer.  The code for this is available
-    at <a href="http://issues.apache.org/bugzilla/show_bug.cgi?id=39055" title="Bugzila 39055">Bugzilla 39055</a>.
-    </p>
-    <p>Activate JMX MX4J Http Adaptor with Java 1.4:
+    workaround: using a custom JMXConnectorServer.</p>
+    <p>Start a JMX Adaptor with fix data port is supported with Tomcat 5.5.25 src release:
+    <source>
+&lt;Server ...&gt;
+...
+&lt;Listener className="org.apache.catalina.mbeans.JMXAdaptorLifecycleListener"
+          namingPort="8083" port="8084" host="myhost" />  
+...
+&lt;/Server&gt;
+   </source>
+   You can use all JMX system properties (<i>com.sun.management.jmxremote.xxx</i>) to configure the adaptor :-) <br/>At your remote jconsole
+   call the jmx adaptor with following command <br/><i>jconsole service:jmx:rmi://myhost:8084/jndi/rmi://myhost:8083/server</i>
+   </p> 
+   <p>Activate JMX MX4J Http Adaptor with Java 1.4:
     <ol>
       <li>Install the tomcat compat package</li>
       <li>Install the mx4j-tools.jar at common/lib. Please, use the same MX4j 
@@ -99,7 +125,7 @@
 
   <section name="Manage Tomcat with JMX remote Ant Tasks">
    <p>For simple tomcat ant task usage with ant 1.6.x we have integrate import and antlib support.</p>   
-   <p><b>antlib</b>Copy your catalina-ant.jar from $CATALINA_HOME/server/lib to $ANT_HOME/lib.</p>
+   <p><b>antlib support</b>: Copy your catalina-ant.jar from $CATALINA_HOME/server/lib to $ANT_HOME/lib.</p>
    <p>Following example show the JMX Accessor usage:</p>
    <table border="1">
    <tr><td><p><pre>

Modified: trunk/tomcat5.5/container/webapps/docs/project.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/project.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/project.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Apache Tomcat Documentation - Top Level Directory"
         href="http://tomcat.apache.org/">
 

Modified: trunk/tomcat5.5/container/webapps/docs/proxy-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/proxy-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/proxy-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/realm-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/realm-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/realm-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/security-manager-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/security-manager-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/security-manager-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>
@@ -163,7 +179,7 @@
 //
 // * Read access to the document root directory
 //
-// $Id: security-manager-howto.xml 301460 2003-01-15 03:40:45Z glenn $
+// $Id: security-manager-howto.xml 565211 2007-08-13 00:09:38Z markt $
 // ============================================================================
 
 

Modified: trunk/tomcat5.5/container/webapps/docs/setup.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/setup.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/setup.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/ssi-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/ssi-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/ssi-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/ssl-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/ssl-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/ssl-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/status.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/status.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/status.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/tomcat-docs.xsl
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/tomcat-docs.xsl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/tomcat-docs.xsl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,23 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- Content Stylesheet for "tomcat-docs" Documentation -->
 
-<!-- $Id: tomcat-docs.xsl 377243 2006-02-12 21:26:03Z markt $ -->
+<!-- $Id: tomcat-docs.xsl 565211 2007-08-13 00:09:38Z markt $ -->
 
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">

Modified: trunk/tomcat5.5/container/webapps/docs/virtual-hosting-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/virtual-hosting-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/virtual-hosting-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/docs/windows-service-howto.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/docs/windows-service-howto.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/docs/windows-service-howto.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!DOCTYPE document [
   <!ENTITY project SYSTEM "project.xml">
 ]>

Modified: trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager/HTMLHostManagerServlet.java
===================================================================
--- trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager/HTMLHostManagerServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager/HTMLHostManagerServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -32,6 +32,7 @@
 
 import org.apache.catalina.Container;
 import org.apache.catalina.Host;
+import org.apache.catalina.util.RequestUtil;
 import org.apache.catalina.util.ServerInfo;
 
 /**
@@ -53,7 +54,7 @@
 * @author Malcolm Edgar
 * @author Glenn L. Nielsen
 * @author Peter Rossbach
-* @version $Revision: 466608 $, $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+* @version $Revision: 557458 $, $Date: 2007-07-18 20:21:58 -0600 (Wed, 18 Jul 2007) $
 * @see ManagerServlet
 */
 
@@ -195,7 +196,11 @@
         // Message Section
         args = new Object[3];
         args[0] = sm.getString("htmlHostManagerServlet.messageLabel");
-        args[1] = (message == null || message.length() == 0) ? "OK" : message;
+        if (message == null || message.length() == 0) {
+            args[1] = "OK";
+        } else {
+            args[1] = RequestUtil.filter(message);
+        }
         writer.print(MessageFormat.format(Constants.MESSAGE_SECTION, args));
 
         // Manager Section
@@ -248,7 +253,7 @@
 
             if (host != null ) {
                 args = new Object[2];
-                args[0] = hostName;
+                args[0] = RequestUtil.filter(hostName);
                 String[] aliases = host.findAliases();
                 StringBuffer buf = new StringBuffer();
                 if (aliases.length > 0) {
@@ -260,9 +265,11 @@
 
                 if (buf.length() == 0) {
                     buf.append("&nbsp;");
+                    args[1] = buf.toString();
+                } else {
+                    args[1] = RequestUtil.filter(buf.toString());
                 }
 
-                args[1] = buf.toString();
                 writer.print
                     (MessageFormat.format(HOSTS_ROW_DETAILS_SECTION, args));
 

Modified: trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/classes/org/apache/catalina/hostmanager/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 hostManagerServlet.cannotInvoke=Cannot invoke host manager servlet through invoker
 hostManagerServlet.noCommand=FAIL - No command was specified
 hostManagerServlet.unknownCommand=FAIL - Unknown command {0}
@@ -57,3 +72,4 @@
 
 statusServlet.title=Server Status
 statusServlet.complete=Complete Server Status
+hostManagerServlet.noHost=FAIL - Host {0} not found.

Modified: trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/web.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/web.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/host-manager/WEB-INF/web.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

Modified: trunk/tomcat5.5/container/webapps/host-manager/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/host-manager/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/host-manager/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="host-manager" default="build-main" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/webapps/host-manager/host-manager.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/host-manager/host-manager.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/host-manager/host-manager.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,8 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
+
     Context configuration file for the Tomcat Host Manager Web App
 
-    $Id: host-manager.xml 303743 2005-03-11 22:39:26Z remm $
+    $Id: host-manager.xml 565211 2007-08-13 00:09:38Z markt $
 
 -->
 

Modified: trunk/tomcat5.5/container/webapps/host-manager/manager.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/host-manager/manager.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/host-manager/manager.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,8 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
+
     Context configuration file for the Tomcat Manager Web App
 
-    $Id: manager.xml 303743 2005-03-11 22:39:26Z remm $
+    $Id: manager.xml 565211 2007-08-13 00:09:38Z markt $
 
 -->
 

Modified: trunk/tomcat5.5/container/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote/JmxRemoteServlet.java
===================================================================
--- trunk/tomcat5.5/container/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote/JmxRemoteServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/jmxremote/WEB-INF/src/org/apache/tomcat/servlets/jmxremote/JmxRemoteServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 /*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
  * Created on Jul 14, 2004
  *
  * TODO To change the template for this generated file go to

Modified: trunk/tomcat5.5/container/webapps/jmxremote/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/jmxremote/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/jmxremote/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="manager" default="build-main" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/HTMLManagerServlet.java
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/HTMLManagerServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/HTMLManagerServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -57,7 +57,7 @@
 * @author Bip Thelin
 * @author Malcolm Edgar
 * @author Glenn L. Nielsen
-* @version $Revision: 466608 $, $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+* @version $Revision: 547082 $, $Date: 2007-06-14 04:12:04 +0200 (Thu, 14 Jun 2007) $
 * @see ManagerServlet
 */
 
@@ -107,8 +107,7 @@
             message = stop(path);
         } else {
             message =
-                sm.getString("managerServlet.unknownCommand",
-                             RequestUtil.filter(command));
+                sm.getString("managerServlet.unknownCommand", command);
         }
 
         list(request, response, message);
@@ -282,7 +281,11 @@
         // Message Section
         args = new Object[3];
         args[0] = sm.getString("htmlManagerServlet.messageLabel");
-        args[1] = (message == null || message.length() == 0) ? "OK" : message;
+        if (message == null || message.length() == 0) {
+            args[1] = "OK";
+        } else {
+            args[1] = RequestUtil.filter(message);
+        }
         writer.print(MessageFormat.format(Constants.MESSAGE_SECTION, args));
 
         // Manager Section

Modified: trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/JMXProxyServlet.java
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/JMXProxyServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/JMXProxyServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -175,8 +175,8 @@
                     try {
                         value=mBeanServer.getAttribute(oname, attName);
                     } catch( Throwable t) {
-                        System.out.println("Error getting attribute " + oname +
-                                " " + attName + " " + t.toString());
+                        log("Error getting attribute " + oname +
+                            " " + attName + " " + t.toString());
                         continue;
                     }
                     if( value==null ) continue;
@@ -216,7 +216,7 @@
 
     private void appendHead( StringBuffer sb, String value, int start, int end) {
         if (end < 1) return;
-        
+
         int pos=start;
         while( end-pos > 78 ) {
             sb.append( value.substring(pos, pos+78));

Modified: trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 htmlManagerServlet.appsAvailable=Running
 htmlManagerServlet.appsName=Display Name
 htmlManagerServlet.appsPath=Path

Modified: trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_de.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_de.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_de.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 htmlManagerServlet.appsAvailable=Verfügbar
 htmlManagerServlet.appsName=Anzeigename
 htmlManagerServlet.appsPath=Kontext Pfad

Modified: trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_es.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_es.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_es.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 htmlManagerServlet.appsAvailable=Ejecutándose
 htmlManagerServlet.appsName=Nombre a Mostrar
 htmlManagerServlet.appsPath=Trayectoria

Modified: trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_fr.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_fr.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_fr.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 htmlManagerServlet.appsAvailable=Fonctionnant
 htmlManagerServlet.appsName=Nom d''affichage
 htmlManagerServlet.appsPath=Chemin

Modified: trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_ja.properties
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_ja.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/LocalStrings_ja.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 htmlManagerServlet.appsAvailable=\u5b9f\u884c\u4e2d
 htmlManagerServlet.appsName=\u8868\u793a\u540d
 htmlManagerServlet.appsPath=\u30d1\u30b9

Modified: trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/ManagerServlet.java
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/ManagerServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/WEB-INF/classes/org/apache/catalina/manager/ManagerServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -151,7 +151,7 @@
  *
  * @author Craig R. McClanahan
  * @author Remy Maucherat
- * @version $Revision: 466608 $ $Date: 2006-10-21 17:10:15 -0600 (Sat, 21 Oct 2006) $
+ * @version $Revision: 565467 $ $Date: 2007-08-13 12:25:14 -0600 (Mon, 13 Aug 2007) $
  */
 
 public class ManagerServlet
@@ -625,14 +625,12 @@
                 try {
                     // Upload WAR
                     uploadWar(request, localWar);
-                    // Copy WAR and XML to the host app base if needed
+                    // Copy WAR to the host app base if needed
                     if (tag != null) {
                         deployedPath = deployed;
                         File localWarCopy = new File(deployedPath, basename + ".war");
                         copy(localWar, localWarCopy);
-                        localWar = localWarCopy;
-                        copy(localWar, new File(getAppBase(), basename + ".war"));
-                    }
+                     }
                     // Perform new deployment
                     check(path);
                 } finally {
@@ -684,8 +682,6 @@
 
         // Find the local WAR file
         File localWar = new File(deployedPath, getDocBase(path) + ".war");
-        // Find the local context deployment file (if any)
-        File localXml = new File(configBase, getConfigFile(path) + ".xml");
 
         // Check if app already exists, or undeploy it if updating
         Context context = (Context) host.findChild(path);
@@ -799,6 +795,7 @@
                 addServiced(path);
                 try {
                     if (config != null) {
+                        configBase.mkdirs();
                         copy(new File(config), 
                                 new File(configBase, getConfigFile(path) + ".xml"));
                     }

Modified: trunk/tomcat5.5/container/webapps/manager/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="manager" default="build-main" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/webapps/manager/manager.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/manager.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/manager.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,8 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
+
     Context configuration file for the Tomcat Manager Web App
 
-    $Id: manager.xml 303123 2004-08-26 17:03:35Z remm $
+    $Id: manager.xml 565211 2007-08-13 00:09:38Z markt $
 
 -->
 

Modified: trunk/tomcat5.5/container/webapps/manager/status.xsd
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/status.xsd	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/status.xsd	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by peter lin (consultant) -->
 <!--W3C Schema generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)-->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

Modified: trunk/tomcat5.5/container/webapps/manager/xform.xsl
===================================================================
--- trunk/tomcat5.5/container/webapps/manager/xform.xsl	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/manager/xform.xsl	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">
 

Modified: trunk/tomcat5.5/container/webapps/webdav/build.xml
===================================================================
--- trunk/tomcat5.5/container/webapps/webdav/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/webdav/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="webdav" default="build-main" basedir=".">
 
 

Modified: trunk/tomcat5.5/container/webapps/webdav/index.html
===================================================================
--- trunk/tomcat5.5/container/webapps/webdav/index.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/container/webapps/webdav/index.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
 <html>
 <head>

Modified: trunk/tomcat5.5/debian/changelog
===================================================================
--- trunk/tomcat5.5/debian/changelog	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/debian/changelog	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,9 +1,11 @@
-tomcat5.5 (5.5.23-2) UNRELEASED; urgency=low
+tomcat5.5 (5.5.25-1) unstable; urgency=high
 
+  * New upstream release. Setting usrgency to high.
+    - Fixes XSS issues. CVE-2007-1355, CVS-2007-2449 and CVE-2007-2450.
   * debian/policy/04webapps.policy: fix permissions on
     org.apache.tomcat.util.digester package.
 
- -- Michael Koch <konqueror at gmx.de>  Tue, 18 Sep 2007 19:59:12 +0200
+ -- Michael Koch <konqueror at gmx.de>  Wed, 03 Oct 2007 20:04:18 +0200
 
 tomcat5.5 (5.5.23-1) unstable; urgency=low
 

Modified: trunk/tomcat5.5/debian/rules
===================================================================
--- trunk/tomcat5.5/debian/rules	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/debian/rules	2007-10-03 19:12:01 UTC (rev 4300)
@@ -38,6 +38,7 @@
 	dh_testdir
 	dh_testroot
 	rm -f build-stamp
+	rm -rf connectors/util/build connectors/jk/jkstatus/build
 	rm -rf build/{build,compat,deployer,dist,tmp,embed} LICENSE
 	rm -rf servletapi/{jsr152,jsr154}/{build,dist}
 	dh_clean

Modified: trunk/tomcat5.5/jasper/.classpath
===================================================================
--- trunk/tomcat5.5/jasper/.classpath	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/.classpath	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <classpath>
 	<classpathentry kind="src" path="src/share"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

Modified: trunk/tomcat5.5/jasper/.project
===================================================================
--- trunk/tomcat5.5/jasper/.project	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/.project	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
 	<name>jasper</name>
 	<comment></comment>

Modified: trunk/tomcat5.5/jasper/BUILDING.txt
===================================================================
--- trunk/tomcat5.5/jasper/BUILDING.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/BUILDING.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,22 @@
-$Id: BUILDING.txt 373928 2006-01-31 22:19:27Z markt $
+================================================================================
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+================================================================================
+
+$Id: BUILDING.txt 565193 2007-08-12 22:53:10Z markt $
+
          Building The Tomcat 4.0 Servlet/JSP Container With Jasper2
          ==========================================================
 

Modified: trunk/tomcat5.5/jasper/build.properties.sample
===================================================================
--- trunk/tomcat5.5/jasper/build.properties.sample	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/build.properties.sample	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,19 @@
 # -----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# -----------------------------------------------------------------------------
 # build.properties.sample
 #
 # This is an example "build.properties" file, used to customize building 
@@ -6,7 +21,7 @@
 # modules that Jasper2 depends on.  Copy this file to "build.properties"
 # in the top-level source directory, and customize it as needed.
 #
-# $Id: build.properties.sample 373928 2006-01-31 22:19:27Z markt $
+# $Id: build.properties.sample 565193 2007-08-12 22:53:10Z markt $
 # -----------------------------------------------------------------------------
 
 # ----- Pointer to Catalina -----

Modified: trunk/tomcat5.5/jasper/build.xml
===================================================================
--- trunk/tomcat5.5/jasper/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Jasper2" default="deploy" basedir=".">
 
 

Modified: trunk/tomcat5.5/jasper/doc/jspc.html
===================================================================
--- trunk/tomcat5.5/jasper/doc/jspc.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/doc/jspc.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <html>
 <head>
 <title>&lt;jspc&gt;</title>
@@ -4,7 +20,7 @@
 </head>
 <body>
 <H1> JspC -- A Command Line JSP Compilation Tool </H1>
-<H3>$Id: jspc.html 373928 2006-01-31 22:19:27Z markt $</H3>
+<H3>$Id: jspc.html 565193 2007-08-12 22:53:10Z markt $</H3>
 
 <H2>OVERVIEW </H2>
 

Modified: trunk/tomcat5.5/jasper/src/bin/jasper.bat
===================================================================
--- trunk/tomcat5.5/jasper/src/bin/jasper.bat	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/bin/jasper.bat	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 @echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem     http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+
+ at echo off
 if "%OS%" == "Windows_NT" setlocal
 rem ---------------------------------------------------------------------------
 rem Script for Jasper compiler
@@ -15,7 +31,7 @@
 rem   JAVA_OPTS     (Optional) Java runtime options used when the "start",
 rem                 "stop", or "run" command is executed.
 rem
-rem $Id: jasper.bat 305074 2002-08-04 18:21:08Z patrickl $
+rem $Id: jasper.bat 565193 2007-08-12 22:53:10Z markt $
 rem ---------------------------------------------------------------------------
 
 rem Guess JASPER_HOME if not defined

Modified: trunk/tomcat5.5/jasper/src/bin/jasper.sh
===================================================================
--- trunk/tomcat5.5/jasper/src/bin/jasper.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/bin/jasper.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 #!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # -----------------------------------------------------------------------------
 # Script for Jasper compiler
 #
@@ -14,7 +30,7 @@
 #   JAVA_OPTS     (Optional) Java runtime options used when the "start",
 #                 "stop", or "run" command is executed.
 #
-# $Id: jasper.sh 305839 2003-10-01 18:39:08Z kinman $
+# $Id: jasper.sh 565193 2007-08-12 22:53:10Z markt $
 # -----------------------------------------------------------------------------
 
 # OS specific support.  $var _must_ be set to either true or false.

Modified: trunk/tomcat5.5/jasper/src/bin/jasper.xml
===================================================================
--- trunk/tomcat5.5/jasper/src/bin/jasper.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/bin/jasper.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,22 @@
+<?xml version="1.0"?>
 <!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!--
+
   XML file for launching Jasper applications using the Launcher.
 
   To run any of the applications in the JDB debugger, execute the Launcher with

Modified: trunk/tomcat5.5/jasper/src/bin/jspc-using-launcher.bat
===================================================================
--- trunk/tomcat5.5/jasper/src/bin/jspc-using-launcher.bat	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/bin/jspc-using-launcher.bat	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 @echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem     http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+
+ at echo off
 if "%OS%" == "Windows_NT" setlocal
 
 rem ---------------------------------------------------------------------------

Modified: trunk/tomcat5.5/jasper/src/bin/jspc-using-launcher.sh
===================================================================
--- trunk/tomcat5.5/jasper/src/bin/jspc-using-launcher.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/bin/jspc-using-launcher.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,21 @@
 #!/bin/sh
 
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
 # -----------------------------------------------------------------------------
 #
 # Script for running JSPC compiler using the Launcher

Modified: trunk/tomcat5.5/jasper/src/bin/jspc.bat
===================================================================
--- trunk/tomcat5.5/jasper/src/bin/jspc.bat	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/bin/jspc.bat	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,9 +1,25 @@
 @echo off
+rem Licensed to the Apache Software Foundation (ASF) under one or more
+rem contributor license agreements.  See the NOTICE file distributed with
+rem this work for additional information regarding copyright ownership.
+rem The ASF licenses this file to You under the Apache License, Version 2.0
+rem (the "License"); you may not use this file except in compliance with
+rem the License.  You may obtain a copy of the License at
+rem
+rem     http://www.apache.org/licenses/LICENSE-2.0
+rem
+rem Unless required by applicable law or agreed to in writing, software
+rem distributed under the License is distributed on an "AS IS" BASIS,
+rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+rem See the License for the specific language governing permissions and
+rem limitations under the License.
+
+ at echo off
 if "%OS%" == "Windows_NT" setlocal
 rem ---------------------------------------------------------------------------
 rem Script to run the Jasper "offline JSP compiler"
 rem
-rem $Id: jspc.bat 305074 2002-08-04 18:21:08Z patrickl $
+rem $Id: jspc.bat 565193 2007-08-12 22:53:10Z markt $
 rem ---------------------------------------------------------------------------
 
 rem Guess JASPER_HOME if not defined

Modified: trunk/tomcat5.5/jasper/src/bin/jspc.sh
===================================================================
--- trunk/tomcat5.5/jasper/src/bin/jspc.sh	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/bin/jspc.sh	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,8 +1,24 @@
 #!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # -----------------------------------------------------------------------------
 # Script to run the Jasper "offline JSP compiler"
 #
-# $Id: jspc.sh 305555 2003-02-21 18:23:14Z kinman $
+# $Id: jspc.sh 565193 2007-08-12 22:53:10Z markt $
 # -----------------------------------------------------------------------------
 
 # resolve links - $0 may be a softlink

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/JspC.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/JspC.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/JspC.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -813,6 +813,11 @@
     public void generateWebMapping( String file, JspCompilationContext clctxt )
         throws IOException
     {
+        if (log.isDebugEnabled()) {
+            log.debug("Generating web mapping for file " + file
+                      + " using compilation context " + clctxt);
+        }
+
         String className = clctxt.getServletClassName();
         String packageName = clctxt.getServletPackageName();
 
@@ -948,6 +953,10 @@
     private void processFile(String file)
         throws JasperException
     {
+        if (log.isDebugEnabled()) {
+            log.debug("Processing file: " + file);
+        }
+
         ClassLoader originalClassLoader = null;
 
         try {
@@ -989,6 +998,10 @@
             // Otherwise only generate .java, if .jsp file is newer than
             // the .java file
             if( clc.isOutDated(compile) ) {
+                if (log.isDebugEnabled()) {
+                    log.debug(jspUri + " is out dated, compiling...");
+                }
+
                 clc.compile(compile, true);
             }
 
@@ -1014,7 +1027,7 @@
             if(getFailOnError()) {
                 throw je;
             } else {
-                log.error(je.getMessage());
+                log.error(je.getMessage(), je);;
             }
 
         } catch (Exception e) {

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/DefaultErrorHandler.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/DefaultErrorHandler.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/DefaultErrorHandler.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -69,6 +69,8 @@
         for (int i=0; i < details.length; i++) {
             buf.append("\n");
             if (details[i].getJspBeginLineNumber() >= 0) {
+                buf.append("JSP FileName:").append(details[i].getJspFileName()).append("\n");
+                buf.append("Java FileName:").append(details[i].getJavaFileName()).append("\n");
                 args = new Object[] {
                         new Integer(details[i].getJspBeginLineNumber()), 
                         details[i].getJspFileName() };
@@ -79,8 +81,19 @@
                 buf.append(details[i].getErrorMessage());
                 buf.append("\n"); 
                 buf.append(details[i].getJspExtract());
+            } else {
+                buf.append("JSP FileName:").append(details[i].getJspFileName()).append("\n");
+                buf.append("Java FileName:").append(details[i].getJavaFileName()).append("\n");
+                args = new Object[] {
+                        new Integer(details[i].getJavaLineNumber()) };
+                buf.append("\n\n");
+                buf.append(Localizer.getMessage("jsp.error.java.line.number",
+                        args));
+                buf.append("\n");
+                buf.append(details[i].getErrorMessage());
             }
         }
+        System.out.println("[COVALENT-DEBUG] JSP Compile Error: "+buf);
         buf.append("\n\nStacktrace:");
         throw new JasperException(Localizer.getMessage("jsp.error.unable.compile") + ": " + buf);
     }
@@ -93,7 +106,8 @@
      */
     public void javacError(String errorReport, Exception exception)
     throws JasperException {
-        
+        System.out.println("[COVALENT-DEBUG] JSP Compile Error: "+errorReport);
+        exception.printStackTrace();
         throw new JasperException(
                 Localizer.getMessage("jsp.error.unable.compile"), exception);
     }

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/ELFunctionMapper.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/ELFunctionMapper.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/ELFunctionMapper.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -23,7 +23,7 @@
 
 /**
  * This class generates functions mappers for the EL expressions in the page.
- * Instead of a global mapper, a mapper is used for ecah call to EL
+ * Instead of a global mapper, a mapper is used for each call to EL
  * evaluator, thus avoiding the prefix overlapping and redefinition
  * issues.
  *
@@ -31,8 +31,7 @@
  */
 
 public class ELFunctionMapper {
-    static private int currFunc = 0;
-    private ErrorDispatcher err;
+    private int currFunc = 0;
     StringBuffer ds;  // Contains codes to initialize the functions mappers.
     StringBuffer ss;  // Contains declarations of the functions mappers.
 
@@ -43,23 +42,21 @@
      * @param page The current compilation unit.
      */
     public static void map(Compiler compiler, Node.Nodes page) 
-		throws JasperException {
+                throws JasperException {
 
-	currFunc = 0;
-	ELFunctionMapper map = new ELFunctionMapper();
-	map.err = compiler.getErrorDispatcher();
-	map.ds = new StringBuffer();
-	map.ss = new StringBuffer();
+        ELFunctionMapper map = new ELFunctionMapper();
+        map.ds = new StringBuffer();
+        map.ss = new StringBuffer();
 
-	page.visit(map.new ELFunctionVisitor());
+        page.visit(map.new ELFunctionVisitor());
 
-	// Append the declarations to the root node
-	String ds = map.ds.toString();
-	if (ds.length() > 0) {
-	    Node root = page.getRoot();
-	    new Node.Declaration(map.ss.toString(), null, root);
-	    new Node.Declaration("static {\n" + ds + "}\n", null, root);
-	}
+        // Append the declarations to the root node
+        String ds = map.ds.toString();
+        if (ds.length() > 0) {
+            Node root = page.getRoot();
+            new Node.Declaration(map.ss.toString(), null, root);
+            new Node.Declaration("static {\n" + ds + "}\n", null, root);
+        }
     }
 
     /**
@@ -67,182 +64,182 @@
      * for functions, and if found functions mappers are created.
      */
     class ELFunctionVisitor extends Node.Visitor {
-	
-	/**
-	 * Use a global name map to facilitate reuse of function maps.
-	 * The key used is prefix:function:uri.
-	 */
-	private HashMap gMap = new HashMap();
+        
+        /**
+         * Use a global name map to facilitate reuse of function maps.
+         * The key used is prefix:function:uri.
+         */
+        private HashMap gMap = new HashMap();
 
-	public void visit(Node.ParamAction n) throws JasperException {
-	    doMap(n.getValue());
-	    visitBody(n);
-	}
+        public void visit(Node.ParamAction n) throws JasperException {
+            doMap(n.getValue());
+            visitBody(n);
+        }
 
-	public void visit(Node.IncludeAction n) throws JasperException {
-	    doMap(n.getPage());
-	    visitBody(n);
-	}
+        public void visit(Node.IncludeAction n) throws JasperException {
+            doMap(n.getPage());
+            visitBody(n);
+        }
 
-	public void visit(Node.ForwardAction n) throws JasperException {
-	    doMap(n.getPage());
-	    visitBody(n);
-	}
+        public void visit(Node.ForwardAction n) throws JasperException {
+            doMap(n.getPage());
+            visitBody(n);
+        }
 
         public void visit(Node.SetProperty n) throws JasperException {
-	    doMap(n.getValue());
-	    visitBody(n);
-	}
+            doMap(n.getValue());
+            visitBody(n);
+        }
 
         public void visit(Node.UseBean n) throws JasperException {
-	    doMap(n.getBeanName());
-	    visitBody(n);
-	}
+            doMap(n.getBeanName());
+            visitBody(n);
+        }
 
         public void visit(Node.PlugIn n) throws JasperException {
-	    doMap(n.getHeight());
-	    doMap(n.getWidth());
-	    visitBody(n);
-	}
+            doMap(n.getHeight());
+            doMap(n.getWidth());
+            visitBody(n);
+        }
 
         public void visit(Node.JspElement n) throws JasperException {
 
-	    Node.JspAttribute[] attrs = n.getJspAttributes();
-	    for (int i = 0; attrs != null && i < attrs.length; i++) {
-		doMap(attrs[i]);
-	    }
-	    doMap(n.getNameAttribute());
-	    visitBody(n);
-	}
+            Node.JspAttribute[] attrs = n.getJspAttributes();
+            for (int i = 0; attrs != null && i < attrs.length; i++) {
+                doMap(attrs[i]);
+            }
+            doMap(n.getNameAttribute());
+            visitBody(n);
+        }
 
         public void visit(Node.UninterpretedTag n) throws JasperException {
 
-	    Node.JspAttribute[] attrs = n.getJspAttributes();
-	    for (int i = 0; attrs != null && i < attrs.length; i++) {
-		doMap(attrs[i]);
-	    }
-	    visitBody(n);
-	}
+            Node.JspAttribute[] attrs = n.getJspAttributes();
+            for (int i = 0; attrs != null && i < attrs.length; i++) {
+                doMap(attrs[i]);
+            }
+            visitBody(n);
+        }
 
         public void visit(Node.CustomTag n) throws JasperException {
-	    Node.JspAttribute[] attrs = n.getJspAttributes();
-	    for (int i = 0; attrs != null && i < attrs.length; i++) {
-		doMap(attrs[i]);
-	    }
-	    visitBody(n);
-	}
+            Node.JspAttribute[] attrs = n.getJspAttributes();
+            for (int i = 0; attrs != null && i < attrs.length; i++) {
+                doMap(attrs[i]);
+            }
+            visitBody(n);
+        }
 
         public void visit(Node.ELExpression n) throws JasperException {
-	    doMap(n.getEL());
-	}
+            doMap(n.getEL());
+        }
 
-	private void doMap(Node.JspAttribute attr) 
-		throws JasperException {
-	    if (attr != null) {
-		doMap(attr.getEL());
-	    }
-	}
+        private void doMap(Node.JspAttribute attr) 
+                throws JasperException {
+            if (attr != null) {
+                doMap(attr.getEL());
+            }
+        }
 
         /**
          * Creates function mappers, if needed, from ELNodes
          */
-	private void doMap(ELNode.Nodes el) 
-		throws JasperException {
+        private void doMap(ELNode.Nodes el) 
+                throws JasperException {
 
             // Only care about functions in ELNode's
-	    class Fvisitor extends ELNode.Visitor {
-		ArrayList funcs = new ArrayList();
-		HashMap keyMap = new HashMap();
-		public void visit(ELNode.Function n) throws JasperException {
-		    String key = n.getPrefix() + ":" + n.getName();
-		    if (! keyMap.containsKey(key)) {
-			keyMap.put(key,"");
-			funcs.add(n);
-		    }
-		}
-	    }
+            class Fvisitor extends ELNode.Visitor {
+                ArrayList funcs = new ArrayList();
+                HashMap keyMap = new HashMap();
+                public void visit(ELNode.Function n) throws JasperException {
+                    String key = n.getPrefix() + ":" + n.getName();
+                    if (! keyMap.containsKey(key)) {
+                        keyMap.put(key,"");
+                        funcs.add(n);
+                    }
+                }
+            }
 
-	    if (el == null) {
-		return;
-	    }
+            if (el == null) {
+                return;
+            }
 
-	    // First locate all unique functions in this EL
-	    Fvisitor fv = new Fvisitor();
-	    el.visit(fv);
-	    ArrayList functions = fv.funcs;
+            // First locate all unique functions in this EL
+            Fvisitor fv = new Fvisitor();
+            el.visit(fv);
+            ArrayList functions = fv.funcs;
 
-	    if (functions.size() == 0) {
-		return;
-	    }
+            if (functions.size() == 0) {
+                return;
+            }
 
-	    // Reuse a previous map if possible
-	    String decName = matchMap(functions);
-	    if (decName != null) {
-		el.setMapName(decName);
-		return;
-	    }
-	
-	    // Generate declaration for the map statically
-	    decName = getMapName();
-	    ss.append("static private org.apache.jasper.runtime.ProtectedFunctionMapper " + decName + ";\n");
+            // Reuse a previous map if possible
+            String decName = matchMap(functions);
+            if (decName != null) {
+                el.setMapName(decName);
+                return;
+            }
+        
+            // Generate declaration for the map statically
+            decName = getMapName();
+            ss.append("static private org.apache.jasper.runtime.ProtectedFunctionMapper " + decName + ";\n");
 
-	    ds.append("  " + decName + "= ");
-	    ds.append("org.apache.jasper.runtime.ProtectedFunctionMapper");
+            ds.append("  " + decName + "= ");
+            ds.append("org.apache.jasper.runtime.ProtectedFunctionMapper");
 
-	    // Special case if there is only one function in the map
-	    String funcMethod = null;
-	    if (functions.size() == 1) {
-		funcMethod = ".getMapForFunction";
-	    } else {
-		ds.append(".getInstance();\n");
-		funcMethod = "  " + decName + ".mapFunction";
-	    }
+            // Special case if there is only one function in the map
+            String funcMethod = null;
+            if (functions.size() == 1) {
+                funcMethod = ".getMapForFunction";
+            } else {
+                ds.append(".getInstance();\n");
+                funcMethod = "  " + decName + ".mapFunction";
+            }
 
             // Setup arguments for either getMapForFunction or mapFunction
-	    for (int i = 0; i < functions.size(); i++) {
-		ELNode.Function f = (ELNode.Function)functions.get(i);
-		FunctionInfo funcInfo = f.getFunctionInfo();
-		String key = f.getPrefix()+ ":" + f.getName();
-		ds.append(funcMethod + "(\"" + key + "\", " +
-			funcInfo.getFunctionClass() + ".class, " +
-			'\"' + f.getMethodName() + "\", " +
-			"new Class[] {");
-		String params[] = f.getParameters();
-		for (int k = 0; k < params.length; k++) {
-		    if (k != 0) {
-			ds.append(", ");
-		    }
-		    int iArray = params[k].indexOf('[');
-		    if (iArray < 0) {
-			ds.append(params[k] + ".class");
-		    }
-		    else {
-			String baseType = params[k].substring(0, iArray);
-			ds.append("java.lang.reflect.Array.newInstance(");
-			ds.append(baseType);
-			ds.append(".class,");
+            for (int i = 0; i < functions.size(); i++) {
+                ELNode.Function f = (ELNode.Function)functions.get(i);
+                FunctionInfo funcInfo = f.getFunctionInfo();
+                String key = f.getPrefix()+ ":" + f.getName();
+                ds.append(funcMethod + "(\"" + key + "\", " +
+                        funcInfo.getFunctionClass() + ".class, " +
+                        '\"' + f.getMethodName() + "\", " +
+                        "new Class[] {");
+                String params[] = f.getParameters();
+                for (int k = 0; k < params.length; k++) {
+                    if (k != 0) {
+                        ds.append(", ");
+                    }
+                    int iArray = params[k].indexOf('[');
+                    if (iArray < 0) {
+                        ds.append(params[k] + ".class");
+                    }
+                    else {
+                        String baseType = params[k].substring(0, iArray);
+                        ds.append("java.lang.reflect.Array.newInstance(");
+                        ds.append(baseType);
+                        ds.append(".class,");
 
-			// Count the number of array dimension
-			int aCount = 0;
-			for (int jj = iArray; jj < params[k].length(); jj++ ) {
-			    if (params[k].charAt(jj) == '[') {
-				aCount++;
-			    }
-			}
-			if (aCount == 1) {
-			    ds.append("0).getClass()");
-			} else {
-			    ds.append("new int[" + aCount + "]).getClass()");
-			}
-		    }
-		}
-		ds.append("});\n");
-		// Put the current name in the global function map
-		gMap.put(f.getPrefix() + ':' + f.getName() + ':' + f.getUri(),
-			 decName);
-	    }
-	    el.setMapName(decName);
-	}
+                        // Count the number of array dimension
+                        int aCount = 0;
+                        for (int jj = iArray; jj < params[k].length(); jj++ ) {
+                            if (params[k].charAt(jj) == '[') {
+                                aCount++;
+                            }
+                        }
+                        if (aCount == 1) {
+                            ds.append("0).getClass()");
+                        } else {
+                            ds.append("new int[" + aCount + "]).getClass()");
+                        }
+                    }
+                }
+                ds.append("});\n");
+                // Put the current name in the global function map
+                gMap.put(f.getPrefix() + ':' + f.getName() + ':' + f.getUri(),
+                         decName);
+            }
+            el.setMapName(decName);
+        }
 
         /**
          * Find the name of the function mapper for an EL.  Reuse a
@@ -252,32 +249,32 @@
          * @return A previous generated function mapper name that can be used
          *         by this EL; null if none found.
          */
-	private String matchMap(ArrayList functions) {
+        private String matchMap(ArrayList functions) {
 
-	    String mapName = null;
-	    for (int i = 0; i < functions.size(); i++) {
-		ELNode.Function f = (ELNode.Function)functions.get(i);
-		String temName = (String) gMap.get(f.getPrefix() + ':' +
-					f.getName() + ':' + f.getUri());
-		if (temName == null) {
-		    return null;
-		}
-		if (mapName == null) {
-		    mapName = temName;
-		} else if (!temName.equals(mapName)) {
-		    // If not all in the previous match, then no match.
-		    return null;
-		}
-	    }
-	    return mapName;
-	}
+            String mapName = null;
+            for (int i = 0; i < functions.size(); i++) {
+                ELNode.Function f = (ELNode.Function)functions.get(i);
+                String temName = (String) gMap.get(f.getPrefix() + ':' +
+                                        f.getName() + ':' + f.getUri());
+                if (temName == null) {
+                    return null;
+                }
+                if (mapName == null) {
+                    mapName = temName;
+                } else if (!temName.equals(mapName)) {
+                    // If not all in the previous match, then no match.
+                    return null;
+                }
+            }
+            return mapName;
+        }
 
         /*
          * @return An unique name for a function mapper.
          */
-	private String getMapName() {
-	    return "_jspx_fnmap_" + currFunc++;
-	}
+        private String getMapName() {
+            return "_jspx_fnmap_" + currFunc++;
+        }
     }
 }
 

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/JavacErrorDetail.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/JavacErrorDetail.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/JavacErrorDetail.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -93,13 +93,15 @@
         this.jspBeginLineNum = jspBeginLineNum;
         
         if (jspBeginLineNum > 0 && ctxt != null) {
+            InputStream is = null;
+            FileInputStream fis = null;
             try {
                 // Read both files in, so we can inspect them
-                String[] jspLines = readFile
-                    (ctxt.getResourceAsStream(jspFileName));
+                is = ctxt.getResourceAsStream(jspFileName);
+                String[] jspLines = readFile(is);
     
-                String[] javaLines = readFile
-                    (new FileInputStream(ctxt.getServletJavaFileName()));
+                fis = new FileInputStream(ctxt.getServletJavaFileName());
+                String[] javaLines = readFile(fis);
     
                 // If the line contains the opening of a multi-line scriptlet
                 // block, then the JSP line number we got back is probably
@@ -133,6 +135,21 @@
     
             } catch (IOException ioe) {
                 // Can't read files - ignore
+            } finally {
+                if (is != null) {
+                    try {
+                        is.close();
+                    } catch (IOException ioe) {
+                        // Ignore
+                    }
+                }
+                if (fis != null) {
+                    try {
+                        fis.close();
+                    } catch (IOException ioe) {
+                        // Ignore
+                    }
+                }
             }
         }
 

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/JspConfig.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/JspConfig.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/JspConfig.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -49,13 +49,13 @@
     private ServletContext ctxt;
     private boolean initialized = false;
 
-    private String defaultIsXml = null;		// unspecified
-    private String defaultIsELIgnored = null;	// unspecified
+    private String defaultIsXml = null;                // unspecified
+    private String defaultIsELIgnored = null;        // unspecified
     private String defaultIsScriptingInvalid = "false";
     private JspProperty defaultJspProperty;
 
     public JspConfig(ServletContext ctxt) {
-	this.ctxt = ctxt;
+        this.ctxt = ctxt;
     }
 
     private void processWebDotXml(ServletContext ctxt) throws JasperException {
@@ -65,26 +65,26 @@
         try {
             URL uri = ctxt.getResource(WEB_XML);
             if (uri == null) {
-	        // no web.xml
+                // no web.xml
                 return;
-	    }
+            }
 
             is = uri.openStream();
             InputSource ip = new InputSource(is);
             ip.setSystemId(uri.toExternalForm()); 
 
             ParserUtils pu = new ParserUtils();
-	    TreeNode webApp = pu.parseXMLDocument(WEB_XML, ip);
+            TreeNode webApp = pu.parseXMLDocument(WEB_XML, ip);
 
-	    if (webApp == null
+            if (webApp == null
                     || !"2.4".equals(webApp.findAttribute("version"))) {
-	        defaultIsELIgnored = "true";
-	        return;
-	    }
-	    TreeNode jspConfig = webApp.findChild("jsp-config");
-	    if (jspConfig == null) {
-	        return;
-	    }
+                defaultIsELIgnored = "true";
+                return;
+            }
+            TreeNode jspConfig = webApp.findChild("jsp-config");
+            if (jspConfig == null) {
+                return;
+            }
 
             jspProperties = new Vector();
             Iterator jspPropertyList = jspConfig.findChildren("jsp-property-group");
@@ -161,7 +161,7 @@
                         if ((path == null && (extension == null || isStar))
                                 || (path != null && !isStar)) {
                             if (log.isWarnEnabled()) {
-			        log.warn(Localizer.getMessage(
+                                log.warn(Localizer.getMessage(
                                     "jsp.warning.bad.urlpattern.propertygroup",
                                     urlPattern));
                             }
@@ -194,14 +194,14 @@
 
     private void init() throws JasperException {
 
-	if (!initialized) {
-	    processWebDotXml(ctxt);
-	    defaultJspProperty = new JspProperty(defaultIsXml,
-						 defaultIsELIgnored,
-						 defaultIsScriptingInvalid,
-						 null, null, null);
-	    initialized = true;
-	}
+        if (!initialized) {
+            processWebDotXml(ctxt);
+            defaultJspProperty = new JspProperty(defaultIsXml,
+                                                 defaultIsELIgnored,
+                                                 defaultIsScriptingInvalid,
+                                                 null, null, null);
+            initialized = true;
+        }
     }
 
     /**
@@ -247,38 +247,38 @@
      */
     public JspProperty findJspProperty(String uri) throws JasperException {
 
-	init();
+        init();
 
-	// JSP Configuration settings do not apply to tag files	    
-	if (jspProperties == null || uri.endsWith(".tag")
-	        || uri.endsWith(".tagx")) {
-	    return defaultJspProperty;
-	}
+        // JSP Configuration settings do not apply to tag files            
+        if (jspProperties == null || uri.endsWith(".tag")
+                || uri.endsWith(".tagx")) {
+            return defaultJspProperty;
+        }
 
-	String uriPath = null;
-	int index = uri.lastIndexOf('/');
-	if (index >=0 ) {
-	    uriPath = uri.substring(0, index+1);
-	}
-	String uriExtension = null;
-	index = uri.lastIndexOf('.');
-	if (index >=0) {
-	    uriExtension = uri.substring(index+1);
-	}
+        String uriPath = null;
+        int index = uri.lastIndexOf('/');
+        if (index >=0 ) {
+            uriPath = uri.substring(0, index+1);
+        }
+        String uriExtension = null;
+        index = uri.lastIndexOf('.');
+        if (index >=0) {
+            uriExtension = uri.substring(index+1);
+        }
 
-	Vector includePreludes = new Vector();
-	Vector includeCodas = new Vector();
+        Vector includePreludes = new Vector();
+        Vector includeCodas = new Vector();
 
-	JspPropertyGroup isXmlMatch = null;
-	JspPropertyGroup elIgnoredMatch = null;
-	JspPropertyGroup scriptingInvalidMatch = null;
-	JspPropertyGroup pageEncodingMatch = null;
+        JspPropertyGroup isXmlMatch = null;
+        JspPropertyGroup elIgnoredMatch = null;
+        JspPropertyGroup scriptingInvalidMatch = null;
+        JspPropertyGroup pageEncodingMatch = null;
 
-	Iterator iter = jspProperties.iterator();
-	while (iter.hasNext()) {
+        Iterator iter = jspProperties.iterator();
+        while (iter.hasNext()) {
 
-	    JspPropertyGroup jpg = (JspPropertyGroup) iter.next();
-	    JspProperty jp = jpg.getJspProperty();
+            JspPropertyGroup jpg = (JspPropertyGroup) iter.next();
+            JspProperty jp = jpg.getJspProperty();
 
              // (arrays will be the same length)
              String extension = jpg.getExtension();
@@ -327,30 +327,30 @@
              if (jp.getPageEncoding() != null) {
                  pageEncodingMatch = selectProperty(pageEncodingMatch, jpg);
              }
-	}
+        }
 
 
-	String isXml = defaultIsXml;
-	String isELIgnored = defaultIsELIgnored;
-	String isScriptingInvalid = defaultIsScriptingInvalid;
-	String pageEncoding = null;
+        String isXml = defaultIsXml;
+        String isELIgnored = defaultIsELIgnored;
+        String isScriptingInvalid = defaultIsScriptingInvalid;
+        String pageEncoding = null;
 
-	if (isXmlMatch != null) {
-	    isXml = isXmlMatch.getJspProperty().isXml();
-	}
-	if (elIgnoredMatch != null) {
-	    isELIgnored = elIgnoredMatch.getJspProperty().isELIgnored();
-	}
-	if (scriptingInvalidMatch != null) {
-	    isScriptingInvalid =
-		scriptingInvalidMatch.getJspProperty().isScriptingInvalid();
-	}
-	if (pageEncodingMatch != null) {
-	    pageEncoding = pageEncodingMatch.getJspProperty().getPageEncoding();
-	}
+        if (isXmlMatch != null) {
+            isXml = isXmlMatch.getJspProperty().isXml();
+        }
+        if (elIgnoredMatch != null) {
+            isELIgnored = elIgnoredMatch.getJspProperty().isELIgnored();
+        }
+        if (scriptingInvalidMatch != null) {
+            isScriptingInvalid =
+                scriptingInvalidMatch.getJspProperty().isScriptingInvalid();
+        }
+        if (pageEncodingMatch != null) {
+            pageEncoding = pageEncodingMatch.getJspProperty().getPageEncoding();
+        }
 
-	return new JspProperty(isXml, isELIgnored, isScriptingInvalid,
-			       pageEncoding, includePreludes, includeCodas);
+        return new JspProperty(isXml, isELIgnored, isScriptingInvalid,
+                               pageEncoding, includePreludes, includeCodas);
     }
 
     /**
@@ -379,7 +379,6 @@
         while (iter.hasNext()) {
 
             JspPropertyGroup jpg = (JspPropertyGroup) iter.next();
-            JspProperty jp = jpg.getJspProperty();
 
             String extension = jpg.getExtension();
             String path = jpg.getPath();
@@ -401,73 +400,73 @@
     }
 
     static class JspPropertyGroup {
-	private String path;
-	private String extension;
-	private JspProperty jspProperty;
+        private String path;
+        private String extension;
+        private JspProperty jspProperty;
 
-	JspPropertyGroup(String path, String extension,
-			 JspProperty jspProperty) {
-	    this.path = path;
-	    this.extension = extension;
-	    this.jspProperty = jspProperty;
-	}
+        JspPropertyGroup(String path, String extension,
+                         JspProperty jspProperty) {
+            this.path = path;
+            this.extension = extension;
+            this.jspProperty = jspProperty;
+        }
 
-	public String getPath() {
-	    return path;
-	}
+        public String getPath() {
+            return path;
+        }
 
-	public String getExtension() {
-	    return extension;
-	}
+        public String getExtension() {
+            return extension;
+        }
 
-	public JspProperty getJspProperty() {
-	    return jspProperty;
-	}
+        public JspProperty getJspProperty() {
+            return jspProperty;
+        }
     }
 
     static public class JspProperty {
 
-	private String isXml;
-	private String elIgnored;
-	private String scriptingInvalid;
-	private String pageEncoding;
-	private Vector includePrelude;
-	private Vector includeCoda;
+        private String isXml;
+        private String elIgnored;
+        private String scriptingInvalid;
+        private String pageEncoding;
+        private Vector includePrelude;
+        private Vector includeCoda;
 
-	public JspProperty(String isXml, String elIgnored,
-		    String scriptingInvalid, String pageEncoding,
-		    Vector includePrelude, Vector includeCoda) {
+        public JspProperty(String isXml, String elIgnored,
+                    String scriptingInvalid, String pageEncoding,
+                    Vector includePrelude, Vector includeCoda) {
 
-	    this.isXml = isXml;
-	    this.elIgnored = elIgnored;
-	    this.scriptingInvalid = scriptingInvalid;
-	    this.pageEncoding = pageEncoding;
-	    this.includePrelude = includePrelude;
-	    this.includeCoda = includeCoda;
-	}
+            this.isXml = isXml;
+            this.elIgnored = elIgnored;
+            this.scriptingInvalid = scriptingInvalid;
+            this.pageEncoding = pageEncoding;
+            this.includePrelude = includePrelude;
+            this.includeCoda = includeCoda;
+        }
 
-	public String isXml() {
-	    return isXml;
-	}
+        public String isXml() {
+            return isXml;
+        }
 
-	public String isELIgnored() {
-	    return elIgnored;
-	}
+        public String isELIgnored() {
+            return elIgnored;
+        }
 
-	public String isScriptingInvalid() {
-	    return scriptingInvalid;
-	}
+        public String isScriptingInvalid() {
+            return scriptingInvalid;
+        }
 
-	public String getPageEncoding() {
-	    return pageEncoding;
-	}
+        public String getPageEncoding() {
+            return pageEncoding;
+        }
 
-	public Vector getIncludePrelude() {
-	    return includePrelude;
-	}
+        public Vector getIncludePrelude() {
+            return includePrelude;
+        }
 
-	public Vector getIncludeCoda() {
-	    return includeCoda;
-	}
+        public Vector getIncludeCoda() {
+            return includeCoda;
+        }
     }
 }

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/Node.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/Node.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/Node.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -87,7 +87,7 @@
      * Zero-arg Constructor.
      */
     public Node() {
-	this.isDummy = true;
+        this.isDummy = true;
     }
 
     /**
@@ -97,9 +97,9 @@
      * @param parent The enclosing node
      */
     public Node(Mark start, Node parent) {
-	this.startMark = start;
-	this.isDummy = (start == null);
-	addToParent(parent);
+        this.startMark = start;
+        this.isDummy = (start == null);
+        addToParent(parent);
     }
 
     /**
@@ -111,11 +111,11 @@
      * @param parent The enclosing node
      */
     public Node(String qName, String localName, Mark start, Node parent) {
-	this.qName = qName;
-	this.localName = localName;
-	this.startMark = start;
-	this.isDummy = (start == null);
-	addToParent(parent);
+        this.qName = qName;
+        this.localName = localName;
+        this.startMark = start;
+        this.isDummy = (start == null);
+        addToParent(parent);
     }
 
     /**
@@ -128,13 +128,13 @@
      * @param parent The enclosing node
      */
     public Node(String qName, String localName, Attributes attrs, Mark start,
-		Node parent) {
-	this.qName = qName;
-	this.localName = localName;
-	this.attrs = attrs;
-	this.startMark = start;
-	this.isDummy = (start == null);
-	addToParent(parent);
+                Node parent) {
+        this.qName = qName;
+        this.localName = localName;
+        this.attrs = attrs;
+        this.startMark = start;
+        this.isDummy = (start == null);
+        addToParent(parent);
     }
 
     /**
@@ -152,16 +152,16 @@
      * @param parent The enclosing node
      */
     public Node(String qName, String localName, Attributes attrs,
-		Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
-		Mark start, Node parent) {
-	this.qName = qName;
-	this.localName = localName;
-	this.attrs = attrs;
-	this.nonTaglibXmlnsAttrs = nonTaglibXmlnsAttrs;
-	this.taglibAttrs = taglibAttrs;
-	this.startMark = start;
-	this.isDummy = (start == null);
-	addToParent(parent);
+                Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
+                Mark start, Node parent) {
+        this.qName = qName;
+        this.localName = localName;
+        this.attrs = attrs;
+        this.nonTaglibXmlnsAttrs = nonTaglibXmlnsAttrs;
+        this.taglibAttrs = taglibAttrs;
+        this.startMark = start;
+        this.isDummy = (start == null);
+        addToParent(parent);
     }
 
     /*
@@ -174,21 +174,21 @@
      * @param parent The enclosing node
      */
     public Node(String qName, String localName, String text, Mark start,
-		Node parent) {
-	this.qName = qName;
-	this.localName = localName;
-	this.text = text;
-	this.startMark = start;
-	this.isDummy = (start == null);
-	addToParent(parent);
+                Node parent) {
+        this.qName = qName;
+        this.localName = localName;
+        this.text = text;
+        this.startMark = start;
+        this.isDummy = (start == null);
+        addToParent(parent);
     }
 
     public String getQName() {
-	return this.qName;
+        return this.qName;
     }
 
     public String getLocalName() {
-	return this.localName;
+        return this.localName;
     }
 
     /*
@@ -201,7 +201,7 @@
      * those attributes whose name does not start with xmlns.
      */
     public Attributes getAttributes() {
-	return this.attrs;
+        return this.attrs;
     }
 
     /*
@@ -209,7 +209,7 @@
      * (only meaningful for Nodes parsed from XML syntax)
      */
     public Attributes getTaglibAttributes() {
-	return this.taglibAttrs;
+        return this.taglibAttrs;
     }
 
     /*
@@ -217,15 +217,15 @@
      * (only meaningful for Nodes parsed from XML syntax)
      */
     public Attributes getNonTaglibXmlnsAttributes() {
-	return this.nonTaglibXmlnsAttrs;
+        return this.nonTaglibXmlnsAttrs;
     }
 
     public void setAttributes(Attributes attrs) {
-	this.attrs = attrs;
+        this.attrs = attrs;
     }
 
     public String getAttributeValue(String name) {
-	return (attrs == null) ? null : attrs.getValue(name);
+        return (attrs == null) ? null : attrs.getValue(name);
     }
 
     /**
@@ -234,17 +234,17 @@
      */
     public String getTextAttribute(String name) {
 
-	String attr = getAttributeValue(name);
-	if (attr != null) {
-	    return attr;
-	}
+        String attr = getAttributeValue(name);
+        if (attr != null) {
+            return attr;
+        }
 
-	NamedAttribute namedAttribute = getNamedAttributeNode(name);
-	if (namedAttribute == null) {
-	    return null;
-	}
+        NamedAttribute namedAttribute = getNamedAttributeNode(name);
+        if (namedAttribute == null) {
+            return null;
+        }
 
-	return namedAttribute.getText();
+        return namedAttribute.getText();
     }
 
     /**
@@ -263,15 +263,15 @@
         int numChildNodes = nodes.size();
         for( int i = 0; i < numChildNodes; i++ ) {
             NamedAttribute na = (NamedAttribute)nodes.getNode( i );
-	    boolean found = false;
-	    int index = name.indexOf(':');
-	    if (index != -1) {
-		// qualified name
-		found = na.getName().equals(name);
-	    } else {
-		found = na.getLocalName().equals(name);
-	    }
-	    if (found) {
+            boolean found = false;
+            int index = name.indexOf(':');
+            if (index != -1) {
+                // qualified name
+                found = na.getName().equals(name);
+            } else {
+                found = na.getLocalName().equals(name);
+            }
+            if (found) {
                 result = na;
                 break;
             }
@@ -289,9 +289,9 @@
      */
     public Node.Nodes getNamedAttributeNodes() {
 
-	if (namedAttributeNodes != null) {
-	    return namedAttributeNodes;
-	}
+        if (namedAttributeNodes != null) {
+            return namedAttributeNodes;
+        }
 
         Node.Nodes result = new Node.Nodes();
         
@@ -312,56 +312,56 @@
             }
         }
 
-	namedAttributeNodes = result;
+        namedAttributeNodes = result;
         return result;
     }
     
     public Nodes getBody() {
-	return body;
+        return body;
     }
 
     public void setBody(Nodes body) {
-	this.body = body;
+        this.body = body;
     }
 
     public String getText() {
-	return text;
+        return text;
     }
 
     public Mark getStart() {
-	return startMark;
+        return startMark;
     }
 
     public Node getParent() {
-	return parent;
+        return parent;
     }
 
     public int getBeginJavaLine() {
-	return beginJavaLine;
+        return beginJavaLine;
     }
 
     public void setBeginJavaLine(int begin) {
-	beginJavaLine = begin;
+        beginJavaLine = begin;
     }
 
     public int getEndJavaLine() {
-	return endJavaLine;
+        return endJavaLine;
     }
 
     public void setEndJavaLine(int end) {
-	endJavaLine = end;
+        endJavaLine = end;
     }
 
     public boolean isDummy() {
-	return isDummy;
+        return isDummy;
     }
 
     public Node.Root getRoot() {
-	Node n = this;
-	while (!(n instanceof Node.Root)) {
-	    n = n.getParent();
-	}
-	return (Node.Root) n;
+        Node n = this;
+        while (!(n instanceof Node.Root)) {
+            n = n.getParent();
+        }
+        return (Node.Root) n;
     }
 
     public String getInnerClassName() {
@@ -387,15 +387,15 @@
      * Adds this Node to the body of the given parent.
      */
     private void addToParent(Node parent) {
-	if (parent != null) {
-	    this.parent = parent;
-	    Nodes parentBody = parent.getBody();
-	    if (parentBody == null) {
-		parentBody = new Nodes();
-		parent.setBody(parentBody);
-	    }
-	    parentBody.add(this);
-	}
+        if (parent != null) {
+            this.parent = parent;
+            Nodes parentBody = parent.getBody();
+            if (parentBody == null) {
+                parentBody = new Nodes();
+                parent.setBody(parentBody);
+            }
+            parentBody.add(this);
+        }
     }
 
 
@@ -408,106 +408,106 @@
      */
     public static class Root extends Node {
 
-	private Root parentRoot;
-	private boolean isXmlSyntax;
+        private Root parentRoot;
+        private boolean isXmlSyntax;
 
-	// Source encoding of the page containing this Root
-	private String pageEnc;
-	
-	// Page encoding specified in JSP config element
-	private String jspConfigPageEnc;
+        // Source encoding of the page containing this Root
+        private String pageEnc;
+        
+        // Page encoding specified in JSP config element
+        private String jspConfigPageEnc;
 
-	/*
-	 * Flag indicating if the default page encoding is being used (only
-	 * applicable with standard syntax).
-	 *
-	 * True if the page does not provide a page directive with a
-	 * 'contentType' attribute (or the 'contentType' attribute doesn't
-	 * have a CHARSET value), the page does not provide a page directive
-	 * with a 'pageEncoding' attribute, and there is no JSP configuration
-	 * element page-encoding whose URL pattern matches the page.
-	 */
-	private boolean isDefaultPageEncoding;
+        /*
+         * Flag indicating if the default page encoding is being used (only
+         * applicable with standard syntax).
+         *
+         * True if the page does not provide a page directive with a
+         * 'contentType' attribute (or the 'contentType' attribute doesn't
+         * have a CHARSET value), the page does not provide a page directive
+         * with a 'pageEncoding' attribute, and there is no JSP configuration
+         * element page-encoding whose URL pattern matches the page.
+         */
+        private boolean isDefaultPageEncoding;
 
-	/*
-	 * Indicates whether an encoding has been explicitly specified in the
-	 * page's XML prolog (only used for pages in XML syntax).
-	 * This information is used to decide whether a translation error must
-	 * be reported for encoding conflicts.
-	 */
-	private boolean isEncodingSpecifiedInProlog;
+        /*
+         * Indicates whether an encoding has been explicitly specified in the
+         * page's XML prolog (only used for pages in XML syntax).
+         * This information is used to decide whether a translation error must
+         * be reported for encoding conflicts.
+         */
+        private boolean isEncodingSpecifiedInProlog;
 
-	/*
-	 * Constructor.
-	 */
-	Root(Mark start, Node parent, boolean isXmlSyntax) {
-	    super(start, parent);
-	    this.isXmlSyntax = isXmlSyntax;
-	    this.qName = JSP_ROOT_ACTION;
-	    this.localName = ROOT_ACTION;
+        /*
+         * Constructor.
+         */
+        Root(Mark start, Node parent, boolean isXmlSyntax) {
+            super(start, parent);
+            this.isXmlSyntax = isXmlSyntax;
+            this.qName = JSP_ROOT_ACTION;
+            this.localName = ROOT_ACTION;
 
-	    // Figure out and set the parent root
-	    Node r = parent;
-	    while ((r != null) && !(r instanceof Node.Root))
-		r = r.getParent();
-	    parentRoot = (Node.Root) r;
-	}
+            // Figure out and set the parent root
+            Node r = parent;
+            while ((r != null) && !(r instanceof Node.Root))
+                r = r.getParent();
+            parentRoot = (Node.Root) r;
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public boolean isXmlSyntax() {
-	    return isXmlSyntax;
-	}
+        public boolean isXmlSyntax() {
+            return isXmlSyntax;
+        }
 
-	/*
-	 * Sets the encoding specified in the JSP config element whose URL
-	 * pattern matches the page containing this Root.
-	 */
-	public void setJspConfigPageEncoding(String enc) {
-	    jspConfigPageEnc = enc;
-	}
+        /*
+         * Sets the encoding specified in the JSP config element whose URL
+         * pattern matches the page containing this Root.
+         */
+        public void setJspConfigPageEncoding(String enc) {
+            jspConfigPageEnc = enc;
+        }
 
-	/*
-	 * Gets the encoding specified in the JSP config element whose URL
-	 * pattern matches the page containing this Root.
-	 */
-	public String getJspConfigPageEncoding() {
-	    return jspConfigPageEnc;
-	}
+        /*
+         * Gets the encoding specified in the JSP config element whose URL
+         * pattern matches the page containing this Root.
+         */
+        public String getJspConfigPageEncoding() {
+            return jspConfigPageEnc;
+        }
 
-	public void setPageEncoding(String enc) {
-	    pageEnc = enc;
-	}
+        public void setPageEncoding(String enc) {
+            pageEnc = enc;
+        }
 
-	public String getPageEncoding() {
-	    return pageEnc;
-	}
+        public String getPageEncoding() {
+            return pageEnc;
+        }
 
-	public void setIsDefaultPageEncoding(boolean isDefault) {
-	    isDefaultPageEncoding = isDefault;
-	}
+        public void setIsDefaultPageEncoding(boolean isDefault) {
+            isDefaultPageEncoding = isDefault;
+        }
 
-	public boolean isDefaultPageEncoding() {
-	    return isDefaultPageEncoding;
-	}
-	
-	public void setIsEncodingSpecifiedInProlog(boolean isSpecified) {
-	    isEncodingSpecifiedInProlog = isSpecified;
-	}
+        public boolean isDefaultPageEncoding() {
+            return isDefaultPageEncoding;
+        }
+        
+        public void setIsEncodingSpecifiedInProlog(boolean isSpecified) {
+            isEncodingSpecifiedInProlog = isSpecified;
+        }
 
-	public boolean isEncodingSpecifiedInProlog() {
-	    return isEncodingSpecifiedInProlog;
-	}
+        public boolean isEncodingSpecifiedInProlog() {
+            return isEncodingSpecifiedInProlog;
+        }
 
-	/**
-	 * @return The enclosing root to this Root. Usually represents the
-	 * page that includes this one.
-	 */
-	public Root getParentRoot() {
-	    return parentRoot;
-	}
+        /**
+         * @return The enclosing root to this Root. Usually represents the
+         * page that includes this one.
+         */
+        public Root getParentRoot() {
+            return parentRoot;
+        }
     }
     
     /**
@@ -515,16 +515,16 @@
      */
     public static class JspRoot extends Node {
 
-	public JspRoot(String qName, Attributes attrs,
-		       Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
-		       Mark start, Node parent) {
-	    super(qName, ROOT_ACTION, attrs, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
-	}
+        public JspRoot(String qName, Attributes attrs,
+                       Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
+                       Mark start, Node parent) {
+            super(qName, ROOT_ACTION, attrs, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -532,48 +532,48 @@
      */
     public static class PageDirective extends Node {
 
-	private Vector imports;
+        private Vector imports;
 
-	public PageDirective(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_PAGE_DIRECTIVE_ACTION, attrs, null, null, start, parent);
-	}
+        public PageDirective(Attributes attrs, Mark start, Node parent) {
+            this(JSP_PAGE_DIRECTIVE_ACTION, attrs, null, null, start, parent);
+        }
 
-	public PageDirective(String qName, Attributes attrs,
-			     Attributes nonTaglibXmlnsAttrs,
-			     Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, PAGE_DIRECTIVE_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	    imports = new Vector();
-	}
+        public PageDirective(String qName, Attributes attrs,
+                             Attributes nonTaglibXmlnsAttrs,
+                             Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, PAGE_DIRECTIVE_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+            imports = new Vector();
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	/**
-	 * Parses the comma-separated list of class or package names in the
-	 * given attribute value and adds each component to this
-	 * PageDirective's vector of imported classes and packages.
-	 * @param value A comma-separated string of imports.
-	 */
-	public void addImport(String value) {
-	    int start = 0;
-	    int index;
-	    while ((index = value.indexOf(',', start)) != -1) {
-		imports.add(value.substring(start, index).trim());
-		start = index + 1;
-	    }
-	    if (start == 0) {
-		// No comma found
-		imports.add(value.trim());
-	    } else {
-		imports.add(value.substring(start).trim());
-	    }
-	}
+        /**
+         * Parses the comma-separated list of class or package names in the
+         * given attribute value and adds each component to this
+         * PageDirective's vector of imported classes and packages.
+         * @param value A comma-separated string of imports.
+         */
+        public void addImport(String value) {
+            int start = 0;
+            int index;
+            while ((index = value.indexOf(',', start)) != -1) {
+                imports.add(value.substring(start, index).trim());
+                start = index + 1;
+            }
+            if (start == 0) {
+                // No comma found
+                imports.add(value.trim());
+            } else {
+                imports.add(value.substring(start).trim());
+            }
+        }
 
-	public List getImports() {
-	    return imports;
-	}
+        public List getImports() {
+            return imports;
+        }
     }
 
     /**
@@ -581,22 +581,22 @@
      */
     public static class IncludeDirective extends Node {
 
-	public IncludeDirective(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_INCLUDE_DIRECTIVE_ACTION, attrs, null, null, start,
-		 parent);
-	}
+        public IncludeDirective(Attributes attrs, Mark start, Node parent) {
+            this(JSP_INCLUDE_DIRECTIVE_ACTION, attrs, null, null, start,
+                 parent);
+        }
 
-	public IncludeDirective(String qName, Attributes attrs,
-				Attributes nonTaglibXmlnsAttrs,
-				Attributes taglibAttrs, Mark start,
-				Node parent) {
-	    super(qName, INCLUDE_DIRECTIVE_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public IncludeDirective(String qName, Attributes attrs,
+                                Attributes nonTaglibXmlnsAttrs,
+                                Attributes taglibAttrs, Mark start,
+                                Node parent) {
+            super(qName, INCLUDE_DIRECTIVE_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -604,14 +604,14 @@
      */
     public static class TaglibDirective extends Node {
 
-	public TaglibDirective(Attributes attrs, Mark start, Node parent) {
-	    super(JSP_TAGLIB_DIRECTIVE_ACTION, TAGLIB_DIRECTIVE_ACTION, attrs,
-		  start, parent);
-	}
+        public TaglibDirective(Attributes attrs, Mark start, Node parent) {
+            super(JSP_TAGLIB_DIRECTIVE_ACTION, TAGLIB_DIRECTIVE_ACTION, attrs,
+                  start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -620,20 +620,20 @@
     public static class TagDirective extends Node {
         private Vector imports;
 
-	public TagDirective(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_TAG_DIRECTIVE_ACTION, attrs, null, null, start, parent);
-	}
+        public TagDirective(Attributes attrs, Mark start, Node parent) {
+            this(JSP_TAG_DIRECTIVE_ACTION, attrs, null, null, start, parent);
+        }
 
-	public TagDirective(String qName, Attributes attrs,
-			    Attributes nonTaglibXmlnsAttrs,
-			    Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, TAG_DIRECTIVE_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
+        public TagDirective(String qName, Attributes attrs,
+                            Attributes nonTaglibXmlnsAttrs,
+                            Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, TAG_DIRECTIVE_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
             imports = new Vector();
-	}
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
         }
  
         /**
@@ -659,7 +659,7 @@
  
         public List getImports() {
             return imports;
-	}
+        }
     }
 
     /**
@@ -667,22 +667,22 @@
      */
     public static class AttributeDirective extends Node {
 
-	public AttributeDirective(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_ATTRIBUTE_DIRECTIVE_ACTION, attrs, null, null, start,
-		 parent);
-	}
+        public AttributeDirective(Attributes attrs, Mark start, Node parent) {
+            this(JSP_ATTRIBUTE_DIRECTIVE_ACTION, attrs, null, null, start,
+                 parent);
+        }
 
-	public AttributeDirective(String qName, Attributes attrs,
-				  Attributes nonTaglibXmlnsAttrs,
-				  Attributes taglibAttrs, Mark start,
-				  Node parent) {
-	    super(qName, ATTRIBUTE_DIRECTIVE_ACTION, attrs,
-		  nonTaglibXmlnsAttrs, taglibAttrs, start, parent);
-	}
+        public AttributeDirective(String qName, Attributes attrs,
+                                  Attributes nonTaglibXmlnsAttrs,
+                                  Attributes taglibAttrs, Mark start,
+                                  Node parent) {
+            super(qName, ATTRIBUTE_DIRECTIVE_ACTION, attrs,
+                  nonTaglibXmlnsAttrs, taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -690,22 +690,22 @@
      */
     public static class VariableDirective extends Node {
 
-	public VariableDirective(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_VARIABLE_DIRECTIVE_ACTION, attrs, null, null, start,
-		 parent);
-	}
+        public VariableDirective(Attributes attrs, Mark start, Node parent) {
+            this(JSP_VARIABLE_DIRECTIVE_ACTION, attrs, null, null, start,
+                 parent);
+        }
 
-	public VariableDirective(String qName, Attributes attrs,
-				 Attributes nonTaglibXmlnsAttrs,
-				 Attributes taglibAttrs,
-				 Mark start, Node parent) {
-	    super(qName, VARIABLE_DIRECTIVE_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public VariableDirective(String qName, Attributes attrs,
+                                 Attributes nonTaglibXmlnsAttrs,
+                                 Attributes taglibAttrs,
+                                 Mark start, Node parent) {
+            super(qName, VARIABLE_DIRECTIVE_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -713,20 +713,20 @@
      */
     public static class InvokeAction extends Node {
 
-	public InvokeAction(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_INVOKE_ACTION, attrs, null, null, start, parent);
-	}
+        public InvokeAction(Attributes attrs, Mark start, Node parent) {
+            this(JSP_INVOKE_ACTION, attrs, null, null, start, parent);
+        }
 
-	public InvokeAction(String qName, Attributes attrs,
-			    Attributes nonTaglibXmlnsAttrs,
-			    Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, INVOKE_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public InvokeAction(String qName, Attributes attrs,
+                            Attributes nonTaglibXmlnsAttrs,
+                            Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, INVOKE_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -734,20 +734,20 @@
      */
     public static class DoBodyAction extends Node {
 
-	public DoBodyAction(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_DOBODY_ACTION, attrs, null, null, start, parent);
-	}
+        public DoBodyAction(Attributes attrs, Mark start, Node parent) {
+            this(JSP_DOBODY_ACTION, attrs, null, null, start, parent);
+        }
 
-	public DoBodyAction(String qName, Attributes attrs,
-			    Attributes nonTaglibXmlnsAttrs,
-			    Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, DOBODY_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public DoBodyAction(String qName, Attributes attrs,
+                            Attributes nonTaglibXmlnsAttrs,
+                            Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, DOBODY_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -756,13 +756,13 @@
      */
     public static class Comment extends Node {
 
-	public Comment(String text, Mark start, Node parent) {
-	    super(null, null, text, start, parent);
-	}
+        public Comment(String text, Mark start, Node parent) {
+            super(null, null, text, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -770,37 +770,37 @@
      */
     public static abstract class ScriptingElement extends Node {
 
-	public ScriptingElement(String qName, String localName, String text,
-				Mark start, Node parent) {
-	    super(qName, localName, text, start, parent);
-	}
+        public ScriptingElement(String qName, String localName, String text,
+                                Mark start, Node parent) {
+            super(qName, localName, text, start, parent);
+        }
 
-	public ScriptingElement(String qName, String localName,
-				Attributes nonTaglibXmlnsAttrs,
-				Attributes taglibAttrs, Mark start,
-				Node parent) {
-	    super(qName, localName, null, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
-	}
+        public ScriptingElement(String qName, String localName,
+                                Attributes nonTaglibXmlnsAttrs,
+                                Attributes taglibAttrs, Mark start,
+                                Node parent) {
+            super(qName, localName, null, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
+        }
 
-	/**
-	 * When this node was created from a JSP page in JSP syntax, its text
-	 * was stored as a String in the "text" field, whereas when this node
-	 * was created from a JSP document, its text was stored as one or more
-	 * TemplateText nodes in its body. This method handles either case.
-	 * @return The text string
-	 */
-	public String getText() {
-	    String ret = text;
-	    if ((ret == null) && (body != null)) {
-		StringBuffer buf = new StringBuffer();
-		for (int i=0; i<body.size(); i++) {
-		    buf.append(body.getNode(i).getText());
-		}
-		ret = buf.toString();
-	    }
-	    return ret;
-	}
+        /**
+         * When this node was created from a JSP page in JSP syntax, its text
+         * was stored as a String in the "text" field, whereas when this node
+         * was created from a JSP document, its text was stored as one or more
+         * TemplateText nodes in its body. This method handles either case.
+         * @return The text string
+         */
+        public String getText() {
+            String ret = text;
+            if ((ret == null) && (body != null)) {
+                StringBuffer buf = new StringBuffer();
+                for (int i=0; i<body.size(); i++) {
+                    buf.append(body.getNode(i).getText());
+                }
+                ret = buf.toString();
+            }
+            return ret;
+        }
 
         /**
          * For the same reason as above, the source line information in the
@@ -820,21 +820,21 @@
      */
     public static class Declaration extends ScriptingElement {
 
-	public Declaration(String text, Mark start, Node parent) {
-	    super(JSP_DECLARATION_ACTION, DECLARATION_ACTION, text, start,
-		  parent);
-	}
+        public Declaration(String text, Mark start, Node parent) {
+            super(JSP_DECLARATION_ACTION, DECLARATION_ACTION, text, start,
+                  parent);
+        }
 
-	public Declaration(String qName, Attributes nonTaglibXmlnsAttrs,
-			   Attributes taglibAttrs, Mark start,
-			   Node parent) {
-	    super(qName, DECLARATION_ACTION, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public Declaration(String qName, Attributes nonTaglibXmlnsAttrs,
+                           Attributes taglibAttrs, Mark start,
+                           Node parent) {
+            super(qName, DECLARATION_ACTION, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -843,21 +843,21 @@
      */
     public static class Expression extends ScriptingElement {
 
-	public Expression(String text, Mark start, Node parent) {
-	    super(JSP_EXPRESSION_ACTION, EXPRESSION_ACTION, text, start,
-		  parent);
-	}
+        public Expression(String text, Mark start, Node parent) {
+            super(JSP_EXPRESSION_ACTION, EXPRESSION_ACTION, text, start,
+                  parent);
+        }
 
-	public Expression(String qName, Attributes nonTaglibXmlnsAttrs,
-			  Attributes taglibAttrs, Mark start,
-			  Node parent) {
-	    super(qName, EXPRESSION_ACTION, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
-	}
+        public Expression(String qName, Attributes nonTaglibXmlnsAttrs,
+                          Attributes taglibAttrs, Mark start,
+                          Node parent) {
+            super(qName, EXPRESSION_ACTION, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -865,20 +865,20 @@
      */
     public static class Scriptlet extends ScriptingElement {
 
-	public Scriptlet(String text, Mark start, Node parent) {
-	    super(JSP_SCRIPTLET_ACTION, SCRIPTLET_ACTION, text, start, parent);
-	}
+        public Scriptlet(String text, Mark start, Node parent) {
+            super(JSP_SCRIPTLET_ACTION, SCRIPTLET_ACTION, text, start, parent);
+        }
 
-	public Scriptlet(String qName, Attributes nonTaglibXmlnsAttrs,
-			 Attributes taglibAttrs, Mark start,
-			 Node parent) {
-	    super(qName, SCRIPTLET_ACTION, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
-	}
+        public Scriptlet(String qName, Attributes nonTaglibXmlnsAttrs,
+                         Attributes taglibAttrs, Mark start,
+                         Node parent) {
+            super(qName, SCRIPTLET_ACTION, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -887,7 +887,7 @@
      */
     public static class ELExpression extends Node {
 
-	private ELNode.Nodes el;
+        private ELNode.Nodes el;
 
         public ELExpression(String text, Mark start, Node parent) {
             super(null, null, text, start, parent);
@@ -897,13 +897,13 @@
             v.visit(this);
         }
 
-	public void setEL(ELNode.Nodes el) {
-	    this.el = el;
-	}
+        public void setEL(ELNode.Nodes el) {
+            this.el = el;
+        }
 
-	public ELNode.Nodes getEL() {
-	    return el;
-	}
+        public ELNode.Nodes getEL() {
+            return el;
+        }
     }
 
     /**
@@ -911,30 +911,30 @@
      */
     public static class ParamAction extends Node {
 
-	JspAttribute value;
+        JspAttribute value;
 
-	public ParamAction(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_PARAM_ACTION, attrs, null, null, start, parent);
-	}
+        public ParamAction(Attributes attrs, Mark start, Node parent) {
+            this(JSP_PARAM_ACTION, attrs, null, null, start, parent);
+        }
 
-	public ParamAction(String qName, Attributes attrs,
-			   Attributes nonTaglibXmlnsAttrs,
-			   Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, PARAM_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public ParamAction(String qName, Attributes attrs,
+                           Attributes nonTaglibXmlnsAttrs,
+                           Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, PARAM_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public void setValue(JspAttribute value) {
-	    this.value = value;
-	}
+        public void setValue(JspAttribute value) {
+            this.value = value;
+        }
 
-	public JspAttribute getValue() {
-	    return value;
-	}
+        public JspAttribute getValue() {
+            return value;
+        }
     }
 
     /**
@@ -942,21 +942,21 @@
      */
     public static class ParamsAction extends Node {
 
-	public ParamsAction(Mark start, Node parent) {
-	    this(JSP_PARAMS_ACTION, null, null, start, parent);
-	}
+        public ParamsAction(Mark start, Node parent) {
+            this(JSP_PARAMS_ACTION, null, null, start, parent);
+        }
 
-	public ParamsAction(String qName,
-			    Attributes nonTaglibXmlnsAttrs,
-			    Attributes taglibAttrs,
-			    Mark start, Node parent) {
-	    super(qName, PARAMS_ACTION, null, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
-	}
+        public ParamsAction(String qName,
+                            Attributes nonTaglibXmlnsAttrs,
+                            Attributes taglibAttrs,
+                            Mark start, Node parent) {
+            super(qName, PARAMS_ACTION, null, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -964,21 +964,21 @@
      */
     public static class FallBackAction extends Node {
 
-	public FallBackAction(Mark start, Node parent) {
-	    this(JSP_FALLBACK_ACTION, null, null, start, parent);
-	}
+        public FallBackAction(Mark start, Node parent) {
+            this(JSP_FALLBACK_ACTION, null, null, start, parent);
+        }
 
-	public FallBackAction(String qName,
-			      Attributes nonTaglibXmlnsAttrs,
-			      Attributes taglibAttrs, Mark start,
-			      Node parent) {
-	    super(qName, FALLBACK_ACTION, null, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public FallBackAction(String qName,
+                              Attributes nonTaglibXmlnsAttrs,
+                              Attributes taglibAttrs, Mark start,
+                              Node parent) {
+            super(qName, FALLBACK_ACTION, null, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -986,30 +986,30 @@
      */
     public static class IncludeAction extends Node {
 
-	private JspAttribute page;
+        private JspAttribute page;
 
-	public IncludeAction(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_INCLUDE_ACTION, attrs, null, null, start, parent);
-	}
+        public IncludeAction(Attributes attrs, Mark start, Node parent) {
+            this(JSP_INCLUDE_ACTION, attrs, null, null, start, parent);
+        }
 
-	public IncludeAction(String qName, Attributes attrs,
-			     Attributes nonTaglibXmlnsAttrs,
-			     Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, INCLUDE_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public IncludeAction(String qName, Attributes attrs,
+                             Attributes nonTaglibXmlnsAttrs,
+                             Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, INCLUDE_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public void setPage(JspAttribute page) {
-	    this.page = page;
-	}
+        public void setPage(JspAttribute page) {
+            this.page = page;
+        }
 
-	public JspAttribute getPage() {
-	    return page;
-	}
+        public JspAttribute getPage() {
+            return page;
+        }
     }
 
     /**
@@ -1017,30 +1017,30 @@
      */
     public static class ForwardAction extends Node {
 
-	private JspAttribute page;
+        private JspAttribute page;
 
-	public ForwardAction(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_FORWARD_ACTION, attrs, null, null, start, parent);
-	}
+        public ForwardAction(Attributes attrs, Mark start, Node parent) {
+            this(JSP_FORWARD_ACTION, attrs, null, null, start, parent);
+        }
 
-	public ForwardAction(String qName, Attributes attrs,
-			     Attributes nonTaglibXmlnsAttrs,
-			     Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, FORWARD_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public ForwardAction(String qName, Attributes attrs,
+                             Attributes nonTaglibXmlnsAttrs,
+                             Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, FORWARD_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public void setPage(JspAttribute page) {
-	    this.page = page;
-	}
+        public void setPage(JspAttribute page) {
+            this.page = page;
+        }
 
-	public JspAttribute getPage() {
-	    return page;
-	}
+        public JspAttribute getPage() {
+            return page;
+        }
     }
 
     /**
@@ -1048,20 +1048,20 @@
      */
     public static class GetProperty extends Node {
 
-	public GetProperty(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_GET_PROPERTY_ACTION, attrs, null, null, start, parent);
-	}
+        public GetProperty(Attributes attrs, Mark start, Node parent) {
+            this(JSP_GET_PROPERTY_ACTION, attrs, null, null, start, parent);
+        }
 
-	public GetProperty(String qName, Attributes attrs,
-			   Attributes nonTaglibXmlnsAttrs,
-			   Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, GET_PROPERTY_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start,  parent);
-	}
+        public GetProperty(String qName, Attributes attrs,
+                           Attributes nonTaglibXmlnsAttrs,
+                           Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, GET_PROPERTY_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start,  parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -1069,30 +1069,30 @@
      */
     public static class SetProperty extends Node {
 
-	private JspAttribute value;
+        private JspAttribute value;
 
-	public SetProperty(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_SET_PROPERTY_ACTION, attrs, null, null, start, parent);
-	}
+        public SetProperty(Attributes attrs, Mark start, Node parent) {
+            this(JSP_SET_PROPERTY_ACTION, attrs, null, null, start, parent);
+        }
 
-	public SetProperty(String qName, Attributes attrs,
-			   Attributes nonTaglibXmlnsAttrs,
-			   Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, SET_PROPERTY_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public SetProperty(String qName, Attributes attrs,
+                           Attributes nonTaglibXmlnsAttrs,
+                           Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, SET_PROPERTY_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public void setValue(JspAttribute value) {
-	    this.value = value;
-	}
+        public void setValue(JspAttribute value) {
+            this.value = value;
+        }
 
-	public JspAttribute getValue() {
-	    return value;
-	}
+        public JspAttribute getValue() {
+            return value;
+        }
     }
 
     /**
@@ -1100,30 +1100,30 @@
      */
     public static class UseBean extends Node {
 
-	JspAttribute beanName;
+        JspAttribute beanName;
 
-	public UseBean(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_USE_BEAN_ACTION, attrs, null, null, start, parent);
-	}
+        public UseBean(Attributes attrs, Mark start, Node parent) {
+            this(JSP_USE_BEAN_ACTION, attrs, null, null, start, parent);
+        }
 
-	public UseBean(String qName, Attributes attrs,
-		       Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
-		       Mark start, Node parent) {
-	    super(qName, USE_BEAN_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public UseBean(String qName, Attributes attrs,
+                       Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
+                       Mark start, Node parent) {
+            super(qName, USE_BEAN_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public void setBeanName(JspAttribute beanName) {
-	    this.beanName = beanName;
-	}
+        public void setBeanName(JspAttribute beanName) {
+            this.beanName = beanName;
+        }
 
-	public JspAttribute getBeanName() {
-	    return beanName;
-	}
+        public JspAttribute getBeanName() {
+            return beanName;
+        }
     }
 
     /**
@@ -1134,36 +1134,36 @@
         private JspAttribute width;
         private JspAttribute height;
         
-	public PlugIn(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_PLUGIN_ACTION, attrs, null, null, start, parent);
-	}
+        public PlugIn(Attributes attrs, Mark start, Node parent) {
+            this(JSP_PLUGIN_ACTION, attrs, null, null, start, parent);
+        }
 
-	public PlugIn(String qName, Attributes attrs,
-		      Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
-		      Mark start, Node parent) {
-	    super(qName, PLUGIN_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public PlugIn(String qName, Attributes attrs,
+                      Attributes nonTaglibXmlnsAttrs, Attributes taglibAttrs,
+                      Mark start, Node parent) {
+            super(qName, PLUGIN_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public void setHeight(JspAttribute height) {
-	    this.height = height;
-	}
+        public void setHeight(JspAttribute height) {
+            this.height = height;
+        }
 
-	public void setWidth(JspAttribute width) {
-	    this.width = width;
-	}
+        public void setWidth(JspAttribute width) {
+            this.width = width;
+        }
 
-	public JspAttribute getHeight() {
-	    return height;
-	}
+        public JspAttribute getHeight() {
+            return height;
+        }
 
-	public JspAttribute getWidth() {
-	    return width;
-	}
+        public JspAttribute getWidth() {
+            return width;
+        }
     }
 
     /**
@@ -1171,28 +1171,28 @@
      */
     public static class UninterpretedTag extends Node {
 
-	private JspAttribute[] jspAttrs;
+        private JspAttribute[] jspAttrs;
 
-	public UninterpretedTag(String qName, String localName,
-				Attributes attrs,
-				Attributes nonTaglibXmlnsAttrs,
-				Attributes taglibAttrs,
-				Mark start, Node parent) {
-	    super(qName, localName, attrs, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
-	}
+        public UninterpretedTag(String qName, String localName,
+                                Attributes attrs,
+                                Attributes nonTaglibXmlnsAttrs,
+                                Attributes taglibAttrs,
+                                Mark start, Node parent) {
+            super(qName, localName, attrs, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public void setJspAttributes(JspAttribute[] jspAttrs) {
-	    this.jspAttrs = jspAttrs;
-	}
+        public void setJspAttributes(JspAttribute[] jspAttrs) {
+            this.jspAttrs = jspAttrs;
+        }
 
-	public JspAttribute[] getJspAttributes() {
-	    return jspAttrs;
-	}
+        public JspAttribute[] getJspAttributes() {
+            return jspAttrs;
+        }
     }
     
     /**
@@ -1200,45 +1200,45 @@
      */
     public static class JspElement extends Node {
 
-	private JspAttribute[] jspAttrs;
-	private JspAttribute nameAttr;
+        private JspAttribute[] jspAttrs;
+        private JspAttribute nameAttr;
 
-	public JspElement(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_ELEMENT_ACTION, attrs, null, null, start, parent);
-	}
+        public JspElement(Attributes attrs, Mark start, Node parent) {
+            this(JSP_ELEMENT_ACTION, attrs, null, null, start, parent);
+        }
 
-	public JspElement(String qName, Attributes attrs,
-			  Attributes nonTaglibXmlnsAttrs,
-			  Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, ELEMENT_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public JspElement(String qName, Attributes attrs,
+                          Attributes nonTaglibXmlnsAttrs,
+                          Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, ELEMENT_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public void setJspAttributes(JspAttribute[] jspAttrs) {
-	    this.jspAttrs = jspAttrs;
-	}
+        public void setJspAttributes(JspAttribute[] jspAttrs) {
+            this.jspAttrs = jspAttrs;
+        }
 
-	public JspAttribute[] getJspAttributes() {
-	    return jspAttrs;
-	}
+        public JspAttribute[] getJspAttributes() {
+            return jspAttrs;
+        }
 
-	/*
-	 * Sets the XML-style 'name' attribute
-	 */
-	public void setNameAttribute(JspAttribute nameAttr) {
-	    this.nameAttr = nameAttr;
-	}
+        /*
+         * Sets the XML-style 'name' attribute
+         */
+        public void setNameAttribute(JspAttribute nameAttr) {
+            this.nameAttr = nameAttr;
+        }
 
-	/*
-	 * Gets the XML-style 'name' attribute
-	 */
-	public JspAttribute getNameAttribute() {
-	    return this.nameAttr;
-	}
+        /*
+         * Gets the XML-style 'name' attribute
+         */
+        public JspAttribute getNameAttribute() {
+            return this.nameAttr;
+        }
     }
 
     /**
@@ -1246,17 +1246,17 @@
      */
     public static class JspOutput extends Node {
 
-	public JspOutput(String qName, Attributes attrs,
-			 Attributes nonTaglibXmlnsAttrs,
-			 Attributes taglibAttrs,
-			 Mark start, Node parent) {
-	    super(qName, OUTPUT_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-	}
+        public JspOutput(String qName, Attributes attrs,
+                         Attributes nonTaglibXmlnsAttrs,
+                         Attributes taglibAttrs,
+                         Mark start, Node parent) {
+            super(qName, OUTPUT_ACTION, attrs, nonTaglibXmlnsAttrs,
+                  taglibAttrs, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -1265,61 +1265,61 @@
      * set in the Collector.
      */
     public static class ChildInfo {
-	private boolean scriptless;	// true if the tag and its body
-					// contain no scripting elements.
-	private boolean hasUseBean;
-	private boolean hasIncludeAction;
-	private boolean hasParamAction;
-	private boolean hasSetProperty;
-	private boolean hasScriptingVars;
+        private boolean scriptless;        // true if the tag and its body
+                                        // contain no scripting elements.
+        private boolean hasUseBean;
+        private boolean hasIncludeAction;
+        private boolean hasParamAction;
+        private boolean hasSetProperty;
+        private boolean hasScriptingVars;
 
-	public void setScriptless(boolean s) {
-	    scriptless = s;
-	}
+        public void setScriptless(boolean s) {
+            scriptless = s;
+        }
 
-	public boolean isScriptless() {
-	    return scriptless;
-	}
+        public boolean isScriptless() {
+            return scriptless;
+        }
 
-	public void setHasUseBean(boolean u) {
-	    hasUseBean = u;
-	}
+        public void setHasUseBean(boolean u) {
+            hasUseBean = u;
+        }
 
-	public boolean hasUseBean() {
-	    return hasUseBean;
-	}
+        public boolean hasUseBean() {
+            return hasUseBean;
+        }
 
-	public void setHasIncludeAction(boolean i) {
-	    hasIncludeAction = i;
-	}
+        public void setHasIncludeAction(boolean i) {
+            hasIncludeAction = i;
+        }
 
-	public boolean hasIncludeAction() {
-	    return hasIncludeAction;
-	}
+        public boolean hasIncludeAction() {
+            return hasIncludeAction;
+        }
 
-	public void setHasParamAction(boolean i) {
-	    hasParamAction = i;
-	}
+        public void setHasParamAction(boolean i) {
+            hasParamAction = i;
+        }
 
-	public boolean hasParamAction() {
-	    return hasParamAction;
-	}
+        public boolean hasParamAction() {
+            return hasParamAction;
+        }
 
-	public void setHasSetProperty(boolean s) {
-	    hasSetProperty = s;
-	}
+        public void setHasSetProperty(boolean s) {
+            hasSetProperty = s;
+        }
 
-	public boolean hasSetProperty() {
-	    return hasSetProperty;
-	}
+        public boolean hasSetProperty() {
+            return hasSetProperty;
+        }
         
-	public void setHasScriptingVars(boolean s) {
-	    hasScriptingVars = s;
-	}
+        public void setHasScriptingVars(boolean s) {
+            hasScriptingVars = s;
+        }
 
-	public boolean hasScriptingVars() {
-	    return hasScriptingVars;
-	}
+        public boolean hasScriptingVars() {
+            return hasScriptingVars;
+        }
     }
 
     /**
@@ -1327,396 +1327,396 @@
      */
     public static class CustomTag extends Node {
 
-	private String uri;
-	private String prefix;
-	private JspAttribute[] jspAttrs;
-	private TagData tagData;
-	private String tagHandlerPoolName;
-	private TagInfo tagInfo;
-	private TagFileInfo tagFileInfo;
-	private Class tagHandlerClass;
-	private VariableInfo[] varInfos;
-	private int customNestingLevel;
+        private String uri;
+        private String prefix;
+        private JspAttribute[] jspAttrs;
+        private TagData tagData;
+        private String tagHandlerPoolName;
+        private TagInfo tagInfo;
+        private TagFileInfo tagFileInfo;
+        private Class tagHandlerClass;
+        private VariableInfo[] varInfos;
+        private int customNestingLevel;
         private ChildInfo childInfo;
-	private boolean implementsIterationTag;
-	private boolean implementsBodyTag;
-	private boolean implementsTryCatchFinally;
-	private boolean implementsSimpleTag;
-	private boolean implementsDynamicAttributes;
-	private Vector atBeginScriptingVars;
-	private Vector atEndScriptingVars;
-	private Vector nestedScriptingVars;
-	private Node.CustomTag customTagParent;
-	private Integer numCount;
-	private boolean useTagPlugin;
-	private TagPluginContext tagPluginContext;
+        private boolean implementsIterationTag;
+        private boolean implementsBodyTag;
+        private boolean implementsTryCatchFinally;
+        private boolean implementsSimpleTag;
+        private boolean implementsDynamicAttributes;
+        private Vector atBeginScriptingVars;
+        private Vector atEndScriptingVars;
+        private Vector nestedScriptingVars;
+        private Node.CustomTag customTagParent;
+        private Integer numCount;
+        private boolean useTagPlugin;
+        private TagPluginContext tagPluginContext;
 
-	/**
-	 * The following two fields are used for holding the Java
-	 * scriptlets that the tag plugins may generate.  Meaningful
-	 * only if useTagPlugin is true;
-	 * Could move them into TagPluginContextImpl, but we'll need
-	 * to cast tagPluginContext to TagPluginContextImpl all the time...
-	 */
-	private Nodes atSTag;
-	private Nodes atETag;
+        /**
+         * The following two fields are used for holding the Java
+         * scriptlets that the tag plugins may generate.  Meaningful
+         * only if useTagPlugin is true;
+         * Could move them into TagPluginContextImpl, but we'll need
+         * to cast tagPluginContext to TagPluginContextImpl all the time...
+         */
+        private Nodes atSTag;
+        private Nodes atETag;
 
-	/*
-	 * Constructor for custom action implemented by tag handler.
-	 */
-	public CustomTag(String qName, String prefix, String localName,
-			 String uri, Attributes attrs, Mark start, Node parent,
-			 TagInfo tagInfo, Class tagHandlerClass) {
-	    this(qName, prefix, localName, uri, attrs, null, null, start,
-		 parent, tagInfo, tagHandlerClass);
-	}
+        /*
+         * Constructor for custom action implemented by tag handler.
+         */
+        public CustomTag(String qName, String prefix, String localName,
+                         String uri, Attributes attrs, Mark start, Node parent,
+                         TagInfo tagInfo, Class tagHandlerClass) {
+            this(qName, prefix, localName, uri, attrs, null, null, start,
+                 parent, tagInfo, tagHandlerClass);
+        }
 
-	/*
-	 * Constructor for custom action implemented by tag handler.
-	 */
-	public CustomTag(String qName, String prefix, String localName,
-			 String uri, Attributes attrs,
-			 Attributes nonTaglibXmlnsAttrs,
-			 Attributes taglibAttrs,
-			 Mark start, Node parent, TagInfo tagInfo,
-			 Class tagHandlerClass) {
-	    super(qName, localName, attrs, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
+        /*
+         * Constructor for custom action implemented by tag handler.
+         */
+        public CustomTag(String qName, String prefix, String localName,
+                         String uri, Attributes attrs,
+                         Attributes nonTaglibXmlnsAttrs,
+                         Attributes taglibAttrs,
+                         Mark start, Node parent, TagInfo tagInfo,
+                         Class tagHandlerClass) {
+            super(qName, localName, attrs, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
 
-	    this.uri = uri;
-	    this.prefix = prefix;
-	    this.tagInfo = tagInfo;
-	    this.tagHandlerClass = tagHandlerClass;
-	    this.customNestingLevel = makeCustomNestingLevel();
+            this.uri = uri;
+            this.prefix = prefix;
+            this.tagInfo = tagInfo;
+            this.tagHandlerClass = tagHandlerClass;
+            this.customNestingLevel = makeCustomNestingLevel();
             this.childInfo = new ChildInfo();
 
-	    this.implementsIterationTag = 
-		IterationTag.class.isAssignableFrom(tagHandlerClass);
-	    this.implementsBodyTag =
-		BodyTag.class.isAssignableFrom(tagHandlerClass);
-	    this.implementsTryCatchFinally = 
-		TryCatchFinally.class.isAssignableFrom(tagHandlerClass);
-	    this.implementsSimpleTag = 
-		SimpleTag.class.isAssignableFrom(tagHandlerClass);
-	    this.implementsDynamicAttributes = 
-		DynamicAttributes.class.isAssignableFrom(tagHandlerClass);
-	}
+            this.implementsIterationTag = 
+                IterationTag.class.isAssignableFrom(tagHandlerClass);
+            this.implementsBodyTag =
+                BodyTag.class.isAssignableFrom(tagHandlerClass);
+            this.implementsTryCatchFinally = 
+                TryCatchFinally.class.isAssignableFrom(tagHandlerClass);
+            this.implementsSimpleTag = 
+                SimpleTag.class.isAssignableFrom(tagHandlerClass);
+            this.implementsDynamicAttributes = 
+                DynamicAttributes.class.isAssignableFrom(tagHandlerClass);
+        }
 
-	/*
-	 * Constructor for custom action implemented by tag file.
-	 */
-	public CustomTag(String qName, String prefix, String localName,
-			 String uri, Attributes attrs, Mark start, Node parent,
-			 TagFileInfo tagFileInfo) {
-	    this(qName, prefix, localName, uri, attrs, null, null, start,
-		 parent, tagFileInfo);
-	}
+        /*
+         * Constructor for custom action implemented by tag file.
+         */
+        public CustomTag(String qName, String prefix, String localName,
+                         String uri, Attributes attrs, Mark start, Node parent,
+                         TagFileInfo tagFileInfo) {
+            this(qName, prefix, localName, uri, attrs, null, null, start,
+                 parent, tagFileInfo);
+        }
 
-	/*
-	 * Constructor for custom action implemented by tag file.
-	 */
-	public CustomTag(String qName, String prefix, String localName,
-			 String uri, Attributes attrs,
-			 Attributes nonTaglibXmlnsAttrs,
-			 Attributes taglibAttrs,
-			 Mark start, Node parent, TagFileInfo tagFileInfo) {
+        /*
+         * Constructor for custom action implemented by tag file.
+         */
+        public CustomTag(String qName, String prefix, String localName,
+                         String uri, Attributes attrs,
+                         Attributes nonTaglibXmlnsAttrs,
+                         Attributes taglibAttrs,
+                         Mark start, Node parent, TagFileInfo tagFileInfo) {
 
-	    super(qName, localName, attrs, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
+            super(qName, localName, attrs, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
 
-	    this.uri = uri;
-	    this.prefix = prefix;
-	    this.tagFileInfo = tagFileInfo;
-	    this.tagInfo = tagFileInfo.getTagInfo();
-	    this.customNestingLevel = makeCustomNestingLevel();
+            this.uri = uri;
+            this.prefix = prefix;
+            this.tagFileInfo = tagFileInfo;
+            this.tagInfo = tagFileInfo.getTagInfo();
+            this.customNestingLevel = makeCustomNestingLevel();
             this.childInfo = new ChildInfo();
 
-	    this.implementsIterationTag = false;
-	    this.implementsBodyTag = false;
-	    this.implementsTryCatchFinally = false;
-	    this.implementsSimpleTag = true;
-	    this.implementsDynamicAttributes = tagInfo.hasDynamicAttributes();
-	}
+            this.implementsIterationTag = false;
+            this.implementsBodyTag = false;
+            this.implementsTryCatchFinally = false;
+            this.implementsSimpleTag = true;
+            this.implementsDynamicAttributes = tagInfo.hasDynamicAttributes();
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	/**
-	 * @return The URI namespace that this custom action belongs to
-	 */
-	public String getURI() {
-	    return this.uri;
-	}
+        /**
+         * @return The URI namespace that this custom action belongs to
+         */
+        public String getURI() {
+            return this.uri;
+        }
 
-	/**
-	 * @return The tag prefix
-	 */
-	public String getPrefix() {
-	    return prefix;
-	}
+        /**
+         * @return The tag prefix
+         */
+        public String getPrefix() {
+            return prefix;
+        }
 
-	public void setJspAttributes(JspAttribute[] jspAttrs) {
-	    this.jspAttrs = jspAttrs;
-	}
+        public void setJspAttributes(JspAttribute[] jspAttrs) {
+            this.jspAttrs = jspAttrs;
+        }
 
-	public JspAttribute[] getJspAttributes() {
-	    return jspAttrs;
-	}
+        public JspAttribute[] getJspAttributes() {
+            return jspAttrs;
+        }
         
         public ChildInfo getChildInfo() {
             return childInfo;
         }
-	
-	public void setTagData(TagData tagData) {
-	    this.tagData = tagData;
-	    this.varInfos = tagInfo.getVariableInfo(tagData);
-	    if (this.varInfos == null) {
-		this.varInfos = ZERO_VARIABLE_INFO;
-	    }
-	}
+        
+        public void setTagData(TagData tagData) {
+            this.tagData = tagData;
+            this.varInfos = tagInfo.getVariableInfo(tagData);
+            if (this.varInfos == null) {
+                this.varInfos = ZERO_VARIABLE_INFO;
+            }
+        }
 
-	public TagData getTagData() {
-	    return tagData;
-	}
+        public TagData getTagData() {
+            return tagData;
+        }
 
-	public void setTagHandlerPoolName(String s) {
-	    tagHandlerPoolName = s;
-	}
+        public void setTagHandlerPoolName(String s) {
+            tagHandlerPoolName = s;
+        }
 
-	public String getTagHandlerPoolName() {
-	    return tagHandlerPoolName;
-	}
+        public String getTagHandlerPoolName() {
+            return tagHandlerPoolName;
+        }
 
-	public TagInfo getTagInfo() {
-	    return tagInfo;
-	}
+        public TagInfo getTagInfo() {
+            return tagInfo;
+        }
 
-	public TagFileInfo getTagFileInfo() {
-	    return tagFileInfo;
-	}
+        public TagFileInfo getTagFileInfo() {
+            return tagFileInfo;
+        }
 
-	/*
-	 * @return true if this custom action is supported by a tag file,
-	 * false otherwise
-	 */
-	public boolean isTagFile() {
-	    return tagFileInfo != null;
-	}
+        /*
+         * @return true if this custom action is supported by a tag file,
+         * false otherwise
+         */
+        public boolean isTagFile() {
+            return tagFileInfo != null;
+        }
 
-	public Class getTagHandlerClass() {
-	    return tagHandlerClass;
-	}
+        public Class getTagHandlerClass() {
+            return tagHandlerClass;
+        }
 
-	public void setTagHandlerClass(Class hc) {
-	    tagHandlerClass = hc;
-	}
+        public void setTagHandlerClass(Class hc) {
+            tagHandlerClass = hc;
+        }
 
-	public boolean implementsIterationTag() {
-	    return implementsIterationTag;
-	}
+        public boolean implementsIterationTag() {
+            return implementsIterationTag;
+        }
 
-	public boolean implementsBodyTag() {
-	    return implementsBodyTag;
-	}
+        public boolean implementsBodyTag() {
+            return implementsBodyTag;
+        }
 
-	public boolean implementsTryCatchFinally() {
-	    return implementsTryCatchFinally;
-	}
+        public boolean implementsTryCatchFinally() {
+            return implementsTryCatchFinally;
+        }
 
-	public boolean implementsSimpleTag() {
-	    return implementsSimpleTag;
-	}
+        public boolean implementsSimpleTag() {
+            return implementsSimpleTag;
+        }
 
-	public boolean implementsDynamicAttributes() {
-	    return implementsDynamicAttributes;
-	}
+        public boolean implementsDynamicAttributes() {
+            return implementsDynamicAttributes;
+        }
 
-	public TagVariableInfo[] getTagVariableInfos() {
-	    return tagInfo.getTagVariableInfos();
- 	}
+        public TagVariableInfo[] getTagVariableInfos() {
+            return tagInfo.getTagVariableInfos();
+         }
  
-	public VariableInfo[] getVariableInfos() {
-	    return varInfos;
-	}
+        public VariableInfo[] getVariableInfos() {
+            return varInfos;
+        }
 
-	public void setCustomTagParent(Node.CustomTag n) {
-	    this.customTagParent = n;
-	}
+        public void setCustomTagParent(Node.CustomTag n) {
+            this.customTagParent = n;
+        }
 
-	public Node.CustomTag getCustomTagParent() {
-	    return this.customTagParent;
-	}
+        public Node.CustomTag getCustomTagParent() {
+            return this.customTagParent;
+        }
 
-	public void setNumCount(Integer count) {
-	    this.numCount = count;
-	}
+        public void setNumCount(Integer count) {
+            this.numCount = count;
+        }
 
-	public Integer getNumCount() {
-	    return this.numCount;
-	}
+        public Integer getNumCount() {
+            return this.numCount;
+        }
 
-	public void setScriptingVars(Vector vec, int scope) {
-	    switch (scope) {
-	    case VariableInfo.AT_BEGIN:
-		this.atBeginScriptingVars = vec;
-		break;
-	    case VariableInfo.AT_END:
-		this.atEndScriptingVars = vec;
-		break;
-	    case VariableInfo.NESTED:
-		this.nestedScriptingVars = vec;
-		break;
-	    }
-	}
+        public void setScriptingVars(Vector vec, int scope) {
+            switch (scope) {
+            case VariableInfo.AT_BEGIN:
+                this.atBeginScriptingVars = vec;
+                break;
+            case VariableInfo.AT_END:
+                this.atEndScriptingVars = vec;
+                break;
+            case VariableInfo.NESTED:
+                this.nestedScriptingVars = vec;
+                break;
+            }
+        }
 
-	/*
-	 * Gets the scripting variables for the given scope that need to be
-	 * declared.
-	 */
-	public Vector getScriptingVars(int scope) {
-	    Vector vec = null;
+        /*
+         * Gets the scripting variables for the given scope that need to be
+         * declared.
+         */
+        public Vector getScriptingVars(int scope) {
+            Vector vec = null;
 
-	    switch (scope) {
-	    case VariableInfo.AT_BEGIN:
-		vec = this.atBeginScriptingVars;
-		break;
-	    case VariableInfo.AT_END:
-		vec = this.atEndScriptingVars;
-		break;
-	    case VariableInfo.NESTED:
-		vec = this.nestedScriptingVars;
-		break;
-	    }
+            switch (scope) {
+            case VariableInfo.AT_BEGIN:
+                vec = this.atBeginScriptingVars;
+                break;
+            case VariableInfo.AT_END:
+                vec = this.atEndScriptingVars;
+                break;
+            case VariableInfo.NESTED:
+                vec = this.nestedScriptingVars;
+                break;
+            }
 
-	    return vec;
-	}
+            return vec;
+        }
 
-	/*
-	 * Gets this custom tag's custom nesting level, which is given as
-	 * the number of times this custom tag is nested inside itself.
-	 */
-	public int getCustomNestingLevel() {
-	    return customNestingLevel;
-	}
+        /*
+         * Gets this custom tag's custom nesting level, which is given as
+         * the number of times this custom tag is nested inside itself.
+         */
+        public int getCustomNestingLevel() {
+            return customNestingLevel;
+        }
 
         /**
          * Checks to see if the attribute of the given name is of type
-	 * JspFragment.
+         * JspFragment.
          */
         public boolean checkIfAttributeIsJspFragment( String name ) {
             boolean result = false;
 
-	    TagAttributeInfo[] attributes = tagInfo.getAttributes();
-	    for (int i = 0; i < attributes.length; i++) {
-		if (attributes[i].getName().equals(name) &&
-		            attributes[i].isFragment()) {
-		    result = true;
-		    break;
-		}
-	    }
+            TagAttributeInfo[] attributes = tagInfo.getAttributes();
+            for (int i = 0; i < attributes.length; i++) {
+                if (attributes[i].getName().equals(name) &&
+                            attributes[i].isFragment()) {
+                    result = true;
+                    break;
+                }
+            }
             
             return result;
         }
 
-	public void setUseTagPlugin(boolean use) {
-	    useTagPlugin = use;
-	}
+        public void setUseTagPlugin(boolean use) {
+            useTagPlugin = use;
+        }
 
-	public boolean useTagPlugin() {
-	    return useTagPlugin;
-	}
+        public boolean useTagPlugin() {
+            return useTagPlugin;
+        }
 
-	public void setTagPluginContext(TagPluginContext tagPluginContext) {
-	    this.tagPluginContext = tagPluginContext;
-	}
+        public void setTagPluginContext(TagPluginContext tagPluginContext) {
+            this.tagPluginContext = tagPluginContext;
+        }
 
-	public TagPluginContext getTagPluginContext() {
-	    return tagPluginContext;
-	}
+        public TagPluginContext getTagPluginContext() {
+            return tagPluginContext;
+        }
 
-	public void setAtSTag(Nodes sTag) {
-	    atSTag = sTag;
-	}
+        public void setAtSTag(Nodes sTag) {
+            atSTag = sTag;
+        }
 
-	public Nodes getAtSTag() {
-	    return atSTag;
-	}
+        public Nodes getAtSTag() {
+            return atSTag;
+        }
         
-	public void setAtETag(Nodes eTag) {
-	    atETag = eTag;
-	}
+        public void setAtETag(Nodes eTag) {
+            atETag = eTag;
+        }
 
-	public Nodes getAtETag() {
-	    return atETag;
-	}
+        public Nodes getAtETag() {
+            return atETag;
+        }
         
-	/*
-	 * Computes this custom tag's custom nesting level, which corresponds
-	 * to the number of times this custom tag is nested inside itself.
-	 *
-	 * Example:
-	 * 
-	 *  <g:h>
-	 *    <a:b> -- nesting level 0
-	 *      <c:d>
-	 *        <e:f>
-	 *          <a:b> -- nesting level 1
-	 *            <a:b> -- nesting level 2
-	 *            </a:b>
-	 *          </a:b>
-	 *          <a:b> -- nesting level 1
-	 *          </a:b>
-	 *        </e:f>
-	 *      </c:d>
-	 *    </a:b>
-	 *  </g:h>
-	 * 
-	 * @return Custom tag's nesting level
-	 */
-	private int makeCustomNestingLevel() {
-	    int n = 0;
-	    Node p = parent;
-	    while (p != null) {
-		if ((p instanceof Node.CustomTag)
-		        && qName.equals(((Node.CustomTag) p).qName)) {
-		    n++;
-		}
-		p = p.parent;
-	    }
-	    return n;
-	}
+        /*
+         * Computes this custom tag's custom nesting level, which corresponds
+         * to the number of times this custom tag is nested inside itself.
+         *
+         * Example:
+         * 
+         *  <g:h>
+         *    <a:b> -- nesting level 0
+         *      <c:d>
+         *        <e:f>
+         *          <a:b> -- nesting level 1
+         *            <a:b> -- nesting level 2
+         *            </a:b>
+         *          </a:b>
+         *          <a:b> -- nesting level 1
+         *          </a:b>
+         *        </e:f>
+         *      </c:d>
+         *    </a:b>
+         *  </g:h>
+         * 
+         * @return Custom tag's nesting level
+         */
+        private int makeCustomNestingLevel() {
+            int n = 0;
+            Node p = parent;
+            while (p != null) {
+                if ((p instanceof Node.CustomTag)
+                        && qName.equals(((Node.CustomTag) p).qName)) {
+                    n++;
+                }
+                p = p.parent;
+            }
+            return n;
+        }
 
-	/**
-	 * Returns true if this custom action has an empty body, and false
-	 * otherwise.
-	 *
-	 * A custom action is considered to have an empty body if the 
-	 * following holds true:
-	 * - getBody() returns null, or
-	 * - all immediate children are jsp:attribute actions, or
-	 * - the action's jsp:body is empty.
-	 */
-	 public boolean hasEmptyBody() {
-	     boolean hasEmptyBody = true;
-	     Nodes nodes = getBody();
-	     if (nodes != null) {
-		 int numChildNodes = nodes.size();
-		 for (int i=0; i<numChildNodes; i++) {
-		     Node n = nodes.getNode(i);
-		     if (!(n instanceof NamedAttribute)) {
-			 if (n instanceof JspBody) {
-			     hasEmptyBody = (n.getBody() == null);
-			 } else {
-			     hasEmptyBody = false;
-			 }
-			 break;
-		     }
-		 }
-	     }
+        /**
+         * Returns true if this custom action has an empty body, and false
+         * otherwise.
+         *
+         * A custom action is considered to have an empty body if the 
+         * following holds true:
+         * - getBody() returns null, or
+         * - all immediate children are jsp:attribute actions, or
+         * - the action's jsp:body is empty.
+         */
+         public boolean hasEmptyBody() {
+             boolean hasEmptyBody = true;
+             Nodes nodes = getBody();
+             if (nodes != null) {
+                 int numChildNodes = nodes.size();
+                 for (int i=0; i<numChildNodes; i++) {
+                     Node n = nodes.getNode(i);
+                     if (!(n instanceof NamedAttribute)) {
+                         if (n instanceof JspBody) {
+                             hasEmptyBody = (n.getBody() == null);
+                         } else {
+                             hasEmptyBody = false;
+                         }
+                         break;
+                     }
+                 }
+             }
 
-	     return hasEmptyBody;
-	 }
+             return hasEmptyBody;
+         }
     }
 
     /**
@@ -1724,26 +1724,26 @@
      * attribute (used by the tag plugin machinery only).
      */
     public static class AttributeGenerator extends Node {
-	String name;	// name of the attribute
-	CustomTag tag;	// The tag this attribute belongs to
+        String name;        // name of the attribute
+        CustomTag tag;        // The tag this attribute belongs to
 
-	public AttributeGenerator(Mark start, String name, CustomTag tag) {
-	    super(start, null);
-	    this.name = name;
-	    this.tag = tag;
-	}
+        public AttributeGenerator(Mark start, String name, CustomTag tag) {
+            super(start, null);
+            this.name = name;
+            this.tag = tag;
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
-	public String getName() {
-	    return name;
-	}
+        public String getName() {
+            return name;
+        }
 
-	public CustomTag getTag() {
-	    return tag;
-	}
+        public CustomTag getTag() {
+            return tag;
+        }
     }
 
     /**
@@ -1751,15 +1751,15 @@
      */
     public static class JspText extends Node {
 
-	public JspText(String qName, Attributes nonTaglibXmlnsAttrs,
-		       Attributes taglibAttrs, Mark start, Node parent) {
-	    super(qName, TEXT_ACTION, null, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
-	}
+        public JspText(String qName, Attributes nonTaglibXmlnsAttrs,
+                       Attributes taglibAttrs, Mark start, Node parent) {
+            super(qName, TEXT_ACTION, null, nonTaglibXmlnsAttrs, taglibAttrs,
+                  start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
     }
 
     /**
@@ -1774,37 +1774,36 @@
         private boolean trim = true;
         
         private ChildInfo childInfo;
-	private String name;
-	private String localName;
-	private String prefix;
+        private String name;
+        private String localName;
+        private String prefix;
 
         public NamedAttribute(Attributes attrs, Mark start, Node parent) {
-	    this(JSP_ATTRIBUTE_ACTION, attrs, null, null, start, parent);
-	}
+            this(JSP_ATTRIBUTE_ACTION, attrs, null, null, start, parent);
+        }
 
         public NamedAttribute(String qName, Attributes attrs,
-			      Attributes nonTaglibXmlnsAttrs,
-			      Attributes taglibAttrs,
-			      Mark start, Node parent) {
+                              Attributes nonTaglibXmlnsAttrs,
+                              Attributes taglibAttrs,
+                              Mark start, Node parent) {
 
             super(qName, ATTRIBUTE_ACTION, attrs, nonTaglibXmlnsAttrs,
-		  taglibAttrs, start, parent);
-            temporaryVariableName = JspUtil.nextTemporaryVariableName();
+                  taglibAttrs, start, parent);
             if( "false".equals( this.getAttributeValue( "trim" ) ) ) {
                 // (if null or true, leave default of true)
                 trim = false;
             }
             childInfo = new ChildInfo();
-	    name = this.getAttributeValue("name");
+            name = this.getAttributeValue("name");
             if (name != null) {
                 // Mandatary attribute "name" will be checked in Validator
-	        localName = name;
-	        int index = name.indexOf(':');
-	        if (index != -1) {
-		    prefix = name.substring(0, index);
-		    localName = name.substring(index+1);
+                localName = name;
+                int index = name.indexOf(':');
+                if (index != -1) {
+                    prefix = name.substring(0, index);
+                    localName = name.substring(index+1);
                 }
-	    }
+            }
         }
 
         public void accept(Visitor v) throws JasperException {
@@ -1836,42 +1835,45 @@
          *      (this probably could go elsewhere, but it's convenient here)
          */
         public String getTemporaryVariableName() {
+            if (temporaryVariableName == null) {
+                temporaryVariableName = JspUtil.nextTemporaryVariableName();
+            }
             return temporaryVariableName;
         }
 
-	/*
-	 * Get the attribute value from this named attribute (<jsp:attribute>).
-	 * Since this method is only for attributes that are not rtexpr,
-	 * we can assume the body of the jsp:attribute is a template text.
-	 */
-	public String getText() {
+        /*
+         * Get the attribute value from this named attribute (<jsp:attribute>).
+         * Since this method is only for attributes that are not rtexpr,
+         * we can assume the body of the jsp:attribute is a template text.
+         */
+        public String getText() {
 
-	    class AttributeVisitor extends Visitor {
-		String attrValue = null;
-		public void visit(TemplateText txt) {
-		    attrValue = new String(txt.getText());
-		}
-		
-		public String getAttrValue() {
-		    return attrValue;
-		}
-	    }
+            class AttributeVisitor extends Visitor {
+                String attrValue = null;
+                public void visit(TemplateText txt) {
+                    attrValue = new String(txt.getText());
+                }
+                
+                public String getAttrValue() {
+                    return attrValue;
+                }
+            }
 
-	    // According to JSP 2.0, if the body of the <jsp:attribute>
-	    // action is empty, it is equivalent of specifying "" as the value
-	    // of the attribute.
-	    String text = "";
-	    if (getBody() != null) {
-		AttributeVisitor attributeVisitor = new AttributeVisitor();
-		try {
-		    getBody().visit(attributeVisitor);
-		} catch (JasperException e) {
-		}
-		text = attributeVisitor.getAttrValue();
-	    }
-	    
-	    return text;
-	}
+            // According to JSP 2.0, if the body of the <jsp:attribute>
+            // action is empty, it is equivalent of specifying "" as the value
+            // of the attribute.
+            String text = "";
+            if (getBody() != null) {
+                AttributeVisitor attributeVisitor = new AttributeVisitor();
+                try {
+                    getBody().visit(attributeVisitor);
+                } catch (JasperException e) {
+                }
+                text = attributeVisitor.getAttrValue();
+            }
+            
+            return text;
+        }
     }
 
     /**
@@ -1886,9 +1888,9 @@
         }
 
         public JspBody(String qName, Attributes nonTaglibXmlnsAttrs,
-		       Attributes taglibAttrs, Mark start, Node parent) {
+                       Attributes taglibAttrs, Mark start, Node parent) {
             super(qName, BODY_ACTION, null, nonTaglibXmlnsAttrs, taglibAttrs,
-		  start, parent);
+                  start, parent);
             this.childInfo = new ChildInfo();
         }
 
@@ -1908,21 +1910,21 @@
 
         private ArrayList extraSmap = null;
 
-	public TemplateText(String text, Mark start, Node parent) {
-	    super(null, null, text, start, parent);
-	}
+        public TemplateText(String text, Mark start, Node parent) {
+            super(null, null, text, start, parent);
+        }
 
-	public void accept(Visitor v) throws JasperException {
-	    v.visit(this);
-	}
+        public void accept(Visitor v) throws JasperException {
+            v.visit(this);
+        }
 
         /**
          * Trim all whitespace from the left of the template text
          */
         public void ltrim() {
-	    int index = 0;
+            int index = 0;
             while ((index < text.length()) && (text.charAt(index) <= ' ')) {
-		index++;
+                index++;
             }
             text = text.substring(index);
         }
@@ -1942,19 +1944,19 @@
             text = text.substring(0, index);
         }
 
-	/**
-	 * Returns true if this template text contains whitespace only.
-	 */
-	public boolean isAllSpace() {
-	    boolean isAllSpace = true;
-	    for (int i=0; i<text.length(); i++) {
-		if (!Character.isWhitespace(text.charAt(i))) {
-		    isAllSpace = false;
-		    break;
-		}
-	    }
-	    return isAllSpace;
-	}
+        /**
+         * Returns true if this template text contains whitespace only.
+         */
+        public boolean isAllSpace() {
+            boolean isAllSpace = true;
+            for (int i=0; i<text.length(); i++) {
+                if (!Character.isWhitespace(text.charAt(i))) {
+                    isAllSpace = false;
+                    break;
+                }
+            }
+            return isAllSpace;
+        }
 
         /**
          * Add a source to Java line mapping
@@ -1988,12 +1990,12 @@
 
     public static class JspAttribute {
 
-	private String qName;
-	private String uri;
-	private String localName;
-	private String value;
-	private boolean expression;
-	private boolean dynamic;
+        private String qName;
+        private String uri;
+        private String localName;
+        private String value;
+        private boolean expression;
+        private boolean dynamic;
         private ELNode.Nodes el;
 
         // If true, this JspAttribute represents a <jsp:attribute>
@@ -2002,17 +2004,17 @@
         private NamedAttribute namedAttributeNode;
 
         JspAttribute(String qName, String uri, String localName, String value,
-		     boolean expr, ELNode.Nodes el, boolean dyn ) {
-	    this.qName = qName;
-	    this.uri = uri;
-	    this.localName = localName;
-	    this.value = value;
+                     boolean expr, ELNode.Nodes el, boolean dyn ) {
+            this.qName = qName;
+            this.uri = uri;
+            this.localName = localName;
+            this.value = value;
             this.namedAttributeNode = null;
-	    this.expression = expr;
+            this.expression = expr;
             this.el = el;
-	    this.dynamic = dyn;
+            this.dynamic = dyn;
             this.namedAttribute = false;
-	}
+        }
 
         /**
          * Use this constructor if the JspAttribute represents a
@@ -2021,47 +2023,47 @@
          */
         JspAttribute(NamedAttribute na, boolean dyn) {
             this.qName = na.getName();
-	    this.localName = na.getLocalName();
+            this.localName = na.getLocalName();
             this.value = null;
             this.namedAttributeNode = na;
             this.expression = false;
             this.el = null;
-	    this.dynamic = dyn;
+            this.dynamic = dyn;
             this.namedAttribute = true;
         }
 
-	/**
- 	 * @return The name of the attribute
-	 */
-	public String getName() {
-	    return qName;
-	}
+        /**
+          * @return The name of the attribute
+         */
+        public String getName() {
+            return qName;
+        }
 
-	/**
- 	 * @return The local name of the attribute
-	 */
-	public String getLocalName() {
-	    return localName;
-	}
+        /**
+          * @return The local name of the attribute
+         */
+        public String getLocalName() {
+            return localName;
+        }
 
-	/**
- 	 * @return The namespace of the attribute, or null if in the default
-	 * namespace
-	 */
-	public String getURI() {
-	    return uri;
-	}
+        /**
+          * @return The namespace of the attribute, or null if in the default
+         * namespace
+         */
+        public String getURI() {
+            return uri;
+        }
 
-	/**
+        /**
          * Only makes sense if namedAttribute is false.
          *
          * @return the value for the attribute, or the expression string
          *         (stripped of "<%=", "%>", "%=", or "%"
          *          but containing "${" and "}" for EL expressions)
-	 */
-	public String getValue() {
-	    return value;
-	}
+         */
+        public String getValue() {
+            return value;
+        }
 
         /**
          * Only makes sense if namedAttribute is true.
@@ -2072,12 +2074,12 @@
             return namedAttributeNode;
         }
 
-	/**
+        /**
          * @return true if the value represents a traditional rtexprvalue
-	 */
-	public boolean isExpression() {
-	    return expression;
-	}
+         */
+        public boolean isExpression() {
+            return expression;
+        }
 
         /**
          * @return true if the value represents a NamedAttribute value.
@@ -2096,24 +2098,24 @@
             return el != null;
         }
 
-	/**
-	 * @return true if the value is a string literal known at translation
-	 * time.
-	 */
-	public boolean isLiteral() {
-	    return !expression && (el != null) && !namedAttribute;
-	}
+        /**
+         * @return true if the value is a string literal known at translation
+         * time.
+         */
+        public boolean isLiteral() {
+            return !expression && (el != null) && !namedAttribute;
+        }
 
-	/**
-	 * XXX
-	 */
-	public boolean isDynamic() {
-	    return dynamic;
-	}
+        /**
+         * XXX
+         */
+        public boolean isDynamic() {
+            return dynamic;
+        }
 
-	public ELNode.Nodes getEL() {
-	    return el;
-	}
+        public ELNode.Nodes getEL() {
+            return el;
+        }
     }
 
     /**
@@ -2122,73 +2124,73 @@
      */
     public static class Nodes {
 
-	private List list;
-	private Node.Root root;		// null if this is not a page
-	private boolean generatedInBuffer;
+        private List list;
+        private Node.Root root;                // null if this is not a page
+        private boolean generatedInBuffer;
 
-	public Nodes() {
-	    list = new Vector();
-	}
+        public Nodes() {
+            list = new Vector();
+        }
 
-	public Nodes(Node.Root root) {
-	    this.root = root;
-	    list = new Vector();
-	    list.add(root);
-	}
+        public Nodes(Node.Root root) {
+            this.root = root;
+            list = new Vector();
+            list.add(root);
+        }
 
-	/**
-	 * Appends a node to the list
-	 * @param n The node to add
-	 */
-	public void add(Node n) {
-	    list.add(n);
-	    root = null;
-	}
+        /**
+         * Appends a node to the list
+         * @param n The node to add
+         */
+        public void add(Node n) {
+            list.add(n);
+            root = null;
+        }
 
-	/**
-	 * Removes the given node from the list.
-	 * @param n The node to be removed
-	 */
-	public void remove(Node n) {
-	    list.remove(n);
-	}
+        /**
+         * Removes the given node from the list.
+         * @param n The node to be removed
+         */
+        public void remove(Node n) {
+            list.remove(n);
+        }
 
-	/**
-	 * Visit the nodes in the list with the supplied visitor
-	 * @param v The visitor used
-	 */
-	public void visit(Visitor v) throws JasperException {
-	    Iterator iter = list.iterator();
-	    while (iter.hasNext()) {
-		Node n = (Node) iter.next();
-		n.accept(v);
-	    }
-	}
+        /**
+         * Visit the nodes in the list with the supplied visitor
+         * @param v The visitor used
+         */
+        public void visit(Visitor v) throws JasperException {
+            Iterator iter = list.iterator();
+            while (iter.hasNext()) {
+                Node n = (Node) iter.next();
+                n.accept(v);
+            }
+        }
 
-	public int size() {
-	    return list.size();
-	}
+        public int size() {
+            return list.size();
+        }
 
-	public Node getNode(int index) {
-	    Node n = null;
-	    try {
-		n = (Node) list.get(index);
-	    } catch (ArrayIndexOutOfBoundsException e) {
-	    }
-	    return n;
-	}
-	
-	public Node.Root getRoot() {
-	    return root;
-	}
+        public Node getNode(int index) {
+            Node n = null;
+            try {
+                n = (Node) list.get(index);
+            } catch (ArrayIndexOutOfBoundsException e) {
+            }
+            return n;
+        }
+        
+        public Node.Root getRoot() {
+            return root;
+        }
 
-	public boolean isGeneratedInBuffer() {
-	    return generatedInBuffer;
-	}
+        public boolean isGeneratedInBuffer() {
+            return generatedInBuffer;
+        }
 
-	public void setGeneratedInBuffer(boolean g) {
-	    generatedInBuffer = g;
-	}
+        public void setGeneratedInBuffer(boolean g) {
+            generatedInBuffer = g;
+        }
     }
 
     /**
@@ -2199,141 +2201,141 @@
      */
     public static class Visitor {
 
-	/**
-	 * This method provides a place to put actions that are common to
-	 * all nodes. Override this in the child visitor class if need to.
-	 */
-	protected void doVisit(Node n) throws JasperException {
-	}
+        /**
+         * This method provides a place to put actions that are common to
+         * all nodes. Override this in the child visitor class if need to.
+         */
+        protected void doVisit(Node n) throws JasperException {
+        }
 
-	/**
-	 * Visit the body of a node, using the current visitor
-	 */
-	protected void visitBody(Node n) throws JasperException {
-	    if (n.getBody() != null) {
-		n.getBody().visit(this);
-	    }
-	}
+        /**
+         * Visit the body of a node, using the current visitor
+         */
+        protected void visitBody(Node n) throws JasperException {
+            if (n.getBody() != null) {
+                n.getBody().visit(this);
+            }
+        }
 
-	public void visit(Root n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(Root n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(JspRoot n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(JspRoot n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(PageDirective n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(PageDirective n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(TagDirective n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(TagDirective n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(IncludeDirective n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(IncludeDirective n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(TaglibDirective n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(TaglibDirective n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(AttributeDirective n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(AttributeDirective n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(VariableDirective n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(VariableDirective n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(Comment n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(Comment n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(Declaration n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(Declaration n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(Expression n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(Expression n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(Scriptlet n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(Scriptlet n) throws JasperException {
+            doVisit(n);
+        }
 
         public void visit(ELExpression n) throws JasperException {
             doVisit(n);
         }
 
-	public void visit(IncludeAction n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(IncludeAction n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(ForwardAction n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(ForwardAction n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(GetProperty n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(GetProperty n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(SetProperty n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(SetProperty n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(ParamAction n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(ParamAction n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(ParamsAction n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(ParamsAction n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(FallBackAction n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(FallBackAction n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(UseBean n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(UseBean n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(PlugIn n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(PlugIn n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(CustomTag n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(CustomTag n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(UninterpretedTag n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(UninterpretedTag n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(JspElement n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(JspElement n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
-	public void visit(JspText n) throws JasperException {
-	    doVisit(n);
-	    visitBody(n);
-	}
+        public void visit(JspText n) throws JasperException {
+            doVisit(n);
+            visitBody(n);
+        }
 
         public void visit(NamedAttribute n) throws JasperException {
             doVisit(n);
@@ -2355,16 +2357,16 @@
             visitBody(n);
         }
 
-	public void visit(TemplateText n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(TemplateText n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(JspOutput n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(JspOutput n) throws JasperException {
+            doVisit(n);
+        }
 
-	public void visit(AttributeGenerator n) throws JasperException {
-	    doVisit(n);
-	}
+        public void visit(AttributeGenerator n) throws JasperException {
+            doVisit(n);
+        }
     }
 }

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/Validator.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/Validator.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/compiler/Validator.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -962,7 +962,7 @@
                                                         null,
                                                         false);
                         }
-                        if (jspAttrs[i].isExpression()) {
+                        if (isExpression(n, attrs.getValue(i))) {
                             tagDataAttrs.put(attrs.getQName(i),
                                              TagData.REQUEST_TIME_VALUE);
                         } else {

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings.properties
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,20 @@
-# $Id: LocalStrings.properties 451835 2006-10-01 23:02:49Z markt $
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
 #
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# $Id: LocalStrings.properties 565193 2007-08-12 22:53:10Z markt $
+#
 # Default localized string information
 # Localized this the Default Locale as is en_US
 
@@ -301,6 +316,7 @@
 #Error when compiling, used for jsp line number error messages
 jsp.error.single.line.number=An error occurred at line: {0} in the jsp file: {1}
 jsp.error.multiple.line.number=\n\nAn error occurred between lines: {0} and {1} in the jsp file: {2}\n\n
+jsp.error.java.line.number=An error occurred at line: {0} in the generated java file
 jsp.error.corresponding.servlet=Generated servlet error:\n
 jsp.error.empty.body.not.allowed=Empty body not allowed for {0}
 jsp.error.jspbody.required=Must use jsp:body to specify tag body for {0} if jsp:attribute is used.

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_es.properties
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_es.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_es.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,20 @@
-# $Id: LocalStrings_es.properties 349479 2005-11-28 19:44:47Z yoavs $
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
 #
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# $Id: LocalStrings_es.properties 565193 2007-08-12 22:53:10Z markt $
+#
 # Default localized string information
 # Localized para Locale es_ES
 

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_fr.properties
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_fr.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_fr.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,20 @@
-# $Id: LocalStrings_fr.properties 349479 2005-11-28 19:44:47Z yoavs $
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
 #
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# $Id: LocalStrings_fr.properties 565193 2007-08-12 22:53:10Z markt $
+#
 # Default localized string information
 # Localized this the Default Locale as is fr_FR
 

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_ja.properties
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_ja.properties	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/resources/LocalStrings_ja.properties	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,20 @@
-# $Id: LocalStrings_ja.properties 349479 2005-11-28 19:44:47Z yoavs $
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
 #
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# $Id: LocalStrings_ja.properties 565193 2007-08-12 22:53:10Z markt $
+#
 # Default localized string information
 # Localized this the Default Locale as is ja_JP
 
@@ -7,7 +22,7 @@
 jsp.error.no.scratch.dir=JSP\u30a8\u30f3\u30b8\u30f3\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u306escratchDir\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\
 \n \u3053\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306eservlets.properties\u30d5\u30a1\u30a4\u30eb\u306b\u3001\
 \n \"jsp.initparams=scratchdir=<dir-name>\" \u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-jsp.error.bad.scratch.dir=\u3042\u306a\u305f\u304c\u6307\u5b9a\u3057\u305fscratchDir\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
+jsp.error.bad.scratch.dir=\u3042\u306a\u305f\u304c\u6307\u5b9a\u3057\u305fscratchDir: {0} \u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
 jsp.message.scratch.dir.is=JSP\u30a8\u30f3\u30b8\u30f3\u306eScratchdir: {0}
 jsp.message.parent_class_loader_is=\u89aa\u30af\u30e9\u30b9\u30ed\u30fc\u30c0: {0}
 jsp.message.dont.modify.servlets=\u91cd\u8981: \u751f\u6210\u3055\u308c\u305f\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u3092\u5909\u66f4\u3057\u3066\u306f\u3044\u3051\u307e\u305b\u3093

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/runtime/PageContextImpl.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/runtime/PageContextImpl.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/runtime/PageContextImpl.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -46,8 +46,6 @@
 
 import org.apache.commons.el.ExpressionEvaluatorImpl;
 import org.apache.commons.el.VariableResolverImpl;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.jasper.Constants;
 import org.apache.jasper.compiler.Localizer;
 import org.apache.jasper.security.SecurityUtil;
@@ -65,9 +63,6 @@
  */
 public class PageContextImpl extends PageContext implements VariableResolver {
 
-    // Logger
-    private Log log;
-
     // The expression evaluator, for evaluating EL expressions.
     private static ExpressionEvaluatorImpl elExprEval
         = new ExpressionEvaluatorImpl(false);
@@ -101,8 +96,6 @@
      * Constructor.
      */
     PageContextImpl(JspFactory factory) {
-        log = LogFactory.getLog(getClass());
-
         this.variableResolver = new VariableResolverImpl(this);
         this.outs = new BodyContentImpl[0];
         this.attributes = new Hashtable(16);
@@ -135,8 +128,9 @@
         this.context = config.getServletContext();
         this.errorPageURL = errorPageURL;
         this.request = request;
-         this.response = response;
+        this.response = response;
 
+
         // Setup session (if required)
         if (request instanceof HttpServletRequest && needsSession)
             this.session = ((HttpServletRequest)request).getSession();
@@ -185,7 +179,8 @@
                 ((JspWriterImpl)out).flushBuffer();
             }
         } catch (IOException ex) {
-            log.warn("Internal error flushing the buffer in release()");
+            context.log(
+                "PageContextImpl.release(): Internal error flushing buffer");
         }
 
         servlet = null;

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JasperLoader.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JasperLoader.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JasperLoader.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -37,8 +37,6 @@
 public class JasperLoader extends URLClassLoader {
 
     private PermissionCollection permissionCollection;
-    private CodeSource codeSource;
-    private String className;
     private ClassLoader parent;
     private SecurityManager securityManager;
 
@@ -47,7 +45,6 @@
 			CodeSource codeSource) {
 	super(urls, parent);
 	this.permissionCollection = permissionCollection;
-	this.codeSource = codeSource;
 	this.parent = parent;
 	this.securityManager = System.getSecurityManager();
     }

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JspServlet.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JspServlet.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JspServlet.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -300,8 +300,22 @@
                     // Check if the requested JSP page exists, to avoid
                     // creating unnecessary directories and files.
                     if (null == context.getResource(jspUri)) {
-                        response.sendError(HttpServletResponse.SC_NOT_FOUND,
-                                           request.getRequestURI());
+                        String includeRequestUri = (String)
+                        request.getAttribute("javax.servlet.include.request_uri");
+                        if (includeRequestUri != null) {
+                            // This file was included. Throw an exception as
+                            // a response.sendError() will be ignored
+                            throw new ServletException(Localizer.getMessage(
+                                    "jsp.error.file.not.found",jspUri));
+                        } else {
+                            try {
+                                response.sendError(HttpServletResponse.SC_NOT_FOUND,
+                                        request.getRequestURI());
+                        } catch (IllegalStateException ise) {
+                            log.error(Localizer.getMessage("jsp.error.file.not.found",
+                                   jspUri));
+                        }
+                    }
                         return;
                     }
                     boolean isErrorPage = exception != null;

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JspServletWrapper.java
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JspServletWrapper.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/JspServletWrapper.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -31,8 +31,6 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.jsp.tagext.TagInfo;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
 import org.apache.jasper.Options;
@@ -62,9 +60,6 @@
 
 public class JspServletWrapper {
 
-    // Logger
-    private Log log = LogFactory.getLog(JspServletWrapper.class);
-
     private Servlet theServlet;
     private String jspUri;
     private Class servletClass;
@@ -137,21 +132,23 @@
                     // This is to maintain the original protocol.
                     destroy();
                     
+                    Servlet servlet = null;
                     try {
                         servletClass = ctxt.load();
-                        theServlet = (Servlet) servletClass.newInstance();
+                        servlet = (Servlet) servletClass.newInstance();
                     } catch( IllegalAccessException ex1 ) {
                         throw new JasperException( ex1 );
                     } catch( InstantiationException ex ) {
                         throw new JasperException( ex );
                     }
                     
-                    theServlet.init(config);
+                    servlet.init(config);
 
                     if (!firstTime) {
                         ctxt.getRuntimeContext().incrementJspReloadCount();
                     }
 
+                    theServlet = servlet;
                     reload = false;
                 }
             }    
@@ -282,10 +279,16 @@
             }
 
             if ((available > 0L) && (available < Long.MAX_VALUE)) {
-                response.setDateHeader("Retry-After", available);
-                response.sendError
-                    (HttpServletResponse.SC_SERVICE_UNAVAILABLE,
-                     Localizer.getMessage("jsp.error.unavailable"));
+                if (available > System.currentTimeMillis()) {
+                    response.setDateHeader("Retry-After", available);
+                    response.sendError
+                        (HttpServletResponse.SC_SERVICE_UNAVAILABLE,
+                         Localizer.getMessage("jsp.error.unavailable"));
+                    return;
+                } else {
+                    // Wait period has expired. Reset.
+                    available = 0;
+                }
             }
 
             /*
@@ -347,25 +350,6 @@
                     (HttpServletResponse.SC_SERVICE_UNAVAILABLE, 
                      ex.getMessage());
             }
-        } catch (FileNotFoundException ex) {
-            ctxt.incrementRemoved();
-            String includeRequestUri = (String)
-                request.getAttribute("javax.servlet.include.request_uri");
-            if (includeRequestUri != null) {
-                // This file was included. Throw an exception as
-                // a response.sendError() will be ignored by the
-                // servlet engine.
-                throw new ServletException(ex);
-            } else {
-                try {
-                    response.sendError(HttpServletResponse.SC_NOT_FOUND, 
-                                      ex.getMessage());
-                } catch (IllegalStateException ise) {
-                    log.error(Localizer.getMessage("jsp.error.file.not.found",
-						   ex.getMessage()),
-			      ex);
-                }
-            }
         } catch (ServletException ex) {
             if(options.getDevelopment()) {
                 throw handleJspException(ex);

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/mbeans-descriptors.xml
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/mbeans-descriptors.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/servlet/mbeans-descriptors.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,4 +1,20 @@
 <?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <mbeans-descriptors>
 
   <mbean         name="JspMonitor"

Modified: trunk/tomcat5.5/jasper/src/share/org/apache/jasper/tagplugins/jstl/tagPlugins.xml
===================================================================
--- trunk/tomcat5.5/jasper/src/share/org/apache/jasper/tagplugins/jstl/tagPlugins.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/jasper/src/share/org/apache/jasper/tagplugins/jstl/tagPlugins.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <tag-plugins>
   <tag-plugin>
     <tag-class>org.apache.taglibs.standard.tag.rt.core.IfTag</tag-class>

Modified: trunk/tomcat5.5/servletapi/jsr152/BUILDING.txt
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/BUILDING.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/BUILDING.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,6 +1,23 @@
-$Id: BUILDING.txt 266968 2002-08-13 16:20:53Z remm $
+================================================================================
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
 
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+================================================================================
+
+$Id: BUILDING.txt 565189 2007-08-12 22:44:35Z markt $
+
+
                Building The Java Servlet and JSP API Classes
                =============================================
 

Modified: trunk/tomcat5.5/servletapi/jsr152/README.txt
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/README.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/README.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,22 @@
-$Id: README.txt 266968 2002-08-13 16:20:53Z remm $
+================================================================================
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+================================================================================
+
+$Id: README.txt 565189 2007-08-12 22:44:35Z markt $
+
                       Java Servlet and JSP API Classes
                       ================================
 

Modified: trunk/tomcat5.5/servletapi/jsr152/build.xml
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="JSP API Classes" default="compile" basedir=".">
 
 

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/WEB-INF/classes/sessions/DummyCart.java
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/WEB-INF/classes/sessions/DummyCart.java	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/WEB-INF/classes/sessions/DummyCart.java	2007-10-03 19:12:01 UTC (rev 4300)
@@ -16,9 +16,7 @@
 */
 package sessions;
 
-import javax.servlet.http.*;
 import java.util.Vector;
-import java.util.Enumeration;
 
 public class DummyCart {
     Vector v = new Vector();
@@ -26,45 +24,42 @@
     String item = null;
     
     private void addItem(String name) {
-	v.addElement(name);
+        v.addElement(name);
     }
 
     private void removeItem(String name) {
-	v.removeElement(name);
+        v.removeElement(name);
     }
 
     public void setItem(String name) {
-	item = name;
+        item = name;
     }
     
     public void setSubmit(String s) {
-	submit = s;
+        submit = s;
     }
 
     public String[] getItems() {
-	String[] s = new String[v.size()];
-	v.copyInto(s);
-	return s;
+        String[] s = new String[v.size()];
+        v.copyInto(s);
+        return s;
     }
     
-    public void processRequest(HttpServletRequest request) {
-	// null value for submit - user hit enter instead of clicking on 
-	// "add" or "remove"
-	if (submit == null) 
-	    addItem(item);
-
-	if (submit.equals("add"))
-	    addItem(item);
-	else if (submit.equals("remove")) 
-	    removeItem(item);
-	
-	// reset at the end of the request
-	reset();
+    public void processRequest() {
+        // null value for submit - user hit enter instead of clicking on 
+        // "add" or "remove"
+        if (submit == null || submit.equals("add"))
+            addItem(item);
+        else if (submit.equals("remove")) 
+            removeItem(item);
+        
+        // reset at the end of the request
+        reset();
     }
 
     // reset
     private void reset() {
-	submit = null;
-	item = null;
+        submit = null;
+        item = null;
     }
 }

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/forward/forward.jsp
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/forward/forward.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/forward/forward.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,19 @@
 <html>
 <!--
-  Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  reserved.
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
 -->
 
 <% 

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/forward/fwd.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/forward/fwd.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/forward/fwd.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,19 @@
 <html>
 <!--
-  Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  reserved.
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
 -->
 <head>
 <title>Untitled Document</title>

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/forward/one.jsp
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/forward/one.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/forward/one.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,19 @@
 <html>
 <!--
-  Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  reserved.
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
 -->
 
 <body bgcolor="white">

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/forward/two.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/forward/two.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/forward/two.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,19 @@
 <html>
 <!--
-  Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  reserved.
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
 -->
 
 <body bgcolor="white">

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/index.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/index.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/index.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,6 +1,6 @@
 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
 <html>
-\<!--
+<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/el/implicit-objects.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/el/implicit-objects.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/el/implicit-objects.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,19 @@
 <html>
 <!--
-  Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  reserved.
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
 -->
 <head>
 <title>View Source Code</title>

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/jspx/basic.jspx
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/jspx/basic.jspx	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/jspx/basic.jspx	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <tags:xhtmlbasic xmlns:tags="urn:jsptagdir:/WEB-INF/tags"
                  xmlns:jsp="http://java.sun.com/JSP/Page"
                  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/jspx/textRotate.jspx
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/jspx/textRotate.jspx	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/jspx/textRotate.jspx	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <!-- 
   - This example is based off the textRotate.svg example that comes
   - with Batik.  The original example was written by Bill Haneman.

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/misc/coda.jspf
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/misc/coda.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/misc/coda.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <hr>
 <center>
 This banner included with &lt;include-coda&gt;

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/misc/prelude.jspf
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/misc/prelude.jspf	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/misc/prelude.jspf	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,19 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <hr>
 <center>
 This banner included with &lt;include-prelude&gt;

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/tagfiles/products.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/tagfiles/products.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/jsp2/tagfiles/products.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,7 +1,19 @@
 <html>
 <!--
-  Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  reserved.
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
 -->
 <head>
 <title>View Source Code</title>

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/security/protected/index.jsp
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/security/protected/index.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/security/protected/index.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -27,14 +27,16 @@
 </head>
 <body bgcolor="white">
 
-You are logged in as remote user <b><%= request.getRemoteUser() %></b>
+You are logged in as remote user
+<b><%= util.HTMLFilter.filter(request.getRemoteUser()) %></b>
 in session <b><%= session.getId() %></b><br><br>
 
 <%
   if (request.getUserPrincipal() != null) {
 %>
     Your user principal name is
-    <b><%= request.getUserPrincipal().getName() %></b><br><br>
+    <b><%= util.HTMLFilter.filter(request.getUserPrincipal().getName()) %></b>
+    <br><br>
 <%
   } else {
 %>

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/sessions/carts.jsp
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/sessions/carts.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/sessions/carts.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -20,7 +20,7 @@
 
 <jsp:setProperty name="cart" property="*" />
 <%
-	cart.processRequest(request);
+	cart.processRequest();
 %>
 
 

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/snp/snoop.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/snp/snoop.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/snp/snoop.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -24,8 +24,8 @@
 <body bgcolor="#FFFFFF">
 <p><font color="#0000FF"><a href="snoop.jsp"><img src="../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
 
-<h3><a href="snoop.jsp.html">Source Code for Request Parameters Example<font color="#0000FF"></a>
-  </font> </h3>
+<h3><a href="snoop.jsp.html">Source Code for Request Parameters Example<font color="#0000FF">
+  </font></a></h3>
 
 </body>
 </html>

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/snp/snoop.jsp
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/snp/snoop.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/snp/snoop.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -19,37 +19,38 @@
 <body bgcolor="white">
 <h1> Request Information </h1>
 <font size="4">
-JSP Request Method: <% out.print(util.HTMLFilter.filter(request.getMethod())); %>
+JSP Request Method: <%= util.HTMLFilter.filter(request.getMethod()) %>
 <br>
-Request URI: <%= request.getRequestURI() %>
+Request URI: <%= util.HTMLFilter.filter(request.getRequestURI()) %>
 <br>
-Request Protocol: <%= request.getProtocol() %>
+Request Protocol: <%= util.HTMLFilter.filter(request.getProtocol()) %>
 <br>
-Servlet path: <%= request.getServletPath() %>
+Servlet path: <%= util.HTMLFilter.filter(request.getServletPath()) %>
 <br>
-Path info: <% out.print(util.HTMLFilter.filter(request.getPathInfo())); %>
+Path info: <%= util.HTMLFilter.filter(request.getPathInfo()) %>
 <br>
-Query string: <% out.print(util.HTMLFilter.filter(request.getQueryString())); %>
+Query string: <%= util.HTMLFilter.filter(request.getQueryString()) %>
 <br>
 Content length: <%= request.getContentLength() %>
 <br>
-Content type: <% out.print(util.HTMLFilter.filter(request.getContentType())); %>
+Content type: <%= util.HTMLFilter.filter(request.getContentType()) %>
 <br>
-Server name: <%= request.getServerName() %>
+Server name: <%= util.HTMLFilter.filter(request.getServerName()) %>
 <br>
 Server port: <%= request.getServerPort() %>
 <br>
-Remote user: <%= request.getRemoteUser() %>
+Remote user: <%= util.HTMLFilter.filter(request.getRemoteUser()) %>
 <br>
-Remote address: <%= request.getRemoteAddr() %>
+Remote address: <%= util.HTMLFilter.filter(request.getRemoteAddr()) %>
 <br>
-Remote host: <%= request.getRemoteHost() %>
+Remote host: <%= util.HTMLFilter.filter(request.getRemoteHost()) %>
 <br>
-Authorization scheme: <%= request.getAuthType() %> 
+Authorization scheme: <%= util.HTMLFilter.filter(request.getAuthType()) %> 
 <br>
 Locale: <%= request.getLocale() %>
 <hr>
-The browser you are using is <% out.print(util.HTMLFilter.filter(request.getHeader("User-Agent"))); %>
+The browser you are using is
+<%= util.HTMLFilter.filter(request.getHeader("User-Agent")) %>
 <hr>
 </font>
 </body>

Modified: trunk/tomcat5.5/servletapi/jsr152/examples/source.jsp
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/examples/source.jsp	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/examples/source.jsp	2007-10-03 19:12:01 UTC (rev 4300)
@@ -17,4 +17,4 @@
 <%@ taglib uri="http://jakarta.apache.org/tomcat/examples-taglib"
         prefix="eg" %>
 
-<eg:ShowSource jspFile="<%= request.getQueryString() %>"/>
+<eg:ShowSource jspFile="<%= util.HTMLFilter.filter(request.getQueryString()) %>"/>

Modified: trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/el/package.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/el/package.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/el/package.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,61 +1,21 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 <html>
-<head>
 <!--
-  - The Apache Software License, Version 1.1
-  -
-  - Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  - reserved.
-  -
-  - Redistribution and use in source and binary forms, with or without
-  - modification, are permitted provided that the following conditions
-  - are met:
-  -
-  - 1. Redistributions of source code must retain the above copyright
-  -    notice, this list of conditions and the following disclaimer. 
-  -
-  - 2. Redistributions in binary form must reproduce the above copyright
-  -    notice, this list of conditions and the following disclaimer in
-  -    the documentation and/or other materials provided with the
-  -    distribution.
-  -
-  - 3. The end-user documentation included with the redistribution, if
-  -    any, must include the following acknowlegement:  
-  -       "This product includes software developed by the 
-  -        Apache Software Foundation (http://www.apache.org/)."
-  -    Alternately, this acknowlegement may appear in the software itself,
-  -    if and wherever such third-party acknowlegements normally appear.
-  -
-  - 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
-  -    Foundation" must not be used to endorse or promote products derived
-  -    from this software without prior written permission. For written 
-  -    permission, please contact apache at apache.org.
-  -
-  - 5. Products derived from this software may not be called "Apache"
-  -    nor may "Apache" appear in their names without prior written
-  -    permission of the Apache Group.
-  -
-  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-  - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-  - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  - DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
-  - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-  - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-  - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  - SUCH DAMAGE.
-  - ====================================================================
-  -
-  - This software consists of voluntary contributions made by many
-  - individuals on behalf of the Apache Software Foundation.  For more
-  - information on the Apache Software Foundation, please see
-  - <http://www.apache.org/>.
-  -
-  -->
-</head>
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <body bgcolor="white">
 
 Classes and interfaces for the JSP 2.0 Expression Language API.

Modified: trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/package.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/package.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/package.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,61 +1,21 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 <html>
-<head>
 <!--
-  - The Apache Software License, Version 1.1
-  -
-  - Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  - reserved.
-  -
-  - Redistribution and use in source and binary forms, with or without
-  - modification, are permitted provided that the following conditions
-  - are met:
-  -
-  - 1. Redistributions of source code must retain the above copyright
-  -    notice, this list of conditions and the following disclaimer. 
-  -
-  - 2. Redistributions in binary form must reproduce the above copyright
-  -    notice, this list of conditions and the following disclaimer in
-  -    the documentation and/or other materials provided with the
-  -    distribution.
-  -
-  - 3. The end-user documentation included with the redistribution, if
-  -    any, must include the following acknowlegement:  
-  -       "This product includes software developed by the 
-  -        Apache Software Foundation (http://www.apache.org/)."
-  -    Alternately, this acknowlegement may appear in the software itself,
-  -    if and wherever such third-party acknowlegements normally appear.
-  -
-  - 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
-  -    Foundation" must not be used to endorse or promote products derived
-  -    from this software without prior written permission. For written 
-  -    permission, please contact apache at apache.org.
-  -
-  - 5. Products derived from this software may not be called "Apache"
-  -    nor may "Apache" appear in their names without prior written
-  -    permission of the Apache Group.
-  -
-  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-  - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-  - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  - DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
-  - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-  - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-  - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  - SUCH DAMAGE.
-  - ====================================================================
-  -
-  - This software consists of voluntary contributions made by many
-  - individuals on behalf of the Apache Software Foundation.  For more
-  - information on the Apache Software Foundation, please see
-  - <http://www.apache.org/>.
-  -
-  -->
-</head>
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <body bgcolor="white">
 Classes and interfaces for the Core JSP 2.0 API.
 <p>

Modified: trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/tagext/package.html
===================================================================
--- trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/tagext/package.html	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr152/src/share/javax/servlet/jsp/tagext/package.html	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,61 +1,21 @@
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 <html>
-<head>
 <!--
-  - The Apache Software License, Version 1.1
-  -
-  - Copyright (c) 1999 The Apache Software Foundation.  All rights 
-  - reserved.
-  -
-  - Redistribution and use in source and binary forms, with or without
-  - modification, are permitted provided that the following conditions
-  - are met:
-  -
-  - 1. Redistributions of source code must retain the above copyright
-  -    notice, this list of conditions and the following disclaimer. 
-  -
-  - 2. Redistributions in binary form must reproduce the above copyright
-  -    notice, this list of conditions and the following disclaimer in
-  -    the documentation and/or other materials provided with the
-  -    distribution.
-  -
-  - 3. The end-user documentation included with the redistribution, if
-  -    any, must include the following acknowlegement:  
-  -       "This product includes software developed by the 
-  -        Apache Software Foundation (http://www.apache.org/)."
-  -    Alternately, this acknowlegement may appear in the software itself,
-  -    if and wherever such third-party acknowlegements normally appear.
-  -
-  - 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
-  -    Foundation" must not be used to endorse or promote products derived
-  -    from this software without prior written permission. For written 
-  -    permission, please contact apache at apache.org.
-  -
-  - 5. Products derived from this software may not be called "Apache"
-  -    nor may "Apache" appear in their names without prior written
-  -    permission of the Apache Group.
-  -
-  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
-  - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-  - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  - DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
-  - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-  - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-  - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
-  - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-  - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-  - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-  - SUCH DAMAGE.
-  - ====================================================================
-  -
-  - This software consists of voluntary contributions made by many
-  - individuals on behalf of the Apache Software Foundation.  For more
-  - information on the Apache Software Foundation, please see
-  - <http://www.apache.org/>.
-  -
-  -->
-</head>
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <body bgcolor="white">
 
 Classes and interfaces for the definition of JavaServer Pages Tag Libraries.

Modified: trunk/tomcat5.5/servletapi/jsr154/BUILDING.txt
===================================================================
--- trunk/tomcat5.5/servletapi/jsr154/BUILDING.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr154/BUILDING.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,6 +1,23 @@
-$Id: BUILDING.txt 266968 2002-08-13 16:20:53Z remm $
+================================================================================
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
 
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+================================================================================
+
+$Id: BUILDING.txt 565189 2007-08-12 22:44:35Z markt $
+
+
                Building The Java Servlet and JSP API Classes
                =============================================
 

Modified: trunk/tomcat5.5/servletapi/jsr154/README.txt
===================================================================
--- trunk/tomcat5.5/servletapi/jsr154/README.txt	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr154/README.txt	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,5 +1,22 @@
-$Id: README.txt 266968 2002-08-13 16:20:53Z remm $
+================================================================================
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
 
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+================================================================================
+
+$Id: README.txt 565189 2007-08-12 22:44:35Z markt $
+
                       Java Servlet and JSP API Classes
                       ================================
 

Modified: trunk/tomcat5.5/servletapi/jsr154/build.xml
===================================================================
--- trunk/tomcat5.5/servletapi/jsr154/build.xml	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr154/build.xml	2007-10-03 19:12:01 UTC (rev 4300)
@@ -1,3 +1,20 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
 <project name="Servlet API Classes" default="compile" basedir=".">
 
 

Modified: trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/j2ee_1_4.xsd
===================================================================
--- trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/j2ee_1_4.xsd	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/j2ee_1_4.xsd	2007-10-03 19:12:01 UTC (rev 4300)
@@ -28,40 +28,6 @@
     </xsd:documentation>
   </xsd:annotation>
 
-  <xsd:annotation>
-    <xsd:documentation>
-
-      Copyright 2002 Sun Microsystems, Inc., 901 San Antonio
-      Road, Palo Alto, California 94303, U.S.A. All rights
-      reserved.
-
-      Sun Microsystems, Inc. has intellectual property rights
-      relating to technology described in this document. In
-      particular, and without limitation, these intellectual
-      property rights may include one or more of the U.S. patents
-      listed at http://www.sun.com/patents and one or more
-      additional patents or pending patent applications in the
-      U.S. and other countries.
-
-      This document and the technology which it describes are
-      distributed under licenses restricting their use, copying,
-      distribution, and decompilation. No part of this document
-      may be reproduced in any form by any means without prior
-      written authorization of Sun and its licensors, if any.
-
-      Third-party software, including font technology, is
-      copyrighted and licensed from Sun suppliers.
-
-      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
-      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-      Cup logo are trademarks or registered trademarks of Sun
-      Microsystems, Inc. in the U.S. and other countries.
-
-      Federal Acquisitions: Commercial Software - Government Users
-      Subject to Standard License Terms and Conditions.
-
-    </xsd:documentation>
-  </xsd:annotation>
 <xsd:annotation>
 <xsd:documentation>
 

Modified: trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/jsp_2_0.xsd
===================================================================
--- trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/jsp_2_0.xsd	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/jsp_2_0.xsd	2007-10-03 19:12:01 UTC (rev 4300)
@@ -31,41 +31,6 @@
   <xsd:annotation>
     <xsd:documentation>
 
-      Copyright 2002 Sun Microsystems, Inc., 901 San Antonio
-      Road, Palo Alto, California 94303, U.S.A. All rights
-      reserved.
-
-      Sun Microsystems, Inc. has intellectual property rights
-      relating to technology described in this document. In
-      particular, and without limitation, these intellectual
-      property rights may include one or more of the U.S. patents
-      listed at http://www.sun.com/patents and one or more
-      additional patents or pending patent applications in the
-      U.S. and other countries.
-
-      This document and the technology which it describes are
-      distributed under licenses restricting their use, copying,
-      distribution, and decompilation. No part of this document
-      may be reproduced in any form by any means without prior
-      written authorization of Sun and its licensors, if any.
-
-      Third-party software, including font technology, is
-      copyrighted and licensed from Sun suppliers.
-
-      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
-      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-      Cup logo are trademarks or registered trademarks of Sun
-      Microsystems, Inc. in the U.S. and other countries.
-
-      Federal Acquisitions: Commercial Software - Government Users
-      Subject to Standard License Terms and Conditions.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
-
       This is the XML Schema for the JSP 2.0 deployment descriptor
       types.  The JSP 2.0 schema contains all the special
       structures and datatypes that are necessary to use JSP files

Modified: trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-app_2_3.dtd
===================================================================
--- trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-app_2_3.dtd	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-app_2_3.dtd	2007-10-03 19:12:01 UTC (rev 4300)
@@ -14,79 +14,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<!--
-Copyright 2000-2001 Sun Microsystems, Inc. 901 San Antonio Road,
-Palo Alto, CA  94303, U.S.A.  All rights reserved.
 
-This product or document is protected by copyright and distributed
-under licenses restricting its use, copying, distribution, and
-decompilation.  No part of this product or documentation may be
-reproduced in any form by any means without prior written authorization
-of Sun and its licensors, if any.
-
-Third party software, including font technology, is copyrighted and
-licensed from Sun suppliers.
-
-Sun, Sun Microsystems, the Sun Logo, Solaris, Java, JavaServer Pages, Java
-Naming and Directory Interface, JDBC, JDK, JavaMail and Enterprise JavaBeans,
-are trademarks or registered trademarks of Sun Microsystems, Inc in the U.S.
-and other countries.
-
-All SPARC trademarks are used under license and are trademarks
-or registered trademarks of SPARC International, Inc.
-in the U.S. and other countries. Products bearing SPARC
-trademarks are based upon an architecture developed by Sun Microsystems, Inc.
-
-PostScript is a registered trademark of Adobe Systems, Inc.
-
-Federal Acquisitions: Commercial Software - Government Users Subject to
-Standard License Terms and Conditions.
-
-DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED
-CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
-IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT
-TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY
-INVALID.
-
-_________________________________________________________________________
-
-Copyright 2000-2001 Sun Microsystems, Inc.,
-901 San Antonio Road, Palo Alto, CA  94303, Etats-Unis.
-Tous droits re'serve's.
-
-
-Ce produit ou document est prote'ge' par un copyright et distribue' avec
-des licences qui en restreignent l'utilisation, la copie, la distribution,
-et la de'compilation.  Aucune partie de ce produit ou de sa documentation
-associe'e ne peut e^tre reproduite sous aucune forme, par quelque moyen
-que ce soit, sans l'autorisation pre'alable et e'crite de Sun et de ses
-bailleurs de licence, s'il y en a.
-
-Le logiciel de'tenu par des tiers, et qui comprend la technologie
-relative aux polices de caracte`res, est prote'ge' par un copyright
-et licencie' par des fournisseurs de Sun.
-
-Sun, Sun Microsystems, le logo Sun, Solaris, Java, JavaServer Pages, Java
-Naming and Directory Interface, JDBC, JDK, JavaMail, et Enterprise JavaBeans,
-sont des marques de fabrique ou des marques de'pose'es de Sun
-Microsystems, Inc. aux Etats-Unis et dans d'autres pays.
-
-Toutes les marques SPARC sont utilise'es sous licence et sont
-des marques de fabrique ou des marques de'pose'es de SPARC
-International, Inc. aux Etats-Unis et  dans
-d'autres pays. Les produits portant les marques SPARC sont
-base's sur une architecture de'veloppe'e par Sun Microsystems, Inc.
-
-Postcript est une marque enregistre'e d'Adobe Systems Inc.
-
-LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
-DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
-DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
-TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE
-A UNE UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON.
--->
-
 <!--
 This is the XML DTD for the Servlet 2.3 deployment descriptor.
 All Servlet 2.3 deployment descriptors must include a DOCTYPE

Modified: trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-app_2_4.xsd
===================================================================
--- trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-app_2_4.xsd	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-app_2_4.xsd	2007-10-03 19:12:01 UTC (rev 4300)
@@ -30,41 +30,6 @@
 
   <xsd:annotation>
     <xsd:documentation>
-
-      Copyright 2004 Sun Microsystems, Inc., 901 San Antonio
-      Road, Palo Alto, California 94303, U.S.A. All rights
-      reserved.
-
-      Sun Microsystems, Inc. has intellectual property rights
-      relating to technology described in this document. In
-      particular, and without limitation, these intellectual
-      property rights may include one or more of the U.S. patents
-      listed at http://www.sun.com/patents and one or more
-      additional patents or pending patent applications in the
-      U.S. and other countries.
-
-      This document and the technology which it describes are
-      distributed under licenses restricting their use, copying,
-      distribution, and decompilation. No part of this document
-      may be reproduced in any form by any means without prior
-      written authorization of Sun and its licensors, if any.
-
-      Third-party software, including font technology, is
-      copyrighted and licensed from Sun suppliers.
-
-      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
-      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-      Cup logo are trademarks or registered trademarks of Sun
-      Microsystems, Inc. in the U.S. and other countries.
-
-      Federal Acquisitions: Commercial Software - Government Users
-      Subject to Standard License Terms and Conditions.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
       <![CDATA[
 
 	This is the XML Schema for the Servlet 2.4 deployment descriptor.

Modified: trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd
===================================================================
--- trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd	2007-10-03 15:48:38 UTC (rev 4299)
+++ trunk/tomcat5.5/servletapi/jsr154/src/share/dtd/web-jsptaglibrary_2_0.xsd	2007-10-03 19:12:01 UTC (rev 4300)
@@ -31,41 +31,6 @@
   </xsd:annotation>
   <xsd:annotation>
     <xsd:documentation>
-
-      Copyright 2002 Sun Microsystems, Inc., 901 San Antonio
-      Road, Palo Alto, California 94303, U.S.A. All rights
-      reserved.
-
-      Sun Microsystems, Inc. has intellectual property rights
-      relating to technology described in this document. In
-      particular, and without limitation, these intellectual
-      property rights may include one or more of the U.S. patents
-      listed at http://www.sun.com/patents and one or more
-      additional patents or pending patent applications in the
-      U.S. and other countries.
-
-      This document and the technology which it describes are
-      distributed under licenses restricting their use, copying,
-      distribution, and decompilation. No part of this document
-      may be reproduced in any form by any means without prior
-      written authorization of Sun and its licensors, if any.
-
-      Third-party software, including font technology, is
-      copyrighted and licensed from Sun suppliers.
-
-      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
-      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
-      Cup logo are trademarks or registered trademarks of Sun
-      Microsystems, Inc. in the U.S. and other countries.
-
-      Federal Acquisitions: Commercial Software - Government Users
-      Subject to Standard License Terms and Conditions.
-
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <xsd:annotation>
-    <xsd:documentation>
       <![CDATA[
 
 	This is the XML Schema for the JSP Taglibrary




More information about the pkg-java-commits mailing list