This is generally because the FTP server has not correctly responded to the standard SSL/TLS closure exchange sequence. In this case, the server waits for more data that never arrives, as it does not realize it has entered the closure exchange sequence. The server can be prevented from waiting by setting DISABLE_DATA_SSL_CLOSURE:
SSLFTPClient ftp = new SSLFTPClient();
ftp.setConfigFlags(SSLFTPClient.ConfigFlags.DISABLE_DATA_SSL_CLOSURE) :