User: user57  
  Date: 02/02/12 22:38:33

  Modified:    src/main/org/jboss/system ServiceController.java
  Log:
   o Added some warning logs when trying to stop/remove/whatever a service
     when the ObjectName given has no service context (before we silently
     ignored).
   o Fixed bug [ #511024 ] Exception when destroying Topic or Queue
     Simplified the bits that needed to talk to the SC by using a proxy
   o Updated the location where destinations are bound (jboss.mq.destination)
  
  Revision  Changes    Path
  1.27      +99 -76    jboss/src/main/org/jboss/system/ServiceController.java
  
  Index: ServiceController.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss/src/main/org/jboss/system/ServiceController.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- ServiceController.java    12 Feb 2002 03:22:03 -0000      1.26
  +++ ServiceController.java    13 Feb 2002 06:38:33 -0000      1.27
  @@ -36,33 +36,34 @@
   import org.jboss.logging.Logger;
   
   /**
  -* This is the main Service Controller. A controller can deploy a service to a
  -* jboss.system It installs by delegating, it configures by delegating
  -*
  -* @see org.jboss.system.Service
  -* @author <a href="mailto:[EMAIL PROTECTED]";>Marc Fleury</a>
  -* @author <a href="mailto:[EMAIL PROTECTED]";>David Jencks</a>
  -* @version $Revision: 1.26 $ <p>
  -*
  -* <b>Revisions:</b> <p>
  -*
  -* <b>20010830 marcf</b>
  -* <ol>
  -*   <li>Initial version checked in
  -* </ol>
  -* <b>20010908 david jencks</b>
  -* <ol>
  -*   <li>fixed tabs to spaces and log4j logging. Made it report the number
  -*       of successes on init etc.  Modified to support remove and work with
  -*       .sar dependency management and recursive sar deployment.
  -* </ol>
  -* <b>2001210 marcf</b>
  -* <ol>
  -*   <li>Rewrite
  -* </ol>
  -*/
  + * This is the main Service Controller. A controller can deploy a service to a
  + * jboss.system It installs by delegating, it configures by delegating
  + *
  + * @see org.jboss.system.Service
  + * 
  + * @author <a href="mailto:[EMAIL PROTECTED]";>Marc Fleury</a>
  + * @author <a href="mailto:[EMAIL PROTECTED]";>David Jencks</a>
  + * @version $Revision: 1.27 $ <p>
  + *
  + * <b>Revisions:</b> <p>
  + *
  + * <b>20010830 marcf</b>
  + * <ol>
  + *   <li>Initial version checked in
  + * </ol>
  + * <b>20010908 david jencks</b>
  + * <ol>
  + *   <li>fixed tabs to spaces and log4j logging. Made it report the number
  + *       of successes on init etc.  Modified to support remove and work with
  + *       .sar dependency management and recursive sar deployment.
  + * </ol>
  + * <b>2001210 marcf</b>
  + * <ol>
  + *   <li>Rewrite
  + * </ol>
  + */
   public class ServiceController
  -implements ServiceControllerMBean, MBeanRegistration
  +   implements ServiceControllerMBean, MBeanRegistration
   {
      // Attributes ----------------------------------------------------
      
  @@ -297,9 +298,16 @@
         boolean debug = log.isDebugEnabled();
   
         ServiceContext ctx = (ServiceContext) getServiceContext(serviceName);
  +
  +      if (ctx == null) {
  +         log.warn("Ignoring request to start non-existant service: " + serviceName);
  +         return;
  +      }
         
         // If we are already started (can happen in dependencies) just return
  -      if (ctx.state == ServiceContext.RUNNING) return;
  +      if (ctx.state == ServiceContext.RUNNING) {
  +         return;
  +      }
            
         // JSR 77, and to avoid circular dependencies
         int oldState = ctx.state; 
  @@ -362,34 +370,42 @@
         boolean debug = log.isDebugEnabled();
         
         ServiceContext ctx = (ServiceContext) nameToServiceMap.get(serviceName);
  -      if (debug)
  +      if (debug) {
            log.debug("stopping service: " + serviceName);
  -      if (ctx != null)
  +      }
  +      
  +      if (ctx == null) {
  +         log.warn("Ignoring request to stop non-existant service: " + serviceName);
  +         return;
  +      }
  +      
  +      // If we are already stopped (can happen in dependencies) just return
  +      if (ctx.state == ServiceContext.STOPPED) return;
  +      
  +      // JSR 77 and to avoid circular dependencies
  +      ctx.state = ServiceContext.STOPPED;
  +      
  +      if (debug)
  +         log.debug("service context has " + ctx.dependsOnMe.size() + " depending 
services");
  +      Iterator iterator = ctx.dependsOnMe.iterator();
  +      while (iterator.hasNext())
         {
  -         // If we are already stopped (can happen in dependencies) just return
  -         if (ctx.state == ServiceContext.STOPPED) return;
  -            
  -         // JSR 77 and to avoid circular dependencies
  -         ctx.state = ServiceContext.STOPPED;
  -         
  +         // stop all the mbeans that depend on me
  +         ObjectName other = ((ServiceContext) iterator.next()).objectName;
            if (debug)
  -            log.debug("service context has " + ctx.dependsOnMe.size() + " depending 
services");
  -         Iterator iterator = ctx.dependsOnMe.iterator();
  -         while (iterator.hasNext())
  -         {
  -            // stop all the mbeans that depend on me
  -            ObjectName other = ((ServiceContext) iterator.next()).objectName;
  -            if (debug)
  -               log.debug("stopping dependent service " + other);
  -            stop(other);
  -         }
  +            log.debug("stopping dependent service " + other);
  +         stop(other);
  +      }
            
  -         // Call create on the service Proxy
  -         try { ctx.proxy.stop(); }
  -            
  -         catch (Exception e){ ctx.state = ServiceContext.FAILED; throw e;}
  +      // Call create on the service Proxy
  +      try {
  +         ctx.proxy.stop();
         }
  -   }   
  +      catch (Exception e) {
  +         ctx.state = ServiceContext.FAILED;
  +         throw e;
  +      }
  +   }
      
      /**
      * #Description of the Method
  @@ -404,33 +420,35 @@
         ServiceContext ctx = (ServiceContext) nameToServiceMap.get(serviceName);
         if (debug)
            log.debug("destroying service: " + serviceName);
  +
  +      if (ctx == null) {
  +         log.warn("Ignoring request to destroy non-existant service: " + 
serviceName);
  +         return;
  +      }
         
  -      if (ctx != null) 
  -      {
  -         // If we are already destroyed (can happen in dependencies) just return
  -         if (ctx.state == ServiceContext.DESTROYED) return;
  -            
  -         // JSR 77, and to avoid circular dependencies
  -         ctx.state = ServiceContext.DESTROYED;
  -         
  -         Iterator iterator = ctx.dependsOnMe.iterator();
  -         while (iterator.hasNext())
  -         {        
  -            // destroy all the mbeans that depend on me
  -            ObjectName other = ((ServiceContext) iterator.next()).objectName;
  -            if (debug)
  -               log.debug("destroying dependent service " + other);
  -            destroy(other);
  -         }
  -         
  -         // Call create on the service Proxy  
  -         try {
  -            ctx.proxy.destroy();
  -         }   
  -         catch (Exception e){
  -            ctx.state = ServiceContext.FAILED;
  -            throw e;
  -         }
  +      // If we are already destroyed (can happen in dependencies) just return
  +      if (ctx.state == ServiceContext.DESTROYED) return;
  +      
  +      // JSR 77, and to avoid circular dependencies
  +      ctx.state = ServiceContext.DESTROYED;
  +      
  +      Iterator iterator = ctx.dependsOnMe.iterator();
  +      while (iterator.hasNext())
  +      {        
  +         // destroy all the mbeans that depend on me
  +         ObjectName other = ((ServiceContext) iterator.next()).objectName;
  +         if (debug)
  +            log.debug("destroying dependent service " + other);
  +         destroy(other);
  +      }
  +      
  +      // Call create on the service Proxy  
  +      try {
  +         ctx.proxy.destroy();
  +      }   
  +      catch (Exception e){
  +         ctx.state = ServiceContext.FAILED;
  +         throw e;
         }
      }   
      
  @@ -458,6 +476,11 @@
         ServiceContext ctx = getServiceContext(objectName);
         if (debug)
            log.debug("removing service: " + objectName);
  +
  +      if (ctx == null) {
  +         log.warn("Ignoring request to remove non-existant service: " + objectName);
  +         return;
  +      }
         
         // Notify those that think I depend on them
         Iterator iterator = ctx.iDependOn.iterator();
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to