Detailed Information
Product Name: ServletExec/AS 4.1.1 for Windows
Hotfix Name: ServletExec_AS_411_Windows_Hotfix_Feb_2005
Created: 02/10/2005
File Size: 739.00 KB
File URL:
Description: v4.1.1.29
Release Notes
ReleaseNotes.txt for the ServletExec AS for Windows February 2005 hotfix.
ServletExec v4.1.1.29

* This hotfix contains only those components that are relevant for the        *
* configuration stated above.                                                 *
*                                                                             *
* Hotfixes are cummulative, so they contain all the fixes found in their      *
* previous hotfix (and patch) counterparts.                                   *
*                                                                             *
* Directions to apply this hotfix are at the very end of this file.           *

The SE JAR file was updated to fix the following bugs:
- bug #1649: errorpage processing not working from a Filter
- bug #0629: Calling new InitialContext() from doFilter() gives ClassNotFoundException

The native components were updated to be v4.1.1.29 and also to fix:
- bug #1739: Some native components do not output their version number
            in their startup messages 


ReleaseNotes.txt for the ServletExec AS for Windows October 2004 hotfix.
ServletExec v4.1.1.28

The JAR was updated to fix a bug.
The DLLs were updated from the previous hotfix/patch to reflect the current
version [v4.1.1.28] (to avoid confusion).

ServletExec41.jar fixes the following bug:

- bug #1430: Character encoding not being honored for the body of a custom tag


Here is a history of the SE 4.1.1 bugs that were fixed in
previous 4.1.1 "patches", and whose fixes are included
in all 4.1.1 hotfixes (based upon configuration):

from p27
- bug #1256: Native adapter is unable to receive data from SE Java instance

from p26
- bug #1334: Graceful shutdown of SE AS instance can sometimes cause high CPU usage by native adapter
             (bug #1334 may occur with Apache 1.3.x, IIS, or iPlanet, but not with Apache 2)

from p25
A refix of bug #1099: Native adapter can sometimes fail to read all
                         response data

from p24
- bug #1041: SE AS fails to bind/listen on its port if configured WAR file does not exist
- bug #1087: 'data already sent to client' error occurs if an errorPage is
             used and an exception occurs after an include
- bug #1096: Adapter connection/socket pooling code should be more defensive
- bug #1099: Native adapter can sometimes fail to read all response data

from p23
- bug #86 "With IIS, an exception is thrown if a servlet accesses client certificate info"
- bug #106 "Retrieving the attribute javax.servlet.request.X509Certificate doesn't return an array"
- bug #525 "Sometimes the cipher suite and key size cannot be retrieved"
- bug #527 "With IIS, bad values are returned for a client cert's subject DN and serial number"

from p22
- bug #822 "If servlet set to load-on-startup throws error no subsequent app's servlets are initialized."

from p21
- bug #121 - "A servlet invoked by a request dispatcher include call can set response headers"

from p20
- bug #746 "Servlets that use chunked encoding will have connection closed on them"

from p19
 This patch is the same as patch #18 except for an updated ServletExec41.jar.  This
 updated JAR allows you to enable/disable the logging of debug messages using a new
 debug admin page that appears under the Advanced header.  Debug messages can also be
 enabled/disabled through use of the "com.newatlanta.servletexec.debug" system property.
 This property can be set to one or more of the following values:

 All           - enable all debug messages
 AS            - enable debug messages in ServletExec AS adapter communication code
 Request       - enable debug messages in request processing code
 ServletLoader - enable debug messages in servlet classloader
 WebAppLoader  - enable debug messages in web app classloader

 Placing a minus sign before a value will disable debug messages for that area of code.
 For example, the following setting would enable debug messages for all areas of code
 except request processing:


from p18
 NOTE:  The shared library was missing from this patch.
        It was added on 6/23/2003.

 This patch is exactly the same as patch #17 except that it also
 contains mod_servletexec.c which is a patch for ServletExec 4.1.1,
 running with Apache on Unix. And it also contains ApacheModuleServletexec.dll
 which is a patch for ServletExec 4.1.1 running with Apache 1.3.x on Windows.
 And it also contains ServletExec_Adapter.dll.iPLANET and
 which are patches for running SE AS with iPlanet 4.x or 6.x on Windows and Solaris.
 mod_servletexec.c, ApacheModuleServletexec.dll, and ServletExec_Adapter.dll all
 contain fixes for the following bugs:

- bug #722 "Native Adapter leaks memory & file descriptors if request times out"
- bug #723 "improper protocol shutdown"
- bug #724 "memory leak - malloc of tmpcert never gets deallocated"
- bug #735 "Native Adapter leaks memory if an error occurs when opening a socket"
- bug #736 "Native Adapter does not declare global vars as static, causing possible namespace conflicts"

 The iPlanet adapters contain fixes for the following bugs:
- all of the fixes in the previous patches
- bug #723 "improper protocol shutdown"

from p17
- a "refix" of bug #178 entitled "empty web-app tag in web.xml"
  That bug either crept back in at some point after it was originally fixed
  in SE 4.0b1, or it was never truly fixed as originally thought.
- bug #661: Only one can be used
- bug #662: IIS Adapter fails to get host when request lacks a host header    

from p16
- bug #620: SessionSwapping background thread remains suspended forever
- bug #624: MaxSessions value is reset to 1024
- bug #625: Old session .data files sometimes hang around on the hard drive

from p15
- bug #254: Changes made to the default NAC session extensions are lost across web app restarts
- bug #531: In Legacy (non-webapp) context, getServletContext().getInitParameterNames() returns null

from p14
- bug #517: Using a data source in a context listener's contextInitialized method causes NameNotFoundException.
- bug #518: getServerPort returns wrong value when SE runs behind a load balancer
            (NOTE: the fix for Bug #518 now handles HTTP/1.0 browsers too)

from p13
- bug #508: Request loop hole can be used to access files (Part 2)
- bug #509: Sometimes static web app pages are served when NOT MODIFIED should be sent
- bug #510: With IIS, connection is closed after NOT MODIFIED response for web app static page

from p12
- bug #487: Body of a Redirect response should be properly tagged HTML
- bug #492: Unable to use JSTL classes in ServletExec
- bug #494: request.getParameter always returns ISO Latin-1 formatted Strings in JSPs
- bug #495: ServletExec does not pass well-formed XML to TLD Validators

from p11
- bug #470:  Multiple connections left in Close_Wait state after a shutdown of a ServletExec instance.

from p10
- a more complete fix for bug #459, taking into account the case of a request URL
  using the null character as in the following form:

from p09
- bug #459: Suffix alias requests that use HTTP escape characters can sometime cause SE to serve the page source
- bug #460: Session data is not being persistent when Persistence is enabled.
- bug #306 With SE ISAPI, IIS can crash if web-app has static content served by web server

from p08
- bug #427: request attributes cannot be retrieved when request uses SSL (https)
- bug #429: classes in a static initializer are sometimes not found.

from p07
- bug #314: SE ISAPI fails to work with IIS6
- bug #336: getParameterMap returns String
- bug #426: Some files unpacked from a .war file remain locked
- a more complete fix for bug #312 (not just Spanish)

from p06
- bug #62: Deleting of cookies fails with IE browser
- bug #311: Thread.currentThread().getContextClassLoader() returns null
- bug #312: When browser uses Spanish Locale, SE is unable to convert to charset correctly

from p05
- bug #310: Welcome files specified as url path portions cannot be found

from p04
- bug #309: getResources() throws ZipException: Filename too long

from p03
- bug #301: After a restart, sometimes getSession() will throw a NoSuchElementException             
- bug #302: In a TLD, validator-class is not processed properly
- bug #305: Sometimes duplicate session ID's can be generated
- bug #307: context class loader is not setup properly for JSPs in a webapp

from p02
- bug #301: After a restart, sometimes getSession() will throw a NoSuchElementException             
- bug #302: In a TLD, validator-class is not processed properly
- bug #305: Sometimes duplicate session ID's can be generated

from p01
- bug #301: After a restart, sometimes getSession() will throw a NoSuchElementException             
- bug #302: In a TLD, validator-class is not processed properly

------------- (12/13/2002)

This patch fixes bug #621 (which only occurs with SE AS 4.x on Windows).
To apply this patch (which is specific for SE 4.0, 4.1, or 4.1.1, and will not work
with SE 4.2) perform the following steps:

1) browse to ...\ServletExec AS\installerFiles\ and rename
  StopServletExec.class to StopServletExec.class.orig

2) extract the StopServletExec.class contained in
  into ...\ServletExec AS\installerFiles\


How to apply any SE hotfix
Generally this involves:

1. Stopping SE and the webserver
   NOTE: With IIS this involves stopping the IIS Admin Service
         from the Services Control Panel.
2. Renaming the component to be hotfixed
3. Putting the hotfixed component in place of the un-hotfixed component
   (giving it the original name of the un-hotfixed component)

The specifics of doing this can vary based on which component you are patching.
Consult the ServletExec 4.1.1 Installation Guide to learn which components were
installed with your configuration of ServletExec and where those components
reside, so that you will be able to hotfix them if hotfixed versions were
provided in this hotfix.

- ServletExecXX.jar can typically be found in the
 <ServletExec Install Directory>\lib\ directory.
- Locations for native components (DLLs) will vary with webserver brand.
- ServletExec_Adapter.dll for IIS can typically be found in the
 ..\Inetpub\Scripts directory.

How to apply a ServletExec_Adapter.dll or .so hotfix to an existing
SE installation
1. Stop the web server (IIS, SunONE, or Apache).
   NOTE: With IIS this involves stopping the IIS Admin Service
         from the Services Control Panel.
2. Stop ServletExec.
3. Locate the existing adapter that your webserver is currently
   The location and name of your existing/un-hotfixed SE adapter depends upon
   which webserver you are using.
   First look in the appropriate chapter of the SE 5.0 Installation Guide
   under the "What was installed" section to learn the default location for
   your adapter.
   If using iWS/SunONE or Apache, then you may also learn this infomation by
   looking in your webserver's config file (magnus.conf, obj.conf, or
   Once you have located it, rename it to something else.

4. If your hotfixed adapter (from the SE hotfix ZIP file) has been provided in
   prebuilt form (.dll, or .so) then place it where the original/unhotfixed
   adapter resides, making sure to rename it accordingly.

   Here are some examples:
    a. If using SE 5.0 AS on Windows with Apache 2.x as your webserver, you could
       look in your httpd.conf to learn the location of the unhotfixed SE Adapter DLL
       file that's currently in use (typically this would be at:
       Then you would rename it to something else such as ApacheModuleServletExec.dll.orig
       and then put ApacheModuleServletExec.dll.APACHE2.x (from the hotfix ZIP) in its
       place, renaming it to remove the ending ".APACHE2.x" portion of its name.

    b. If using iWS 4.x then look in obj.conf.
    c. If using iWS 6.x or SunONE, look in magnus.conf.

    d. If using SE 5.0 AS on Windows with IIS, the default location is:

5.  If you are using Apache on Unix then your hotfixed adapter (from the SE
    hotfix ZIP file) is delivered in source file form (.c file) and you will
    need to build it yourself.
    Here is how:

    a. Copy the appropriate hotfixed adapter source file into an empty folder.
       If using Apache 1.3.x on Unix... the file is mod_servletexec.c

    b. Build the adapter.
       The exact command used to build the adapter for Apache on Unix may differ
       depending upon the Apache version and the platform (Solaris, Linux, HP-UX, AIX, etc...).
       Because of this, you should examine the /tmp/SEinstall.log file to locate the exact
       command that was used to build the original/unhotfixed version.
       The command involves the use of apxs. For example with Apache 1 on Solaris, the command
       looks something like this:

          <apache install dir>/bin/apxs -i -a -c -n servletexec mod_servletexec.c

          Note that if you are using a less common Unix variant such as HP-UX,
          you'll need to invoke apxs a bit differently.
          As an example, here is how the SE 5.0 installer invokes apxs for
          Apache 2 on our HP-UX 11.11 box and it works fine:

          <apache install dir>/bin/apxs -n servletexec -i -a -c -D XP_UNIX -D APR_WANT_BYTEFUNC mod_servletexec.c

       Locate your platform's 1-line command in your SEinstall.log file, and issue it
       against the hotfixed version manually from the command line.

The final name of the module should be
       "", and you should see that file appear where the
       original/unhotfixed version resides to confirm that you truly have the
       newly built, hotfixed version in place.