costin      2003/04/04 20:07:52

  Modified:    catalina/src/share/org/apache/catalina/core
                        StandardService.java
  Log:
  Implement the controller trick.
  
  Replace println with log.
  
  Don't overreact if start is called twice.
  
  Make sure stop() is called before destroy.
  
  Revision  Changes    Path
  1.6       +16 -17    
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardService.java
  
  Index: StandardService.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardService.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- StandardService.java      27 Mar 2003 03:06:39 -0000      1.5
  +++ StandardService.java      5 Apr 2003 04:07:52 -0000       1.6
  @@ -1,8 +1,4 @@
   /*
  - * $Header$
  - * $Revision$
  - * $Date$
  - *
    * ====================================================================
    *
    * The Apache Software License, Version 1.1
  @@ -92,7 +88,6 @@
    * not required.
    *
    * @author Craig R. McClanahan
  - * @version $Revision$ $Date$
    */
   
   public class StandardService
  @@ -553,8 +548,7 @@
   
           // Validate and update our current component state
           if (!started) {
  -            throw new LifecycleException
  -                (sm.getString("standardService.stop.notStarted"));
  +            return;
           }
   
           // Notify our interested LifecycleListeners
  @@ -562,7 +556,7 @@
   
           lifecycle.fireLifecycleEvent(STOP_EVENT, null);
   
  -        System.out.println
  +        log.info
               (sm.getString("standardService.stop.name", this.name));
           started = false;
   
  @@ -582,16 +576,14 @@
                   }
               }
           }
  -        
  -        // unregister this service
  -        if( oname!=null ) {
  -            try {
  -                Registry.getRegistry().unregisterComponent(oname);
  -                log.info("unregistering " + oname);
  -            } catch (Exception e) {
  -                log.error("Error unregistering ",e);
  -            }
  +
  +        if( oname==controller ) {
  +            // we registered ourself on init().
  +            // That should be the typical case - this object is just for
  +            // backward compat, nobody should bother to load it explicitely
  +            Registry.getRegistry().unregisterComponent(oname);
           }
  +        
   
           // Notify our interested LifecycleListeners
           lifecycle.fireLifecycleEvent(AFTER_STOP_EVENT, null);
  @@ -619,6 +611,7 @@
                   Container engine=this.getContainer();
                   domain=engine.getName();
                   oname=new ObjectName(domain + ":type=Service,serviceName="+name);
  +                this.controller=oname;
                   Registry.getRegistry().registerComponent(this, oname, null);
               } catch (Exception e) {
                   log.error("Error registering ",e);
  @@ -641,6 +634,11 @@
                   }
           }
       }
  +    
  +    public void destroy() throws LifecycleException {
  +        if( started ) stop();
  +        // unregister should be here probably
  +    }
   
       public void init() {
           try {
  @@ -654,6 +652,7 @@
       protected String domain;
       protected String suffix;
       protected ObjectName oname;
  +    protected ObjectName controller;
       protected MBeanServer mserver;
   
       public ObjectName getObjectName() {
  
  
  

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

Reply via email to