costin      2003/03/07 22:59:47

  Modified:    catalina/src/share/org/apache/catalina/mbeans
                        MBeanUtils.java
  Log:
  Extra checks if the object is already registered ( to avoid errors )
  
  If a .ser file exists - try to use it first.
  
  Revision  Changes    Path
  1.11      +133 -36   
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java
  
  Index: MBeanUtils.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- MBeanUtils.java   28 Jan 2003 05:29:22 -0000      1.10
  +++ MBeanUtils.java   8 Mar 2003 06:59:46 -0000       1.11
  @@ -113,6 +113,8 @@
   import org.apache.commons.beanutils.PropertyUtils;
   import org.apache.commons.modeler.ManagedBean;
   import org.apache.commons.modeler.Registry;
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   
   /**
  @@ -124,7 +126,7 @@
    */
   
   public class MBeanUtils {
  -
  +    private static Log log = LogFactory.getLog(MBeanUtils.class);
   
       // ------------------------------------------------------- Static Variables
   
  @@ -230,6 +232,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(connector);
           ObjectName oname = createObjectName(domain, connector);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -258,6 +263,10 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(context);
           ObjectName oname = createObjectName(domain, context);
  +        if( mserver.isRegistered(oname)) {
  +            log.info("Already registered " + oname);
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -286,6 +295,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(environment);
           ObjectName oname = createObjectName(domain, environment);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -314,6 +326,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(resource);
           ObjectName oname = createObjectName(domain, resource);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -342,6 +357,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(resourceLink);
           ObjectName oname = createObjectName(domain, resourceLink);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -370,6 +388,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(context);
           ObjectName oname = createObjectName(domain, context);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -398,6 +419,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(engine);
           ObjectName oname = createObjectName(domain, engine);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -426,6 +450,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(group);
           ObjectName oname = createObjectName(domain, group);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -454,6 +481,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(host);
           ObjectName oname = createObjectName(domain, host);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -482,6 +512,10 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(loader);
           ObjectName oname = createObjectName(domain, loader);
  +        if( mserver.isRegistered( oname ))  {
  +            // side effect: stop it
  +            mserver.unregisterMBean( oname );
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -509,6 +543,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(logger);
           ObjectName oname = createObjectName(domain, logger);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -537,6 +574,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(manager);
           ObjectName oname = createObjectName(domain, manager);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -565,6 +605,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(factory);
           ObjectName oname = createObjectName(domain, factory);
  +        if( mserver.isRegistered(oname )) {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -593,6 +636,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(resource);
           ObjectName oname = createObjectName(domain, resource);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -621,6 +667,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(realm);
           ObjectName oname = createObjectName(domain, realm);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -649,6 +698,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(role);
           ObjectName oname = createObjectName(domain, role);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -677,6 +729,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(server);
           ObjectName oname = createObjectName(domain, server);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -705,6 +760,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(service);
           ObjectName oname = createObjectName(domain, service);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -733,6 +791,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(user);
           ObjectName oname = createObjectName(domain, user);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -761,6 +822,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(userDatabase);
           ObjectName oname = createObjectName(domain, userDatabase);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -789,6 +853,9 @@
               domain = mserver.getDefaultDomain();
           ModelMBean mbean = managed.createMBean(valve);
           ObjectName oname = createObjectName(domain, valve);
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
           mserver.registerMBean(mbean, oname);
           return (mbean);
   
  @@ -1169,6 +1236,7 @@
                                 ",host=" + host.getName() + ",service=" +
                                 service.getName());
           } else if (container == null) {
  +            // What is that ???
               DefaultContext defaultContext = loader.getDefaultContext();
               if (defaultContext != null) {
                   Container parent = defaultContext.getParent();
  @@ -1592,20 +1660,28 @@
   
           if (registry == null) {
               registry = Registry.getRegistry();
  +            // Get the .ser form, if it exists
  +            try {
  +                URL url = ServerLifecycleListener.class.getResource
  +                        ("/org/apache/catalina/mbeans/mbeans-descriptors.xml.ser");
  +                if( url!=null ) {
  +                    registry.loadDescriptors("MbeansDescriptorsSerSource", url, 
null);
  +                    return registry;
  +                }
  +            } catch( Throwable t ) {
  +                // ignore
  +            }
               // If that failed - try the xml source
               try {
  -              URL url = ServerLifecycleListener.class.getResource
  -                    ("/org/apache/catalina/mbeans/mbeans-descriptors.xml");
  -
  -                InputStream stream = url.openStream();
  -                //                Registry.setDebug(1);
  -                Registry.loadRegistry(stream);
  -                stream.close();
  -                registry = Registry.getRegistry();
  -
  +                URL url = ServerLifecycleListener.class.getResource
  +                        ("/org/apache/catalina/mbeans/mbeans-descriptors.xml");
  +                if( url!=null ) {
  +                    registry.loadDescriptors("MbeansDescriptorsDOMSource", url, 
null);
  +                } else {
  +                    log.error("Can't find descriptors ");
  +                }
               } catch (Throwable t) {
                   t.printStackTrace(System.out);
  -                System.exit(1);
               }
           }
           return (registry);
  @@ -1776,8 +1852,9 @@
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, connector);
           connector.setService(null);
  -        mserver.unregisterMBean(oname);
  -
  +        if( mserver.isRegistered( oname ))  {
  +            mserver.unregisterMBean(oname);
  +        }
       }
   
   
  @@ -1801,7 +1878,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, context);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -1826,7 +1904,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, environment);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
       
  @@ -1851,7 +1930,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, resource);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname ))
  +            mserver.unregisterMBean(oname);
   
       }
        
  @@ -1876,7 +1956,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, resourceLink);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }   
       
  @@ -1901,7 +1982,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, context);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -1926,7 +2008,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, engine);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -1951,7 +2034,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, group);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -1976,7 +2060,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, host);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2001,7 +2086,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, loader);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2026,7 +2112,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, logger);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2051,7 +2138,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, manager);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
       
  @@ -2076,7 +2164,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, resources);
  -        mserver.unregisterMBean(oname);
  +       if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
       
  @@ -2101,7 +2190,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, realm);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2126,7 +2216,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, role);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2151,7 +2242,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, server);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2176,7 +2268,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, service);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2201,7 +2294,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, user);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2226,7 +2320,8 @@
           if (domain == null)
               domain = mserver.getDefaultDomain();
           ObjectName oname = createObjectName(domain, userDatabase);
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) )
  +            mserver.unregisterMBean(oname);
   
       }
   
  @@ -2257,7 +2352,9 @@
           } catch (Throwable t) {
           ;
           }
  -        mserver.unregisterMBean(oname);
  +        if( mserver.isRegistered(oname) ) {
  +            mserver.unregisterMBean(oname);
  +        }
   
       }
   
  
  
  

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

Reply via email to