code: public static int findFreePort() {
      ServerSocket socket = null;
      try {
        socket = new ServerSocket(0);
        socket.setReuseAddress(true);
        int port = socket.getLocalPort();
        try {
          socket.close();
        } catch(IOException e) {
          // Ignore IOException on close()
        }
        return port;
      } catch(IOException e) {
      } finally {
        if(socket != null) {
          try {
            socket.close();
          } catch(IOException e) {
          }
        }
      }
      throw new IllegalStateException("Could not find a free TCP/IP port to start Galaxy on");
    }
docs: Returns a free port number on localhost.
  
  Heavily inspired from org.eclipse.jdt.launching.SocketUtil (to avoid a dependency to JDT just because of this).
  Slightly improved with close() missing in JDT. And throws exception instead of returning -1.
  
  https://gist.github.com/vorburger/3429822
  
  @return a free port number on localhost
  @throws IllegalStateException if unable to find a free port