private DaemonClientConnection connectToDaemon( DaemonInstanceDetails daemon, DaemonClientConnection.StaleAddressDetector staleAddressDetector) throws ConnectException { RemoteConnection<Message> connection; try { MessageSerializer<Message> serializer = new KryoBackedMessageSerializer<Message>( Serializers.stateful(DaemonMessageSerializer.create())); connection = connector.connect(daemon.getAddress()).create(serializer); } catch (ConnectException e) { staleAddressDetector.maybeStaleAddress(e); throw e; } return new DaemonClientConnection(connection, daemon, staleAddressDetector); }