tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From craig...@locus.apache.org
Subject cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java LocalStrings.properties
Date Sat, 14 Oct 2000 05:21:16 GMT
craigmcc    00/10/13 22:21:15

  Modified:    catalina/src/share/org/apache/catalina Context.java
               catalina/src/share/org/apache/catalina/core
                        LocalStrings.properties StandardContext.java
               catalina/src/share/org/apache/catalina/startup
                        ContextConfig.java LocalStrings.properties
  Log:
  Rearrange the location of the support for application event listeners, and
  make sure that they are reinitialized during a reload() operation on a
  Context.  Otherwise, there would be a potential for class cast exceptions
  because they would have been loaded by the previous class loader.
  
  Still need to refactor when session reloading from persistent storage
  takes place versus when application event listeners are set up, so that
  the listeners will hear about the reloaded sessions.
  
  Revision  Changes    Path
  1.10      +30 -4     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Context.java
  
  Index: Context.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Context.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Context.java	2000/10/03 21:30:28	1.9
  +++ Context.java	2000/10/14 05:21:09	1.10
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Context.java,v
1.9 2000/10/03 21:30:28 craigmcc Exp $
  - * $Revision: 1.9 $
  - * $Date: 2000/10/03 21:30:28 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Context.java,v
1.10 2000/10/14 05:21:09 craigmcc Exp $
  + * $Revision: 1.10 $
  + * $Date: 2000/10/14 05:21:09 $
    *
    * ====================================================================
    *
  @@ -95,7 +95,7 @@
    * <p>
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.9 $ $Date: 2000/10/03 21:30:28 $
  + * @version $Revision: 1.10 $ $Date: 2000/10/14 05:21:09 $
    */
   
   public interface Context extends Container {
  @@ -664,6 +664,23 @@
   
   
       /**
  +     * Return the context-relative URI of the error page for the specified
  +     * HTTP status code, if any; otherwise return <code>null</code>.
  +     *
  +     * @param status HTTP status code to look up
  +     */
  +    public String findStatusPage(int status);
  +
  +
  +    /**
  +     * Return the set of HTTP status codes for which error pages have
  +     * been specified.  If none are specified, a zero-length array
  +     * is returned.
  +     */
  +    public int[] findStatusPages();
  +
  +
  +    /**
        * Return the tag library descriptor location for the specified taglib
        * URI, if any; otherwise, return <code>null</code>.
        *
  @@ -862,6 +879,15 @@
        * @param name Name of the welcome file to be removed
        */
       public void removeWelcomeFile(String name);
  +
  +
  +    /**
  +     * Remove a class name from the set of LifecycleListener classes that
  +     * will be added to newly created Wrappers.
  +     *
  +     * @param listener Class name of a LifecycleListener class to be removed
  +     */
  +    public void removeWrapperLifecycle(String listener);
   
   
       /**
  
  
  
  1.15      +2 -0      jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/LocalStrings.properties
  
  Index: LocalStrings.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/LocalStrings.properties,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- LocalStrings.properties	2000/10/13 23:33:25	1.14
  +++ LocalStrings.properties	2000/10/14 05:21:11	1.15
  @@ -29,6 +29,8 @@
   standardContext.filterMap.name=Filter mapping specifies an unknown filter name {0}
   standardContext.filterMap.pattern=Invalid <url-pattern> {0} in filter mapping
   standardContext.isUnavailable=This application is not currently available
  +standardContext.listenerStart=Exception sending context initialized event to listener instance
of class {0}
  +standardContext.listenerStop=Exception sending context destroyed event to listener instance
of class {0}
   standardContext.mappingError=MAPPING configuration error for relative URI {0}
   standardContext.notReloadable=Reloading is disabled on this Context
   standardContext.notStarted=Context has not yet been started
  
  
  
  1.20      +241 -109  jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- StandardContext.java	2000/10/13 23:33:25	1.19
  +++ StandardContext.java	2000/10/14 05:21:11	1.20
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
1.19 2000/10/13 23:33:25 craigmcc Exp $
  - * $Revision: 1.19 $
  - * $Date: 2000/10/13 23:33:25 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
1.20 2000/10/14 05:21:11 craigmcc Exp $
  + * $Revision: 1.20 $
  + * $Date: 2000/10/14 05:21:11 $
    *
    * ====================================================================
    *
  @@ -72,6 +72,8 @@
   import java.util.Iterator;
   import java.util.TreeMap;
   import javax.servlet.ServletContext;
  +import javax.servlet.ServletContextEvent;
  +import javax.servlet.ServletContextListener;
   import javax.servlet.ServletException;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
  @@ -111,7 +113,7 @@
    * requests directed to a particular servlet.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.19 $ $Date: 2000/10/13 23:33:25 $
  + * @version $Revision: 1.20 $ $Date: 2000/10/14 05:21:11 $
    */
   
   public final class StandardContext
  @@ -376,7 +378,7 @@
       private String wrapperClass = "org.apache.catalina.core.StandardWrapper";
   
   
  -    // ------------------------------------------------------------- Properties
  +    // -----------------------------------------------------Context  Properties
   
   
       /**
  @@ -471,32 +473,6 @@
   
   
       /**
  -     * Return the Locale to character set mapper class for this Context.
  -     */
  -    public String getCharsetMapperClass() {
  -
  -        return (this.charsetMapperClass);
  -
  -    }
  -
  -
  -    /**
  -     * Set the Locale to character set mapper class for this Context.
  -     *
  -     * @param mapper The new mapper class
  -     */
  -    public void setCharsetMapperClass(String mapper) {
  -
  -        String oldCharsetMapperClass = this.charsetMapperClass;
  -	this.charsetMapperClass = mapper;
  -	support.firePropertyChange("charsetMapperClass",
  -				   oldCharsetMapperClass,
  -				   this.charsetMapperClass);
  -
  -    }
  -
  -
  -    /**
        * Return the "use cookies for session ids" flag.
        */
       public boolean getCookies() {
  @@ -599,6 +575,18 @@
   
   
       /**
  +     * Return descriptive information about this Container implementation and
  +     * the corresponding version number, in the format
  +     * <code>&lt;description&gt;/&lt;version&gt;</code>.
  +     */
  +    public String getInfo() {
  +
  +	return (info);
  +
  +    }
  +
  +
  +    /**
        * Return the login configuration descriptor for this web application.
        */
       public LoginConfig getLoginConfig() {
  @@ -609,6 +597,18 @@
   
   
       /**
  +     * Set the Loader with which this Context is associated.
  +     *
  +     * @param loader The newly associated loader
  +     */
  +    public synchronized void setLoader(Loader loader) {
  +
  +	super.setLoader(loader);
  +
  +    }
  +
  +
  +    /**
        * Set the login configuration descriptor for this web application.
        *
        * @param config The new login configuration
  @@ -715,55 +715,84 @@
   
   
       /**
  -     * Return the work directory for this Context.
  +     * Return the Java class name of the Wrapper implementation used
  +     * for servlets registered in this Context.
        */
  -    public String getWorkDir() {
  +    public String getWrapperClass() {
   
  -	return (this.workDir);
  +	return (this.wrapperClass);
   
       }
   
   
       /**
  -     * Set the work directory for this Context.
  +     * Set the Java class name of the Wrapper implementation used
  +     * for servlets registered in this Context.
        *
  -     * @param workDir The new work directory
  +     * @param wrapperClass The new wrapper class
        */
  -    public void setWorkDir(String workDir) {
  +    public void setWrapperClass(String wrapperClass) {
   
  -	this.workDir = workDir;
  +	this.wrapperClass = wrapperClass;
   
  -	if (started)
  -	    postWorkDirectory();
  +    }
  +
  +
  +    // ------------------------------------------------------ Public Properties
  +
   
  +    /**
  +     * Return the Locale to character set mapper class for this Context.
  +     */
  +    public String getCharsetMapperClass() {
  +
  +        return (this.charsetMapperClass);
  +
       }
   
   
       /**
  -     * Return the Java class name of the Wrapper implementation used
  -     * for servlets registered in this Context.
  +     * Set the Locale to character set mapper class for this Context.
  +     *
  +     * @param mapper The new mapper class
        */
  -    public String getWrapperClass() {
  +    public void setCharsetMapperClass(String mapper) {
   
  -	return (this.wrapperClass);
  +        String oldCharsetMapperClass = this.charsetMapperClass;
  +	this.charsetMapperClass = mapper;
  +	support.firePropertyChange("charsetMapperClass",
  +				   oldCharsetMapperClass,
  +				   this.charsetMapperClass);
   
       }
   
   
       /**
  -     * Set the Java class name of the Wrapper implementation used
  -     * for servlets registered in this Context.
  +     * Return the work directory for this Context.
  +     */
  +    public String getWorkDir() {
  +
  +	return (this.workDir);
  +
  +    }
  +
  +
  +    /**
  +     * Set the work directory for this Context.
        *
  -     * @param wrapperClass The new wrapper class
  +     * @param workDir The new work directory
        */
  -    public void setWrapperClass(String wrapperClass) {
  +    public void setWorkDir(String workDir) {
   
  -	this.wrapperClass = wrapperClass;
  +	this.workDir = workDir;
   
  +	if (started)
  +	    postWorkDirectory();
  +
       }
   
   
  -    // --------------------------------------------------------- Public Methods
  +    // -------------------------------------------------------- Context Methods
   
   
       /**
  @@ -1729,18 +1758,6 @@
   
   
       /**
  -     * Return descriptive information about this Container implementation and
  -     * the corresponding version number, in the format
  -     * <code>&lt;description&gt;/&lt;version&gt;</code>.
  -     */
  -    public String getInfo() {
  -
  -	return (info);
  -
  -    }
  -
  -
  -    /**
        * Process the specified Request, and generate the corresponding Response,
        * according to the design of this particular Container.
        *
  @@ -1812,6 +1829,9 @@
   	    }
   	}
   
  +        listenerStop();
  +        setApplicationListeners(null);
  +
   	if ((manager != null) && (manager instanceof Lifecycle)) {
   	    try {
   		((Lifecycle) manager).stop();
  @@ -1846,6 +1866,9 @@
   	    }
   	}
   
  +        listenerConfig();
  +        listenerStart();
  +
   	for (int i = 0; i < children.length; i++) {
   	    Wrapper wrapper = (Wrapper) children[i];
   	    if (wrapper instanceof Lifecycle) {
  @@ -1867,44 +1890,6 @@
   
   
       /**
  -     * Remove the specified security constraint from this web application.
  -     *
  -     * @param constraint Constraint to be removed
  -     */
  -    public void removeConstraint(SecurityConstraint constraint) {
  -
  -	synchronized (constraints) {
  -
  -	    // Make sure this constraint is currently present
  -	    int n = -1;
  -	    for (int i = 0; i < constraints.length; i++) {
  -		if (constraints[i].equals(constraint)) {
  -		    n = i;
  -		    break;
  -		}
  -	    }
  -	    if (n < 0)
  -		return;
  -
  -	    // Remove the specified constraint
  -	    int j = 0;
  -	    SecurityConstraint results[] =
  -		new SecurityConstraint[constraints.length - 1];
  -	    for (int i = 0; i < constraints.length; i++) {
  -		if (i != n)
  -		    results[j++] = constraints[i];
  -	    }
  -	    constraints = results;
  -
  -	}
  -
  -	// Inform interested listeners
  -	fireContainerEvent("removeConstraint", constraint);
  -
  -    }
  -
  -
  -    /**
        * Remove the specified application listener class from the set of
        * listeners for this application.
        *
  @@ -1984,6 +1969,44 @@
   
   
       /**
  +     * Remove the specified security constraint from this web application.
  +     *
  +     * @param constraint Constraint to be removed
  +     */
  +    public void removeConstraint(SecurityConstraint constraint) {
  +
  +	synchronized (constraints) {
  +
  +	    // Make sure this constraint is currently present
  +	    int n = -1;
  +	    for (int i = 0; i < constraints.length; i++) {
  +		if (constraints[i].equals(constraint)) {
  +		    n = i;
  +		    break;
  +		}
  +	    }
  +	    if (n < 0)
  +		return;
  +
  +	    // Remove the specified constraint
  +	    int j = 0;
  +	    SecurityConstraint results[] =
  +		new SecurityConstraint[constraints.length - 1];
  +	    for (int i = 0; i < constraints.length; i++) {
  +		if (i != n)
  +		    results[j++] = constraints[i];
  +	    }
  +	    constraints = results;
  +
  +	}
  +
  +	// Inform interested listeners
  +	fireContainerEvent("removeConstraint", constraint);
  +
  +    }
  +
  +
  +    /**
        * Remove any EJB resource reference with the specified name.
        *
        * @param name Name of the EJB resource reference to remove
  @@ -2371,29 +2394,122 @@
       }
   
   
  +    // --------------------------------------------------------- Public Methods
  +
  +
  +    /**
  +     * Configure the set of instantiated application event listeners
  +     * for this Context.  Return <code>true</code> if all listeners wre
  +     * initialized successfully, or <code>false</code> otherwise.
  +     */
  +    public boolean listenerConfig() {
  +
  +        if (debug >= 1)
  +	    log("Configuring application event listeners");
  +
  +        ClassLoader loader = getLoader().getClassLoader();
  +	String listeners[] = findApplicationListeners();
  +        Object results[] = new Object[listeners.length];
  +        boolean ok = true;
  +	for (int i = 0; i < results.length; i++) {
  +	    if (debug >= 2)
  +		log(" Configuring event listener class '" +
  +		    listeners[i] + "'");
  +	    try {
  +		Class clazz = loader.loadClass(listeners[i]);
  +		results[i] = clazz.newInstance();
  +	    } catch (Throwable t) {
  +		log(sm.getString("contextConfig.applicationListener",
  +				 listeners[i]), t);
  +                ok = false;
  +	    }
  +	}
  +	if (ok)
  +	    setApplicationListeners(results);
  +        return (ok);
  +    }
  +
  +
       /**
  -     * Set the Loader with which this Context is associated.
  -     *
  -     * @param loader The newly associated loader
  +     * Send an application start event to all interested listeners.
  +     * Return <code>true</code> if all events were sent successfully,
  +     * or <code>false</code> otherwise.
        */
  -    public synchronized void setLoader(Loader loader) {
  +    public boolean listenerStart() {
   
  -	super.setLoader(loader);
  +        if (debug >= 1)
  +	    log("Sending application start events");
   
  +        boolean ok = true;
  +        Object listeners[] = getApplicationListeners();
  +        if (listeners == null)
  +	    return (ok);
  +	ServletContextEvent event =
  +	  new ServletContextEvent(getServletContext());
  +	for (int i = 0; i < listeners.length; i++) {
  +            if (listeners[i] == null)
  +                continue;
  +	    if (!(listeners[i] instanceof ServletContextListener))
  +	        continue;
  +	    try {
  +	        ServletContextListener listener =
  +		  (ServletContextListener) listeners[i];
  +		listener.contextInitialized(event);
  +	    } catch (Throwable t) {
  +	        log(sm.getString("standardContext.listenerStart",
  +                                 listeners[i].getClass().getName()), t);
  +                ok = false;
  +	    }
  +	}
  +        return (ok);
  +
       }
   
   
       /**
  +     * Send an application stop event to all interested listeners.
  +     * Return <code>true</code> if all events were sent successfully,
  +     * or <code>false</code> otherwise.
  +     */
  +    public boolean listenerStop() {
  +
  +        if (debug >= 1)
  +	    log("Sending application stop events");
  +
  +        boolean ok = true;
  +        Object listeners[] = getApplicationListeners();
  +        if (listeners == null)
  +	    return (ok);
  +	ServletContextEvent event =
  +	  new ServletContextEvent(getServletContext());
  +	for (int i = 0; i < listeners.length; i++) {
  +	    int j = (listeners.length - 1) - i;
  +            if (listeners[j] == null)
  +                continue;
  +	    if (!(listeners[j] instanceof ServletContextListener))
  +	        continue;
  +	    try {
  +	        ServletContextListener listener =
  +		  (ServletContextListener) listeners[j];
  +		listener.contextDestroyed(event);
  +	    } catch (Throwable t) {
  +	        log(sm.getString("standardContext.listenerStop",
  +                                 listeners[j].getClass().getName()), t);
  +                ok = false;
  +	    }
  +	}
  +        return (ok);
  +
  +    }
  +
  +
  +    /**
        * Start this Context component.
        *
        * @exception LifecycleException if a startup error occurs
        */
       public void start() throws LifecycleException {
   
  -	// Create context attributes that will be required
  -	postWelcomeFiles();
  -	postWorkDirectory();
  -
           // Add missing components as necessary
           if (getResources() == null) {   // (1) Required by Loader
               if (debug >= 1)
  @@ -2416,6 +2532,20 @@
           if (!available)
               return;
   
  +        // Configure and call application event listeners
  +        if (!listenerConfig()) {
  +            setAvailable(false);
  +            return;
  +        }
  +        if (!listenerStart()) {
  +            setAvailable(false);
  +            return;
  +        }
  +
  +	// Create context attributes that will be required
  +	postWelcomeFiles();
  +	postWorkDirectory();
  +
           // Collect "load on startup" servlets that need to be initialized
           TreeMap map = new TreeMap();
           Container children[] = findChildren();
  @@ -2463,6 +2593,8 @@
       public void stop() throws LifecycleException {
   
           setAvailable(false);
  +        listenerStop();
  +        setApplicationListeners(null);
           super.stop();
   
       }
  
  
  
  1.25      +4 -112    jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
  
  Index: ContextConfig.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- ContextConfig.java	2000/10/13 23:33:27	1.24
  +++ ContextConfig.java	2000/10/14 05:21:13	1.25
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v
1.24 2000/10/13 23:33:27 craigmcc Exp $
  - * $Revision: 1.24 $
  - * $Date: 2000/10/13 23:33:27 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v
1.25 2000/10/14 05:21:13 craigmcc Exp $
  + * $Revision: 1.25 $
  + * $Date: 2000/10/14 05:21:13 $
    *
    * ====================================================================
    *
  @@ -88,8 +88,6 @@
   import java.util.Stack;
   import java.util.jar.JarEntry;
   import java.util.jar.JarFile;
  -import javax.servlet.ServletContextEvent;
  -import javax.servlet.ServletContextListener;
   import org.apache.catalina.Authenticator;
   import org.apache.catalina.Context;
   import org.apache.catalina.Globals;
  @@ -119,7 +117,7 @@
    * of that Context, and the associated defined servlets.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.24 $ $Date: 2000/10/13 23:33:27 $
  + * @version $Revision: 1.25 $ $Date: 2000/10/14 05:21:13 $
    */
   
   public final class ContextConfig
  @@ -689,98 +687,6 @@
   
   
       /**
  -     * Configure the set of instantiated application event listeners
  -     * for this Context.
  -     */
  -    private void listenerConfig() {
  -
  -        if (debug >= 1)
  -	    log("Configuring application event listeners");
  -
  -        ClassLoader loader = context.getLoader().getClassLoader();
  -	String listeners[] = context.findApplicationListeners();
  -        Object results[] = new Object[listeners.length];
  -	boolean error = false;
  -	for (int i = 0; i < results.length; i++) {
  -	    if (debug >= 2)
  -		log(" Configuring event listener class '" +
  -		    listeners[i] + "'");
  -	    try {
  -		Class clazz = loader.loadClass(listeners[i]);
  -		results[i] = clazz.newInstance();
  -	    } catch (Throwable t) {
  -		log(sm.getString("contextConfig.applicationListener",
  -				 listeners[i]), t);
  -		error = true;
  -                ok = false;
  -	    }
  -	}
  -	if (!error)
  -	    context.setApplicationListeners(results);
  -
  -    }
  -
  -
  -    /**
  -     * Send an application start event to all interested listeners.
  -     */
  -    private void listenerStartEvent() {
  -
  -        if (debug >= 1)
  -	    log("Sending application start events");
  -
  -        Object listeners[] = context.getApplicationListeners();
  -        if (listeners == null)
  -	    return;
  -	ServletContextEvent event =
  -	  new ServletContextEvent(context.getServletContext());
  -	for (int i = 0; i < listeners.length; i++) {
  -	    if (!(listeners[i] instanceof ServletContextListener))
  -	        continue;
  -	    try {
  -	        ServletContextListener listener =
  -		  (ServletContextListener) listeners[i];
  -		listener.contextInitialized(event);
  -	    } catch (Throwable t) {
  -	        log(sm.getString("contextConfig.applicationStart"), t);
  -                ok = false;
  -	    }
  -	}
  -
  -    }
  -
  -
  -    /**
  -     * Send an application stop event to all interested listeners.
  -     */
  -    private void listenerStopEvent() {
  -
  -        if (debug >= 1)
  -	    log("Sending application stop events");
  -
  -        Object listeners[] = context.getApplicationListeners();
  -        if (listeners == null)
  -	    return;
  -	ServletContextEvent event =
  -	  new ServletContextEvent(context.getServletContext());
  -	for (int i = 0; i < listeners.length; i++) {
  -	    int j = (listeners.length - 1) - i;
  -	    if (!(listeners[j] instanceof ServletContextListener))
  -	        continue;
  -	    try {
  -	        ServletContextListener listener =
  -		  (ServletContextListener) listeners[j];
  -		listener.contextDestroyed(event);
  -	    } catch (Throwable t) {
  -	        log(sm.getString("contextConfig.applicationStop"), t);
  -                ok = false;
  -	    }
  -	}
  -
  -    }
  -
  -
  -    /**
        * Log a message on the Logger associated with our Context (if any)
        *
        * @param message Message to be logged
  @@ -957,14 +863,6 @@
           if (ok)
               authenticatorConfig();
   
  -	// Configure the application event listeners for this Context
  -        if (ok)
  -            listenerConfig();
  -
  -	// Send an application start event to all interested listeners
  -        if (ok)
  -            listenerStartEvent();
  -
           // Dump the contents of this pipeline if requested
           if (debug >= 1) {
               log("Pipline Configuration:");
  @@ -995,12 +893,6 @@
   	if (debug > 0)
   	    log(sm.getString("contextConfig.stop"));
           ok = true;
  -
  -	// Send an application stop event to all interested listeners
  -	listenerStopEvent();
  -
  -	// Release references to the listener objects themselves
  -	context.setApplicationListeners(null);
   
       }
   
  
  
  
  1.10      +0 -2      jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties
  
  Index: LocalStrings.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- LocalStrings.properties	2000/10/13 23:33:27	1.9
  +++ LocalStrings.properties	2000/10/14 05:21:14	1.10
  @@ -4,8 +4,6 @@
   contextConfig.applicationMissing=Missing application web.xml, using defaults only
   contextConfig.applicationParse=Parse error in application web.xml
   contextConfig.applicationPosition=Occurred at line {0} column {1}
  -contextConfig.applicationStart=Exception thrown by application start listener
  -contextConfig.applicationStop=Exception thrown by application stop listener
   contextConfig.authenticatorConfigured=Configured an authenticator for method {0}
   contextConfig.authenticatorInstantiate=Cannot instantiate an authenticator of class {0}
   contextConfig.authenticatorMissing=Cannot configure an authenticator for method {0}
  
  
  

Mime
View raw message