Author: orudyy
Date: Fri May 17 15:26:54 2013
New Revision: 1483863

URL: http://svn.apache.org/r1483863
Log:
QPID-4862: Improve registration/unregistration for JMX MBean objects

Modified:
    
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
    
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java
    
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java

Modified: 
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java?rev=1483863&r1=1483862&r2=1483863&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java
 Fri May 17 15:26:54 2013
@@ -108,11 +108,7 @@ public class JMXManagement extends Abstr
             {
                 start();
             }
-            catch (JMException e)
-            {
-                throw new RuntimeException("Couldn't start JMX management", e);
-            }
-            catch (IOException e)
+            catch (Exception e)
             {
                 throw new RuntimeException("Couldn't start JMX management", e);
             }
@@ -226,9 +222,9 @@ public class JMXManagement extends Abstr
                 {
                     mbean.unregister();
                 }
-                catch (JMException e)
+                catch (Exception e)
                 {
-                    LOGGER.error("Error unregistering mbean", e);
+                    LOGGER.error("Exception while unregistering mbean for " + 
object.getClass().getSimpleName() + " " + object.getName(), e);
                 }
             }
             _children.clear();
@@ -270,9 +266,9 @@ public class JMXManagement extends Abstr
                     createAdditionalMBeansFromProviders(child, mbean);
                 }
             }
-            catch(JMException e)
+            catch(Exception e)
             {
-                LOGGER.error("Error creating mbean", e);
+                LOGGER.error("Exception while creating mbean for " + 
child.getClass().getSimpleName() + " " + child.getName(), e);
                 // TODO - Implement error reporting on mbean creation
             }
         }
@@ -281,40 +277,19 @@ public class JMXManagement extends Abstr
     @Override
     public void childRemoved(ConfiguredObject object, ConfiguredObject child)
     {
-        // TODO - implement vhost removal (possibly just removing the 
instanceof check below)
-
         synchronized (_children)
         {
-            if(child instanceof 
PasswordCredentialManagingAuthenticationProvider)
+            AMQManagedObject mbean = _children.remove(child);
+            if(mbean != null)
             {
-                AMQManagedObject mbean = _children.remove(child);
-                if(mbean != null)
+                try
                 {
-                    try
-                    {
-                        mbean.unregister();
-                    }
-                    catch(JMException e)
-                    {
-                        LOGGER.error("Error unregistering user management 
mbean: " + child.getName(), e);
-                        //TODO - report error on removing child MBean
-                    }
+                    mbean.unregister();
                 }
-            }
-            else if (child instanceof VirtualHost)
-            {
-                AMQManagedObject mbean = _children.remove(child);
-                if(mbean != null)
+                catch(Exception e)
                 {
-                    try
-                    {
-                        mbean.unregister();
-                    }
-                    catch(JMException e)
-                    {
-                        LOGGER.error("Error unregistering virtual host mbean 
:" + child.getName(), e);
-                        //TODO - report error on removing child MBean
-                    }
+                    LOGGER.error("Exception while unregistering mbean for " + 
child.getClass().getSimpleName() + " " + child.getName(), e);
+                    //TODO - report error on removing child MBean
                 }
             }
         }

Modified: 
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java?rev=1483863&r1=1483862&r2=1483863&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java
 (original)
+++ 
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostMBean.java
 Fri May 17 15:26:54 2013
@@ -173,9 +173,9 @@ public class VirtualHostMBean extends AM
                 }
 
             }
-            catch(JMException e)
+            catch(Exception e)
             {
-                LOGGER.error("Failed to add mbean for child : " + 
child.getName(), e);
+                LOGGER.error("Exception while creating mbean for " + 
child.getClass().getSimpleName() + " " + child.getName(), e);
             }
         }
     }
@@ -191,9 +191,9 @@ public class VirtualHostMBean extends AM
                 {
                     mbean.unregister();
                 }
-                catch(JMException e)
+                catch(Exception e)
                 {
-                    LOGGER.error("Failed to remove mbean for child : " + 
child.getName(), e);
+                    LOGGER.error("Exception while unregistering mbean for " + 
child.getClass().getSimpleName() + " " + child.getName(), e);
                 }
             }
         }
@@ -233,6 +233,8 @@ public class VirtualHostMBean extends AM
     @Override
     public void unregister() throws JMException
     {
+        _virtualHost.removeChangeListener(this);
+
         synchronized (_children)
         {
             for (AMQManagedObject mbean : _children.values())
@@ -243,9 +245,9 @@ public class VirtualHostMBean extends AM
                     {
                         mbean.unregister();
                     }
-                    catch(JMException e)
+                    catch(Exception e)
                     {
-                        LOGGER.error("Failed to remove mbean for child : " + 
mbean, e);
+                        LOGGER.error("Exception while unregistering mbean : " 
+ mbean, e);
                     }
                 }
             }

Modified: 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java?rev=1483863&r1=1483862&r2=1483863&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
 (original)
+++ 
qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/virtualhost/VirtualHostImpl.java
 Fri May 17 15:26:54 2013
@@ -467,6 +467,9 @@ public class VirtualHostImpl implements 
             }
         }
 
+        // clear exchange objects
+        _exchangeRegistry.clearAndUnregisterMbeans();
+
         _state = State.STOPPED;
 
         CurrentActor.get().message(VirtualHostMessages.CLOSED());



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to