@Override
    public synchronized void setTransferFuture(Future<?> future) {
        if(this.future != null) {
            throw new IllegalStateException("Transfer is already in progress, or has completed.");
        }
        this.future = future;
    }
Tracks the different connections related to a file transfer. There are two connections, the
initiator and the target and when both connections are completed the transfer can begin.
xmppserver/src/main/java/org/jivesoftware/openfire/filetransfer/proxy/DefaultProxyTransfer.java