(ReplyWorker.readReply(socketProvider)).dumpReply(System.out);
(ReplyWorker.readReply(socketProvider)).dumpReply();
    public void connect() throws NotConnectedException, IOException,AuthenticationNotSupportedException {    	  try          {              socketProvider = new SocketProvider();          }catch (IOException ioe)          {              String error = "Error creating SocketProvider: " + ioe.getMessage();              log.error(error,ioe);              throw new NotConnectedException(error);          }          // Only for logging          String hostAndPort = getAddress().getHostName() + ":" + getAddress().getPort();          try          {              if(socketProvider.connect(getAddress()))              {                     log.debug("connected to:" + hostAndPort);                  socketProvider.socket().setSoTimeout(getTimeout());                  socketProvider.socket().setKeepAlive(true);                  socketProvider.configureBlocking(false);              }              else              {                  String error = "Couln't not connect to: " + hostAndPort;                  log.error(error);                  throw new NotConnectedException(error);              }          }catch (IOException ioe)          {              String error = "Error connection to:" + hostAndPort;              log.error(error,ioe);              throw new NotConnectedException(error);          }          //Till here the connection is not encrypted!!          (ReplyWorker.readReply(socketProvider)).dumpReply(System.out);          Reply reply = sendCommand(new Command(Command.FEAT));                    String authCommand = getAuthString();          if(ReplyCode.isPositiveCompletionReply(reply))          {        	  List<String> lines = reply.getLines();        	  boolean found = false;                     	  for(String s : lines)        	  {        		  if(s.indexOf(authCommand) > -1)        		  {                    authCommand = s;        			found = true;        			break;        		  }        	  }         	  if(found)        	  {                  negotiateAndLogin(authCommand);        	  }        	  else       		  {       			  throw new AuthenticationNotSupportedException(authCommand + " not supported by server (not listed in FEAT command)");       		  }          }          else          {              negotiateAndLogin(authCommand);          }    }