Author: ffang
Date: Wed Aug  8 00:06:45 2012
New Revision: 1370603

URL: http://svn.apache.org/viewvc?rev=1370603&view=rev
Log:
[KARAF-1574]When two karaf containers are started locally, an exception is 
displayed at startup. A nicer message would be better.

Modified:
    
karaf/branches/karaf-2.2.x/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java

Modified: 
karaf/branches/karaf-2.2.x/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
URL: 
http://svn.apache.org/viewvc/karaf/branches/karaf-2.2.x/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java?rev=1370603&r1=1370602&r2=1370603&view=diff
==============================================================================
--- 
karaf/branches/karaf-2.2.x/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
 (original)
+++ 
karaf/branches/karaf-2.2.x/management/server/src/main/java/org/apache/karaf/management/ConnectorServerFactory.java
 Wed Aug  8 00:06:45 2012
@@ -19,6 +19,7 @@ package org.apache.karaf.management;
 import org.apache.karaf.jaas.config.KeystoreManager;
 
 import java.io.IOException;
+import java.net.BindException;
 import java.net.ServerSocket;
 import java.rmi.server.RMIClientSocketFactory;
 import java.rmi.server.RMIServerSocketFactory;
@@ -230,6 +231,17 @@ public class ConnectorServerFactory {
                             
Thread.currentThread().setContextClassLoader(ConnectorServerFactory.class.getClassLoader());
                             connectorServer.start();
                         } catch (IOException ex) {
+                            if (ex.getCause() instanceof BindException){
+                                // we want just the port message
+                                int endIndex = ex.getMessage().indexOf("nested 
exception is");
+                                // check to make sure we do not get an index 
out of range
+                                if (endIndex > ex.getMessage().length() || 
endIndex < 0){
+                                    endIndex = ex.getMessage().length();
+                                }
+                                throw new RuntimeException("\n" + 
ex.getMessage().substring(0, endIndex) +
+                                        "\nYou may have started two 
containers.  If you need to start a second container or the default ports are 
already in use " +
+                                        "update the config file 
etc/org.apache.karaf.management.cfg and change the Registry Port and Server 
Port to unused ports");
+                            }
                             throw new RuntimeException("Could not start JMX 
connector server", ex);
                         }
                     }


Reply via email to