(ReplyWorker.readReply(socketProvider)).dumpReply();
    private void negotiateAndLogin(String authCommand) throws IOException,            AuthenticationNotSupportedException, FtpWorkflowException,            FtpIOException {        Reply reply = null;        if (authCommand != null) // null means implicit SSL        {            reply = sendCommand(new Command(authCommand));            reply.dumpReply();        }        if (authCommand == null || ReplyCode.isPositiveCompletionReply(reply)) {            try {                socketProvider.setSSLMode(getConnectionType());                socketProvider.negotiate();            } catch (Exception e) {                log.error(e, e);            }            reply = sendCommand(new Command(Command.USER, getUser()));            reply.dumpReply();            reply.validate();            if (getPassword() != null && getPassword().length() > 0) {                reply = sendCommand(new Command(Command.PASS, getPassword()));                reply.dumpReply();                reply.validate();            }            if (getAccount() != null && getAccount().length() > 0) {                reply = sendCommand(new Command(Command.ACCT, getAccount()));                reply.dumpReply();                reply.validate();            }        } else {            throw new AuthenticationNotSupportedException(authCommand                    + " not supported by server");        }    }