title: Camel: File operation failed: Connection closed without indication.. Code: 421
body: <p>I'm using Camel 2.15.2 with Apache Commons Net 3.3 on Java 8 deployed into a Tomcat container. </p>
  
  <p>The issue is that consistently after processing just over 200 files (> 4000 files in the directory) the route stops, the FTP client disconnects and the following message is logged out: </p>
  
  <pre><code>[ogs.sharp-stream.com:21/root/] FtpConsumer                    WARN  Error processing file RemoteFile[route/to/file] due to File operation failed:  Connection closed without indication.. Code: 421. Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - File operation failed:  Connection closed without indication.. Code: 421] 
  org.apache.camel.component.file.GenericFileOperationFailedException: File operation failed:  Connection closed without indication.. Code: 421 
          at org.apache.camel.component.file.remote.FtpOperations.getCurrentDirectory(FtpOperations.java:713) 
          at org.apache.camel.component.file.remote.FtpOperations.retrieveFileToFileInLocalWorkDirectory(FtpOperations.java:440) 
          at org.apache.camel.component.file.remote.FtpOperations.retrieveFile(FtpOperations.java:310) 
          at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:384) 
          at org.apache.camel.component.file.remote.RemoteFileConsumer.processExchange(RemoteFileConsumer.java:137) 
          at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:211) 
          at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:175) 
          at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187) 
          at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114) 
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
          at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
          at java.lang.Thread.run(Thread.java:745) 
  Caused by: org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication. 
          at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:317) 
          at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294) 
          at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:483) 
          at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:608) 
          at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:582) 
          at org.apache.commons.net.ftp.FTP.pwd(FTP.java:1454) 
          at org.apache.commons.net.ftp.FTPClient.printWorkingDirectory(FTPClient.java:2658) 
          at org.apache.camel.component.file.remote.FtpOperations.getCurrentDirectory(FtpOperations.java:709) 
          ... 15 more 
  </code></pre>
  
  <p><a href="ftp://ftpserver.com:21/dir/?username=username&amp;password=password&amp;passiveMode=true&amp;recursive=true&amp;delay=86400000&amp;idempotent=true&amp;idempotentRepository=#fileStore8&amp;timeout=60000&amp;localWorkDirectory=target/temp/dir" rel="nofollow">This is the URI</a> used at the begining of the related route.</p>
  
  <p>As you can tell from the URI I'm also using a FileIdempotentRepository. It's defined like this </p>
  
  <p></p>
  
  <pre><code>            &lt;property name="fileStore" value="target/fileidempotent/.filestore1.dat" /&gt;
  
              &lt;property name="maxFileStoreSize" value="512000" /&gt;
  
              &lt;property name="cacheSize" value="250" /&gt;
      &lt;/bean&gt;
  </code></pre>
  
  <p>Any ideas why the connection might be closing before all files are processed?</p>