You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@apache.org on 2002/02/19 23:16:00 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java

craigmcc    02/02/19 14:16:00

  Modified:    catalina/src/share/org/apache/catalina/mbeans
                        MBeanUtils.java ServerLifecycleListener.java
               catalina/src/share/org/apache/catalina/startup
                        ContextConfig.java
  Log:
  Correct the mechanism by which MBean names were generated for Valves.  The
  previous algorithm did not support repeated generation of the same name for
  the same Valve instance, which manifested itself as failure to find the
  appropriate MBeans at shutdown time (so that shutdown could complete).
  
  Fix a couple of places in ContextConfig where new valves were being added,
  but the appropriate event listener notifications were not getting sent.
  This causes some Valve MBeans to not get created at startup time.
  
  PR: 4639432
  
  Revision  Changes    Path
  1.27      +13 -30    jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java
  
  Index: MBeanUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- MBeanUtils.java	19 Feb 2002 02:15:27 -0000	1.26
  +++ MBeanUtils.java	19 Feb 2002 22:16:00 -0000	1.27
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.26 2002/02/19 02:15:27 craigmcc Exp $
  - * $Revision: 1.26 $
  - * $Date: 2002/02/19 02:15:27 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.27 2002/02/19 22:16:00 craigmcc Exp $
  + * $Revision: 1.27 $
  + * $Date: 2002/02/19 22:16:00 $
    *
    * ====================================================================
    *
  @@ -109,7 +109,7 @@
    *
    * @author Craig R. McClanahan
    * @author Amy Roh
  - * @version $Revision: 1.26 $ $Date: 2002/02/19 02:15:27 $
  + * @version $Revision: 1.27 $ $Date: 2002/02/19 22:16:00 $
    */
   
   public class MBeanUtils {
  @@ -159,14 +159,6 @@
       private static MBeanServer mserver = createServer();
   
   
  -    /**
  -     * The sequence number for Valve
  -     */
  -    private static int contextValveSequence = 0;
  -    private static int hostValveSequence = 0;
  -    private static int engineValveSequence = 0;
  -
  -
       // --------------------------------------------------------- Static Methods
   
   
  @@ -1172,21 +1164,15 @@
   
           if (container instanceof Engine) {
               Service service = ((Engine)container).getService();
  -            Integer sequenceInt = new Integer(engineValveSequence);
  -            String sequenceStr = sequenceInt.toString();
               name = new ObjectName(domain + ":type=Valve,sequence=" +
  -                                sequenceStr + ",service=" +
  -                                service.getName());
  -            engineValveSequence++;
  +                                  valve.hashCode() + ",service=" +
  +                                  service.getName());
           } else if (container instanceof Host) {
               Service service = ((Engine)container.getParent()).getService();
  -            Integer sequenceInt = new Integer(hostValveSequence);
  -            String sequenceStr = sequenceInt.toString();
               name = new ObjectName(domain + ":type=Valve,sequence=" +
  -                                sequenceStr + ",host=" +
  -                                container.getName() + ",service=" +
  -                                service.getName());
  -            hostValveSequence++;
  +                                  valve.hashCode() + ",host=" +
  +                                  container.getName() + ",service=" +
  +                                  service.getName());
           } else if (container instanceof Context) {
               String path = ((Context)container).getPath();
               if (path.length() < 1) {
  @@ -1194,14 +1180,11 @@
               }
               Host host = (Host) container.getParent();
               Service service = ((Engine) host.getParent()).getService();
  -            Integer sequenceInt = new Integer(contextValveSequence);
  -            String sequenceStr = sequenceInt.toString();
               name = new ObjectName(domain + ":type=Valve,sequence=" +
  -                                sequenceStr + ",path=" +
  -                                path + ",host=" +
  -                                host.getName() + ",service=" +
  -                                service.getName());
  -            contextValveSequence++;
  +                                  valve.hashCode() + ",path=" +
  +                                  path + ",host=" +
  +                                  host.getName() + ",service=" +
  +                                  service.getName());
           }
   
           return (name);
  
  
  
  1.20      +11 -4     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java
  
  Index: ServerLifecycleListener.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- ServerLifecycleListener.java	4 Feb 2002 20:28:49 -0000	1.19
  +++ ServerLifecycleListener.java	19 Feb 2002 22:16:00 -0000	1.20
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v 1.19 2002/02/04 20:28:49 amyroh Exp $
  - * $Revision: 1.19 $
  - * $Date: 2002/02/04 20:28:49 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v 1.20 2002/02/19 22:16:00 craigmcc Exp $
  + * $Revision: 1.20 $
  + * $Date: 2002/02/19 22:16:00 $
    *
    * ====================================================================
    *
  @@ -105,7 +105,7 @@
    *
    * @author Craig R. McClanahan
    * @author Amy Roh
  - * @version $Revision: 1.19 $ $Date: 2002/02/04 20:28:49 $
  + * @version $Revision: 1.20 $ $Date: 2002/02/19 22:16:00 $
    */
   
   public class ServerLifecycleListener
  @@ -270,6 +270,7 @@
           if (debug >= 4)
               log("Creating MBean for Context " + context);
           MBeanUtils.createMBean(context);
  +        context.addContainerListener(this);
           if (context instanceof StandardContext) {
               ((StandardContext) context).addPropertyChangeListener(this);
               ((StandardContext) context).addLifecycleListener(this);
  @@ -581,6 +582,9 @@
               
           }
   
  +        // Deregister ourselves as a ContainerListener
  +        context.removeContainerListener(this);
  +
       }
   
   
  @@ -630,6 +634,9 @@
           for (int k = 0; k < contexts.length; k++) {
               destroyMBeans((Context) contexts[k]);
           }
  +
  +        // Deregister ourselves as a ContainerListener
  +        host.removeContainerListener(this);
   
       }
   
  
  
  
  1.57      +6 -6      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.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- ContextConfig.java	10 Nov 2001 00:01:55 -0000	1.56
  +++ ContextConfig.java	19 Feb 2002 22:16:00 -0000	1.57
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.56 2001/11/10 00:01:55 craigmcc Exp $
  - * $Revision: 1.56 $
  - * $Date: 2001/11/10 00:01:55 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.57 2002/02/19 22:16:00 craigmcc Exp $
  + * $Revision: 1.57 $
  + * $Date: 2002/02/19 22:16:00 $
    *
    * ====================================================================
    *
  @@ -127,7 +127,7 @@
    * of that Context, and the associated defined servlets.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.56 $ $Date: 2001/11/10 00:01:55 $
  + * @version $Revision: 1.57 $ $Date: 2002/02/19 22:16:00 $
    */
   
   public final class ContextConfig
  @@ -367,7 +367,7 @@
               if (context instanceof ContainerBase) {
                   Pipeline pipeline = ((ContainerBase) context).getPipeline();
                   if (pipeline != null) {
  -                    pipeline.addValve(authenticator);
  +                    ((ContainerBase) context).addValve(authenticator);
                       log(sm.getString("contextConfig.authenticatorConfigured",
                                        loginConfig.getAuthMethod()));
                   }
  @@ -413,7 +413,7 @@
               if (context instanceof ContainerBase) {
                   Pipeline pipeline = ((ContainerBase) context).getPipeline();
                   if (pipeline != null) {
  -                    pipeline.addValve(certificates);
  +                    ((ContainerBase) context).addValve(certificates);
                       log(sm.getString
                           ("contextConfig.certificatesConfig.added"));
                   }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>