[jboss-cvs] JBossAS SVN: r89148 - trunk/profileservice/src/main/org/jboss/profileservice/management.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 19 22:57:38 EDT 2009


Author: david.lloyd at jboss.com
Date: 2009-05-19 22:57:37 -0400 (Tue, 19 May 2009)
New Revision: 89148

Modified:
   trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
Log:
JBAS-6953 - improper interrupt handling

Modified: trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java
===================================================================
--- trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java	2009-05-20 02:54:45 UTC (rev 89147)
+++ trunk/profileservice/src/main/org/jboss/profileservice/management/ManagementViewImpl.java	2009-05-20 02:57:37 UTC (rev 89148)
@@ -236,121 +236,129 @@
       
       // Clear any thread interrupt
       boolean wasInterrupted = Thread.interrupted();
-      if(wasInterrupted)
-         log.debug("Cleared interrupted state of calling thread");
+      try
+      {
+         if(wasInterrupted)
+            log.trace("Cleared interrupted state of calling thread");
 
-      // Cleanup
-      release();
 
-      // 
-      boolean trace = log.isTraceEnabled();
-      
-      // load the profiles
-      loadProfiles(trace);
 
-      // Process mbean components that need to be exposed as ManagedDeployment/ManagedComponent
-      for(ManagedMBeanDeploymentFactory mdf : mdfs.values())
-      {
-         log.debug("Processing deployments for factory: "+mdf.getFactoryName());
-         Collection<MBeanDeployment> deployments = mdf.getDeployments(mbeanServer);
-         for(MBeanDeployment md : deployments)
+         // Cleanup
+         release();
+
+         //
+         boolean trace = log.isTraceEnabled();
+
+         // load the profiles
+         loadProfiles(trace);
+
+         // Process mbean components that need to be exposed as ManagedDeployment/ManagedComponent
+         for(ManagedMBeanDeploymentFactory mdf : mdfs.values())
          {
-            log.debug("Saw MBeanDeployment: "+md);
-            HashMap<String, ManagedObject> unitMOs = new HashMap<String, ManagedObject>();
-            Collection<MBeanComponent> components = md.getComponents();
-            if(components != null)
+            log.debug("Processing deployments for factory: "+mdf.getFactoryName());
+            Collection<MBeanDeployment> deployments = mdf.getDeployments(mbeanServer);
+            for(MBeanDeployment md : deployments)
             {
-               for(MBeanComponent comp : components)
+               log.debug("Saw MBeanDeployment: "+md);
+               HashMap<String, ManagedObject> unitMOs = new HashMap<String, ManagedObject>();
+               Collection<MBeanComponent> components = md.getComponents();
+               if(components != null)
                {
-                  log.debug("Saw MBeanComponent: "+comp);
-                  try
+                  for(MBeanComponent comp : components)
                   {
-                     ManagedObject mo = createManagedObject(comp.getName(), mdf.getDefaultViewUse());
-                     
-                     String name = comp.getName().getCanonicalName();
-                     ManagementObject moAnn = createMOAnnotation(name, comp.getType(), comp.getSubtype());
+                     log.debug("Saw MBeanComponent: "+comp);
+                     try
+                     {
+                        ManagedObject mo = createManagedObject(comp.getName(), mdf.getDefaultViewUse());
 
-                     // Both the ManagementObject and ManagementComponent annotation need to be in the MO annotations
-                     mo.getAnnotations().put(ManagementObject.class.getName(), moAnn);
-                     ManagementComponent mcAnn = moAnn.componentType();
-                     mo.getAnnotations().put(ManagementComponent.class.getName(), mcAnn);
-                     unitMOs.put(name, mo);
+                        String name = comp.getName().getCanonicalName();
+                        ManagementObject moAnn = createMOAnnotation(name, comp.getType(), comp.getSubtype());
+
+                        // Both the ManagementObject and ManagementComponent annotation need to be in the MO annotations
+                        mo.getAnnotations().put(ManagementObject.class.getName(), moAnn);
+                        ManagementComponent mcAnn = moAnn.componentType();
+                        mo.getAnnotations().put(ManagementComponent.class.getName(), mcAnn);
+                        unitMOs.put(name, mo);
+                     }
+                     catch(Exception e)
+                     {
+                        log.warn("Failed to create ManagedObject for: "+comp, e);
+                     }
                   }
-                  catch(Exception e)
-                  {
-                     log.warn("Failed to create ManagedObject for: "+comp, e);
-                  }
                }
+               ManagedDeploymentImpl mdi = new ManagedDeploymentImpl(md.getName(), md.getName(), null, unitMOs);
+               mdi.setTypes(Collections.singleton("external-mbean"));
+               try
+               {
+                  processManagedDeployment(mdi, null, DeploymentState.STARTED, 0, trace);
+               }
+               catch(Exception e)
+               {
+                  log.warn("Failed to process ManagedDeployment for: " + md.getName(), e);
+               }
             }
-            ManagedDeploymentImpl mdi = new ManagedDeploymentImpl(md.getName(), md.getName(), null, unitMOs);
-            mdi.setTypes(Collections.singleton("external-mbean"));
+         }
+
+         // Process the bootstrap deployments
+         for(ManagedDeployment md : bootstrapManagedDeployments.values())
+         {
             try
             {
-               processManagedDeployment(mdi, null, DeploymentState.STARTED, 0, trace);
+               //
+               processManagedDeployment(md, null, DeploymentState.STARTED, 0, trace);
             }
             catch(Exception e)
             {
                log.warn("Failed to process ManagedDeployment for: " + md.getName(), e);
             }
          }
-      }
+         if(this.runtimeMOs.size() > 0)
+            log.warn("Failed to merged the following runtime ManagedObjects: "+runtimeMOs);
 
-      // Process the bootstrap deployments
-      for(ManagedDeployment md : bootstrapManagedDeployments.values())
-      {
+         // Now create a ManagedDeployment for the platform beans
+         Map<String, ManagedObject> platformMBeanMOs = ManagementFactoryUtils.getPlatformMBeanMOs(managedObjFactory);
+         ManagedDeploymentImpl platformMBeans = new ManagedDeploymentImpl("JDK PlatformMBeans", "PlatformMBeans", null,
+               platformMBeanMOs);
+         List<ManagedObject> gcMbeans = ManagementFactoryUtils.getGarbageCollectorMXBeans(managedObjFactory);
+         Map<String, ManagedObject> gcMOs = new HashMap<String, ManagedObject>();
+         for (ManagedObject mo : gcMbeans)
+            gcMOs.put(mo.getName(), mo);
+         List<ManagedObject> mmMbeans = ManagementFactoryUtils.getMemoryManagerMXBeans(managedObjFactory);
+         Map<String, ManagedObject> mmMOs = new HashMap<String, ManagedObject>();
+         for (ManagedObject mo : mmMbeans)
+            mmMOs.put(mo.getName(), mo);
+         List<ManagedObject> mpoolMBeans = ManagementFactoryUtils.getMemoryPoolMXBeans(managedObjFactory);
+         Map<String, ManagedObject> mpoolMOs = new HashMap<String, ManagedObject>();
+         for (ManagedObject mo : mpoolMBeans)
+            mpoolMOs.put(mo.getName(), mo);
+         ManagedDeploymentImpl gcMD = new ManagedDeploymentImpl("GarbageCollectorMXBeans", "GarbageCollectorMXBeans",
+               null, gcMOs);
+         platformMBeans.getChildren().add(gcMD);
+         ManagedDeploymentImpl mmMD = new ManagedDeploymentImpl("MemoryManagerMXBeans", "MemoryManagerMXBeans", null, mmMOs);
+         platformMBeans.getChildren().add(mmMD);
+         ManagedDeploymentImpl mpoolMD = new ManagedDeploymentImpl("MemoryPoolMXBeans", "MemoryPoolMXBeans", null, mpoolMOs);
+         platformMBeans.getChildren().add(mpoolMD);
+
          try
          {
-            // 
-            processManagedDeployment(md, null, DeploymentState.STARTED, 0, trace); 
+            // Create the ManagedComponents
+            processManagedDeployment(platformMBeans, null, DeploymentState.STARTED, 0, trace);
          }
          catch(Exception e)
          {
-            log.warn("Failed to process ManagedDeployment for: " + md.getName(), e);
+            log.warn("Failed to process ManagedDeployments for the platform beans", e);
          }
+
+         return true;
       }
-      if(this.runtimeMOs.size() > 0)
-         log.warn("Failed to merged the following runtime ManagedObjects: "+runtimeMOs);
-      
-      // Now create a ManagedDeployment for the platform beans
-      Map<String, ManagedObject> platformMBeanMOs = ManagementFactoryUtils.getPlatformMBeanMOs(managedObjFactory);
-      ManagedDeploymentImpl platformMBeans = new ManagedDeploymentImpl("JDK PlatformMBeans", "PlatformMBeans", null,
-            platformMBeanMOs);
-      List<ManagedObject> gcMbeans = ManagementFactoryUtils.getGarbageCollectorMXBeans(managedObjFactory);
-      Map<String, ManagedObject> gcMOs = new HashMap<String, ManagedObject>();
-      for (ManagedObject mo : gcMbeans)
-         gcMOs.put(mo.getName(), mo);
-      List<ManagedObject> mmMbeans = ManagementFactoryUtils.getMemoryManagerMXBeans(managedObjFactory);
-      Map<String, ManagedObject> mmMOs = new HashMap<String, ManagedObject>();
-      for (ManagedObject mo : mmMbeans)
-         mmMOs.put(mo.getName(), mo);
-      List<ManagedObject> mpoolMBeans = ManagementFactoryUtils.getMemoryPoolMXBeans(managedObjFactory);
-      Map<String, ManagedObject> mpoolMOs = new HashMap<String, ManagedObject>();
-      for (ManagedObject mo : mpoolMBeans)
-         mpoolMOs.put(mo.getName(), mo);
-      ManagedDeploymentImpl gcMD = new ManagedDeploymentImpl("GarbageCollectorMXBeans", "GarbageCollectorMXBeans",
-            null, gcMOs);
-      platformMBeans.getChildren().add(gcMD);
-      ManagedDeploymentImpl mmMD = new ManagedDeploymentImpl("MemoryManagerMXBeans", "MemoryManagerMXBeans", null, mmMOs);
-      platformMBeans.getChildren().add(mmMD);
-      ManagedDeploymentImpl mpoolMD = new ManagedDeploymentImpl("MemoryPoolMXBeans", "MemoryPoolMXBeans", null, mpoolMOs);
-      platformMBeans.getChildren().add(mpoolMD);
-      
-      try
+      finally
       {
-         // Create the ManagedComponents
-         processManagedDeployment(platformMBeans, null, DeploymentState.STARTED, 0, trace);   
+         if(wasInterrupted)
+         {
+            Thread.currentThread().interrupt();
+            log.trace("Restored interrupted state of calling thread");
+         }
       }
-      catch(Exception e)
-      {
-         log.warn("Failed to process ManagedDeployments for the platform beans", e);
-      }
-
-      if(wasInterrupted)
-      {
-         Thread.currentThread().interrupt();
-         log.debug("Restored interrupted state of calling thread");
-      }
-      return true;
    }
    
    public void reload()




More information about the jboss-cvs-commits mailing list