Symptom
When executing a process which contains an FTP action, an error is raised by the FTP action, similar to this one:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:452)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:494)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:222)
at java.io.InputStreamReader.read(InputStreamReader.java:177)
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.FTPFileEntryParserImpl.readNextEntry(FTPFileEntryParserImpl.java:53)
at org.apache.commons.net.ftp.FTPListParseEngine.readStream(FTPListParseEngine.java:157)
at org.apache.commons.net.ftp.FTPListParseEngine.readServerList(FTPListParseEngine.java:100)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2303)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:2269)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2046)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2093)
at com.indy.engine.actionCodes.FtpGetActionCodeI.executeSimpleCode(SourceFile:390)
at com.indy.engine.action.common.ActionCodeTypeI.executeCode(SourceFile:1646)
at com.indy.engine.action.common.ActionCodeTypeI.run(SourceFile:1805)
at java.lang.Thread.run(Thread.java:738)
The FTP server is up and running.
Solution
This can happen when the FTP server is busy and takes some time to respond, resulting in a timeout. This may occur when establishing the FTP connection (connection timeout), or when trying to get/send files (data timeout).
The solution is to increase the "Connection Timeout" and "Data Timeout" on the FTP action. They are expressed in milliseconds. For example 10000 means 10 seconds.