[ https://issues.apache.org/activemq/browse/CAMEL-2165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55457#action_55457 ]
Karl Palsson commented on CAMEL-2165: ------------------------------------- The error messages are better, but this doesn't fix the problem. FTP consumers that get connection problems attempt to reopen the connection. FTP producers open the connection once, and then simply fail if the connection has been closed. I want the ftp producer to attempt to reopen the connection as well. I currently work around this by having a timer triggered ftp write, to the same endpoint url, which works, but seems a little hacky. // hack to keep the ftp connection alive... from("timer://foo?fixedRate=true&period=45000") .setHeader(Exchange.FILE_NAME, constant(".keepalive.tmp")) .setBody(constant("File written periodically to keep the ftp endpoint alive...")) .to(ftpDestinationURI); > ftp uploads can fail: File operation failed: Connection closed without > indication.. Code: 421 > ---------------------------------------------------------------------------------------------- > > Key: CAMEL-2165 > URL: https://issues.apache.org/activemq/browse/CAMEL-2165 > Project: Apache Camel > Issue Type: Bug > Components: camel-ftp > Affects Versions: 2.0.0 > Reporter: Karl Palsson > Assignee: Claus Ibsen > Priority: Minor > Fix For: 2.1.0 > > > Looks like something that was fixed for CAMEL-444 didn't make it into 2.0? > On 2.0.0, this is not a warning, this is a fatal. > SEVERE: Exception occured during execution on the exchange: Exchange[Message: > XXXXXX] > org.apache.camel.CamelExecutionException: Exception occured during execution > on the exchange: Exchange[Message: XXXXX] > at > org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1027) > at > org.apache.camel.util.ExchangeHelper.extractResultBody(ExchangeHelper.java:479) > at > org.apache.camel.impl.DefaultProducerTemplate.extractResultBody(DefaultProducerTemplate.java:431) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:106) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:122) > at > org.apache.camel.impl.DefaultProducerTemplate.requestBody(DefaultProducerTemplate.java:266) > at... into my code here... > Caused by: > org.apache.camel.component.file.GenericFileOperationFailedException: File > operation failed: Connection closed without indication.. Code: 421 > at > org.apache.camel.component.file.remote.FtpOperations.disconnect(FtpOperations.java:167) > at > org.apache.camel.component.file.remote.RemoteFileProducer.disconnect(RemoteFileProducer.java:77) > at > org.apache.camel.component.file.remote.RemoteFileProducer.handleFailedWrite(RemoteFileProducer.java:66) > at > org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:104) > at > org.apache.camel.component.file.remote.RemoteFileProducer.process(RemoteFileProducer.java:52) > at > org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:81) > at > org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:79) > at > org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:141) > at > org.apache.camel.processor.SendProcessor.process(SendProcessor.java:78) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:61) > at > org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:186) > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:155) > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:88) > at > org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49) > at > org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:148) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) > at > org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54) > at > org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) > at > org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:45) > at > org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:170) > at > org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:156) > at > org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:141) > at > org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:155) > at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:111) > at > org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:101) > at > org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:105) > ... 37 more > Caused by: org.apache.commons.net.ftp.FTPConnectionClosedException: > Connection closed without indication. > at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:297) > This is "not what I want" and there doesn't seem to be any keep alive or > other option on the ftp2 component. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.