void activate(JID initiator, JID target, String sid) {
        final String digest = createDigest(sid, initiator, target);

        ProxyTransfer temp;
        synchronized (connectionLock) {
            temp = connectionMap.get(digest);
        }
        final ProxyTransfer transfer = temp;
        // check to make sure we have all the required
        // information to start the transfer
        if (transfer == null || !transfer.isActivatable()) {
            throw new IllegalArgumentException("Transfer doesn't exist or is missing parameters");
        }

        transfer.setInitiator(initiator.toString());
        transfer.setTarget(target.toString());
        transfer.setSessionID(sid);
        transfer.setTransferFuture(executor.submit(() -> {
            try {
                transferManager.fireFileTransferStart( transfer.getSessionID(), true );
            }
            catch (FileTransferRejectedException e) {
                notifyFailure(transfer, e);
                return;
            }
            try {
                transfer.doTransfer();
                transferManager.fireFileTransferCompleted( transfer.getSessionID(), true );
            }
            catch (IOException e) {
                Log.error("Error during file transfer", e);
                transferManager.fireFileTransferCompleted( transfer.getSessionID(), false );
            }
            finally {
                connectionMap.remove(digest);
            }
        }));
    }
Activates the stream, this method should be called when the initiator sends the activate
packet after both parties have connected to the proxy.

@param initiator The initiator or sender of the file transfer.
@param target The target or receiver of the file transfer.
@param sid The session id that uniquely identifies the transfer between the two participants.
@throws IllegalArgumentException This exception is thrown when the activated transfer does
                                 not exist or is missing one or both of the sockets.
xmppserver/src/main/java/org/jivesoftware/openfire/filetransfer/proxy/ProxyConnectionManager.java