Details
Description
FtpClient connect to an ftp server and login successfully, call ftpClient.listFiles() method to list remote directory,
and ftp server is vsftp and use active mode.
on commons-net-3.0.1 class org.apache.commons.net.ftp.FTPClient at line 680 :
if (!FTPReply.isPositivePreliminary(sendCommand(command, arg)))
call sendCommand throw an exception blow:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:299)
at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:500)
class org.apache.commons.net.ftp.FTPClient at line 648 : ServerSocket server = serverSocketFactory.createServerSocket(getActivePort(), 1, getHostAddress());
the local listener socket "server" is not close when sendCommand method throws exception.