I'm working on a project involving ftp transfers. Client-side we're using org.apache.commons.net.ftp.FTPClient, and server-side we're using org.apache.ftpserver.
We've found that transfers sometimes timeout on the control connection. I've been trying to prevent this by starting a thread which periodically calls FTPClient.sendNoOp(). However the new thread blocks on this call until the prior call to FTPClient.storeFile(String remote, InputStream stream) completes. I think it's blocking while waiting for a response from the server, which appears not to process the NOOP until completing the STOR command. What am I doing wrong here?