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;
