remm        2003/06/22 10:14:25

  Modified:    catalina/src/share/org/apache/catalina/core
                        StandardContext.java
  Log:
  - Oops, my earlier change on the order of JMX registration was incorrect.
    I noticed things were wrong because the mapper welcome file processing
    was broken after a webapp reload (quite annoying).
  - The JMX name is now constructed (the piepline init needs it, otherwise valves
    and stuff will never be unregistered, leaking objects), but the actual
    registration occurs after the context start is done.
  - Code cleanup.
  
  Revision  Changes    Path
  1.67      +23 -21    
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.66
  retrieving revision 1.67
  diff -u -r1.66 -r1.67
  --- StandardContext.java      20 Jun 2003 21:18:45 -0000      1.66
  +++ StandardContext.java      22 Jun 2003 17:14:24 -0000      1.67
  @@ -4015,8 +4015,8 @@
                   // Initialize associated mapper
                   mapper.setContext(getPath(), welcomeFiles, resources);
   
  -                // JMX registration
  -                registerJMX();
  +                // Set JMX object name for proper pipeline registration
  +                preRegisterJMX();
   
                   // Start our child containers, if any
                   Container children[] = findChildren();
  @@ -4127,8 +4127,8 @@
               setAvailable(false);
           }
   
  -        // Wrappers JMX registration
  -        registerWrappersJMX();
  +        // JMX registration
  +        registerJMX();
   
           // Notify our interested LifecycleListeners
           lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null);
  @@ -5031,33 +5031,35 @@
           return oname;        
       }    
       
  -    private void registerJMX() {
  +    private void preRegisterJMX() {
           try {
  -            StandardHost hst=(StandardHost)getParent();
  -            if( oname==null || oname.getKeyProperty("j2eeType")==null ) {
  -                
  -                oname=createObjectName(hst.getDomain(), hst.getJmxName());
  -                log.debug("Checking for " + oname );
  -                if(! Registry.getRegistry().getMBeanServer().isRegistered(oname))
  -                {
  -                    controller=oname;
  -                    Registry.getRegistry().registerComponent(this,oname, null);
  -                }
  +            StandardHost host = (StandardHost) getParent();
  +            if ((oname == null) 
  +                || (oname.getKeyProperty("j2eeType") == null)) {
  +                oname = createObjectName(host.getDomain(), host.getJmxName());
  +                controller = oname;
               }
  -        } catch( Exception ex ) {
  +        } catch(Exception ex) {
               log.info("Error registering ctx with jmx " + this + " " +
  -                    oname + " " + ex.toString(), ex );
  +                     oname + " " + ex.toString(), ex );
           }
       }
   
  -    private void registerWrappersJMX() {
  +    private void registerJMX() {
           try {
  -            for( Iterator it=wrappers.iterator(); it.hasNext() ; ) {
  +            if (log.isDebugEnabled()) {
  +                log.debug("Checking for " + oname );
  +            }
  +            if(! Registry.getRegistry().getMBeanServer().isRegistered(oname)) {
  +                controller = oname;
  +                Registry.getRegistry().registerComponent(this, oname, null);
  +            }
  +            for (Iterator it = wrappers.iterator(); it.hasNext() ; ) {
                   StandardWrapper wrapper=(StandardWrapper)it.next();
                   // XXX prevent duplicated registration
                   wrapper.registerJMX( this );
               }
  -        } catch( Exception ex ) {
  +        } catch (Exception ex) {
               log.info("Error registering wrapper with jmx " + this + " " +
                       oname + " " + ex.toString(), ex );
           }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to