[jboss-cvs] JBossAS SVN: r103729 - trunk/system/src/main/java/org/jboss/system/server/jmx.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Apr 9 01:24:40 EDT 2010
Author: smarlow at redhat.com
Date: 2010-04-09 01:24:40 -0400 (Fri, 09 Apr 2010)
New Revision: 103729
Modified:
trunk/system/src/main/java/org/jboss/system/server/jmx/JMXConnector.java
Log:
JBAS-7827 improve error checking
Modified: trunk/system/src/main/java/org/jboss/system/server/jmx/JMXConnector.java
===================================================================
--- trunk/system/src/main/java/org/jboss/system/server/jmx/JMXConnector.java 2010-04-09 04:46:05 UTC (rev 103728)
+++ trunk/system/src/main/java/org/jboss/system/server/jmx/JMXConnector.java 2010-04-09 05:24:40 UTC (rev 103729)
@@ -33,9 +33,13 @@
import javax.management.remote.rmi.RMIConnectorServer;
import javax.management.remote.rmi.RMIJRMPServerImpl;
import javax.naming.InitialContext;
+import javax.naming.NamingException;
import javax.naming.Reference;
import javax.naming.StringRefAddr;
+import java.io.IOException;
import java.lang.management.ManagementFactory;
+import java.rmi.AlreadyBoundException;
+import java.rmi.NotBoundException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.util.HashMap;
@@ -119,47 +123,66 @@
this.hostname = hostname;
}
- public void start() throws Exception {
- if(log.isInfoEnabled()) {
- log.info("starting JMXConnector on host " + hostname + ":" + rmiRegistryPort);
- }
- DefaultClientSocketFactory clientSocketFactory = new DefaultClientSocketFactory();
- clientSocketFactory.setBindAddress(hostname);
- DefaultSocketFactory serverSocketFactory = new DefaultSocketFactory();
- serverSocketFactory.setBindAddress(hostname);
- registry = LocateRegistry.createRegistry(rmiRegistryPort, clientSocketFactory, serverSocketFactory);
- HashMap env = new HashMap();
- if( securityDomain != null)
- env.put(RMIConnectorServer.AUTHENTICATOR, new JMXConnectorAuthenticator( securityDomain) );
- rmiServer = new RMIJRMPServerImpl(rmiServerPort, clientSocketFactory, serverSocketFactory, env);
- JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://" + hostname);
- adapter = new RMIConnectorServer(url, env, rmiServer, mbeanServer);
- adapter.start();
- url = adapter.getAddress();
- registry.bind(RMI_BIND_NAME, rmiServer.toStub());
+ public void start() {
+ try {
+ if(log.isInfoEnabled()) {
+ log.info("starting JMXConnector on host " + hostname + ":" + rmiRegistryPort);
+ }
+ DefaultClientSocketFactory clientSocketFactory = new DefaultClientSocketFactory();
+ clientSocketFactory.setBindAddress(hostname);
+ DefaultSocketFactory serverSocketFactory = new DefaultSocketFactory();
+ serverSocketFactory.setBindAddress(hostname);
+ registry = LocateRegistry.createRegistry(rmiRegistryPort, clientSocketFactory, serverSocketFactory);
+ HashMap env = new HashMap();
+ if( securityDomain != null)
+ env.put(RMIConnectorServer.AUTHENTICATOR, new JMXConnectorAuthenticator( securityDomain) );
+ rmiServer = new RMIJRMPServerImpl(rmiServerPort, clientSocketFactory, serverSocketFactory, env);
+ JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://" + hostname);
+ adapter = new RMIConnectorServer(url, env, rmiServer, mbeanServer);
+ adapter.start();
+ url = adapter.getAddress();
+ registry.rebind(RMI_BIND_NAME, rmiServer.toStub());
- if(log.isDebugEnabled()) {
- log.debug("started JMXConnector (" + url.toString() + ")" +
- (securityDomain!=null ? " domain=" + securityDomain : "") );
+ if(log.isDebugEnabled()) {
+ log.debug("started JMXConnector (" + url.toString() + ")" +
+ (securityDomain!=null ? " domain=" + securityDomain : "") );
+ }
+
+ // For legacy access, bind a JMXAdapter to the JNDI names
+ Reference reference = new Reference(MBeanServerConnection.class.getName(), JMXAdapter.class.getName(), null);
+ reference.add(new StringRefAddr("JMXServiceURL", url.toString()));
+ Util.rebind(context, JNDI_BIND_NAME, reference);
+ Util.rebind(context, LEGACY_BIND_NAME, reference);
+ //Object test = Util.lookup(context, JNDI_BIND_NAME, MBeanServerConnection.class);
+ //log.info("test = " + test);
+ SecurityFactory.prepare();
+ } catch (IOException e) {
+ log.error("Could not start JMXConnector", e);
+ } catch (NamingException e) {
+ log.error("couldn't bind legacy adaptor (" +JNDI_BIND_NAME + " or " + LEGACY_BIND_NAME + ")", e);
}
-
- // For legacy access, bind a JMXAdapter to the JNDI names
- Reference reference = new Reference(MBeanServerConnection.class.getName(), JMXAdapter.class.getName(), null);
- reference.add(new StringRefAddr("JMXServiceURL", url.toString()));
- Util.rebind(context, JNDI_BIND_NAME, reference);
- Util.rebind(context, LEGACY_BIND_NAME, reference);
- //Object test = Util.lookup(context, JNDI_BIND_NAME, MBeanServerConnection.class);
- //log.info("test = " + test);
- //
- SecurityFactory.prepare();
}
- public void stop() throws Exception {
- registry.unbind(RMI_BIND_NAME);
- adapter.stop();
- Util.unbind(context, JNDI_BIND_NAME);
- Util.unbind(context, LEGACY_BIND_NAME);
- SecurityFactory.release();
+ public void stop() {
+ try {
+ registry.unbind(RMI_BIND_NAME);
+ Util.unbind(context, JNDI_BIND_NAME);
+ Util.unbind(context, LEGACY_BIND_NAME);
+ } catch (NotBoundException e) {
+ log.error("connector was not bound ("+RMI_BIND_NAME+") to registry", e);
+ } catch (IOException e) {
+ log.error("couldn't unbind ("+RMI_BIND_NAME+") connector", e);
+ } catch (NamingException e) {
+ log.error("couldn't unbind legacy adaptor (" +JNDI_BIND_NAME + " or " + LEGACY_BIND_NAME + ")", e);
+ }
+ finally {
+ try {
+ SecurityFactory.release();
+ adapter.stop();
+ } catch (IOException e) {
+ log.error("Could not stop connector", e);
+ }
+ }
}
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list