Description
When setting ControlKeepAliveTimeout. FTPClient.__storeFile might fail when waiting for ack on ControlConnection.
Current code:
// Get the transfer response boolean ok = completePendingCommand(); if (csl != null) { csl.cleanUp(); // fetch any outstanding keepalive replies }
While CSL is active, the ControlConnection timeout is set to 1 sec., if using default. This timeout value doesn't leave much room in terms of network/end point latency.
Replacing the code fragment above with the following fragment probably solves the problem (If proper ControlConnection timeout value is set):
if (csl != null) { csl.cleanUp(); // fetch any outstanding keepalive replies } // Get the transfer response boolean ok = completePendingCommand();
One workaround is to set ControlKeepAliveReplyTimeout to a higher value.