@Override public boolean equals(Object obj) { if (obj == null || !(obj instanceof RPCServiceAddress)) { return false; } RPCServiceAddress rhs = (RPCServiceAddress)obj; if (!serviceName.equals(rhs.serviceName)) { return false; } if (!connectionSpec.host().equals(rhs.connectionSpec.host())) { return false; } if (connectionSpec.port() != rhs.connectionSpec.port()) { return false; } if (!sessionName.equals(rhs.sessionName)) { return false; } return true; }
private static ServerSocketChannel createServerSocketChannel(Spec spec) throws ListenFailedException { ServerSocketChannel serverChannel = null; try { serverChannel = ServerSocketChannel.open(); serverChannel.configureBlocking(true); if (spec.port() != 0) { serverChannel.socket().setReuseAddress(true); } serverChannel.socket().bind(spec.address(), 500); } catch (Exception e) { if (serverChannel != null) { try { serverChannel.socket().close(); } catch (Exception ignore) {} } throw new ListenFailedException("Failed to listen to " + spec, e); } return serverChannel; }