checkSystem();
    public void connect() throws NotConnectedException,IOException,AuthenticationNotSupportedException,FtpIOException,FtpWorkflowException {    	  socketProvider = new SocketProvider();          // Only for logging          String hostAndPort = getAddress().getHostName() + ":" + getAddress().getPort();          try          {              socketProvider.connect(getAddress(), getProxy(), getDownloadBandwidth(), getUploadBandwidth());              log.debug("connected to:" + hostAndPort);              socketProvider.socket().setSoTimeout(getTimeout());              socketProvider.socket().setKeepAlive(true);          }catch (IOException ioe)          {              String error = "Error connection to:" + hostAndPort;              log.error(error,ioe);              throw new NotConnectedException(error);          }          //Till here the connection is not encrypted!!          if (this.getConnectionType() == FTPConnection.IMPLICIT_SSL_FTP_CONNECTION ||          	  this.getConnectionType() == FTPConnection.IMPLICIT_TLS_FTP_CONNECTION) {              negotiateAndLogin(null);          }           else           {              (ReplyWorker.readReply(socketProvider)).dumpReply();              Reply reply = sendCommand(new Command(Command.FEAT));                        if(ReplyCode.isPositiveCompletionReply(reply))              {                  List<String> lines = reply.getLines();                  for(String s : lines) {                     if (s.indexOf(Command.SSCN) > -1) {                          setConnectionSSCNType(FTPConnection.SSCN_ON);                      }                  }                             }              negotiateAndLogin(getAuthString());          }                    this.setConnectionStatus(FTPConnection.CONNECTED);          fireConnectionStatusChanged(new FTPEvent(this, getConnectionStatus(), null));    }