Author: peter_firmstone
Date: Sat Feb 22 12:17:09 2014
New Revision: 1570829

URL: http://svn.apache.org/r1570829
Log:
Prevent BindException during construction of Reggie by selecting an arbitrary 
port if the configured port is in use, an admin can use DiscoveryAdmin to 
change the Unicast Discovery port later if desired.

Modified:
    
river/jtsk/skunk/qa_refactor/trunk/src/com/sun/jini/reggie/RegistrarImpl.java

Modified: 
river/jtsk/skunk/qa_refactor/trunk/src/com/sun/jini/reggie/RegistrarImpl.java
URL: 
http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/src/com/sun/jini/reggie/RegistrarImpl.java?rev=1570829&r1=1570828&r2=1570829&view=diff
==============================================================================
--- 
river/jtsk/skunk/qa_refactor/trunk/src/com/sun/jini/reggie/RegistrarImpl.java 
(original)
+++ 
river/jtsk/skunk/qa_refactor/trunk/src/com/sun/jini/reggie/RegistrarImpl.java 
Sat Feb 22 12:17:09 2014
@@ -72,7 +72,6 @@ import java.security.PrivilegedException
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -80,7 +79,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
-import java.util.Queue;
 import java.util.Random;
 import java.util.Set;
 import java.util.SortedMap;
@@ -88,17 +86,10 @@ import java.util.SortedSet;
 import java.util.TreeMap;
 import java.util.TreeSet;
 import java.util.concurrent.Callable;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ConcurrentSkipListMap;
 import java.util.concurrent.ConcurrentSkipListSet;
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Future;
-import java.util.concurrent.FutureTask;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.PriorityBlockingQueue;
-import java.util.concurrent.RunnableFuture;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -150,19 +141,13 @@ import net.jini.jeri.BasicILFactory;
 import net.jini.jeri.BasicJeriExporter;
 import net.jini.jeri.tcp.TcpServerEndpoint;
 import net.jini.lookup.JoinManager;
-import net.jini.lookup.ServiceDiscoveryManager;
 import net.jini.lookup.entry.ServiceInfo;
 import net.jini.security.BasicProxyPreparer;
 import net.jini.security.ProxyPreparer;
 import net.jini.security.TrustVerifier;
 import net.jini.security.proxytrust.ServerProxyTrust;
-import org.apache.river.api.util.FutureObserver;
-import org.apache.river.api.util.FutureObserver.ObservableFuture;
 import org.apache.river.api.util.Startable;
-import org.apache.river.impl.thread.ExtensibleExecutorService;
-import 
org.apache.river.impl.thread.ExtensibleExecutorService.RunnableFutureFactory;
 import org.apache.river.impl.thread.NamedThreadFactory;
-import org.apache.river.impl.thread.ObservableFutureTask;
 import org.apache.river.impl.thread.SynchronousExecutors;
 
 /**
@@ -2776,10 +2761,10 @@ class RegistrarImpl implements Registrar
                     logger.log(Level.INFO, "failed to bind to port " + port, 
e);
                     listen = reggie.serverSocketFactory.createServerSocket(0);
                     ephemeral = true;
-                    port = listen.getLocalPort();
-                    logger.log(Level.INFO, "bound to ephemeral port {0}", 
port);
                 }
            }
+            port = listen.getLocalPort();
+            logger.log(Level.INFO, "bound to ephemeral port {0}", port);
             this.listen = listen;
            this.port = port;
             if (ephemeral) reggie.unicastPort = port;


Reply via email to