@Override
    public synchronized JRTConnection switchConnection(Connection failingConnection) {
        if (getSources().size() <= 1) return getCurrent();

        List<JRTConnection> sourceCandidates = getSources();
        sourceCandidates.remove(failingConnection);
        return pickNewConnectionRandomly(sourceCandidates);
    }
A pool of JRT connections to a set of file distribution source (one or more config servers).
Used by file distribution clients, where the source that can serve a file reference might be
different for each file reference (unlike config requests, where all requests should be served by the same source).
A new connection is chosen randomly when calling {#link {@link #switchConnection(Connection failingConnection)}}.
Unlike JRTConnectionPool there is no state that holds the 'current' connection, a new connection is picked
randomly if {@link #getCurrent()} is called.

@author hmusum
filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileDistributionConnectionPool.java