You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by da...@apache.org on 2012/09/10 13:28:18 UTC

svn commit: r1382761 - /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagementContext.java

Author: davsclaus
Date: Mon Sep 10 11:28:18 2012
New Revision: 1382761

URL: http://svn.apache.org/viewvc?rev=1382761&view=rev
Log:
Polished

Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagementContext.java

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagementContext.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagementContext.java?rev=1382761&r1=1382760&r2=1382761&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagementContext.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/ManagementContext.java Mon Sep 10 11:28:18 2012
@@ -83,12 +83,19 @@ public class ManagementContext implement
     public void start() throws IOException {
         // lets force the MBeanServer to be created if needed
         if (started.compareAndSet(false, true)) {
+            // force mbean server to be looked up, so we have it
             getMBeanServer();
+
             if (connectorServer != null) {
                 try {
-                    getMBeanServer().invoke(namingServiceObjectName, "start", null, null);
+                    if (getMBeanServer().isRegistered(namingServiceObjectName)) {
+                        LOG.debug("Invoking start on mbean: {}", namingServiceObjectName);
+                        getMBeanServer().invoke(namingServiceObjectName, "start", null, null);
+                    }
                 } catch (Throwable ignore) {
+                    LOG.debug("Error invoking start on mbean " + namingServiceObjectName + ". This exception is ignored.", ignore);
                 }
+
                 Thread t = new Thread("JMX connector") {
                     @Override
                     public void run() {
@@ -171,14 +178,27 @@ public class ManagementContext implement
                 // check to see if the factory knows about this server
                 List list = MBeanServerFactory.findMBeanServer(null);
                 if (list != null && !list.isEmpty() && list.contains(beanServer)) {
+                    LOG.debug("Releasing MBeanServer {}", beanServer);
                     MBeanServerFactory.releaseMBeanServer(beanServer);
                 }
             }
             beanServer = null;
+
             if (registrySocket!=null) {
                 try {
+                    if (LOG.isDebugEnabled()) {
+                        LOG.debug("Closing registry socket {}, is closed: {}, is bound: {}",
+                            new Object[]{registrySocket, registrySocket.isClosed(), registrySocket.isBound()});
+                    }
+
                     registrySocket.close();
+
+                    if (LOG.isDebugEnabled()) {
+                        LOG.debug("Closed registry socket {}, is closed: {}, is bound: {}",
+                            new Object[]{registrySocket, registrySocket.isClosed(), registrySocket.isBound()});
+                    }
                 } catch (IOException e) {
+                    LOG.debug("Error closing registry socket " + registrySocket + ". This exception is ignored.", e);
                 }
                 registrySocket = null;
             }
@@ -471,10 +491,9 @@ public class ManagementContext implement
     /**
      * @param mbeanServer
      * @throws MalformedObjectNameException
-     * @throws MalformedURLException
      * @throws IOException
      */
-    private void createConnector(MBeanServer mbeanServer) throws MalformedObjectNameException, MalformedURLException, IOException {
+    private void createConnector(MBeanServer mbeanServer) throws MalformedObjectNameException, IOException {
         // Create the NamingService, needed by JSR 160
         try {
             if (registry == null) {