Hi BTW why are you using a timer -> ftp when the ftp have a build in timer?
On Fri, Nov 27, 2009 at 12:55 PM, shirazi <m...@farhad.eu> wrote: > > Hi, > Please consider the following route: > > from("timer://someTrigger?delay=30000&fixedRate=true&period=300000"). > pollEnrich("ftp://cmoreFtp?binary=true&localWorkDirectory=/tmp&idempotent=true&idempotentRepository=#caStreams", > 10000). > to("file:///tmp/vw/cmore?tempPrefix=.inprogress"); > > The pollEnrich cast a NullPointerException in camel-2.0, if there is nothing > to fetch from the ftp. I got rid of the exception by a > "try-catch(NullpointerExcpetion.class).stop()" around the route. Now in > camel-2.1-SNAPSHOT, I get the following exception on the "to" endpoint: > ================= > 12:37:06,899 INFO [Tracer] >>> --> > file:///tmp/vw/cmore?tempPrefix=.inprogress_, Pattern:InOnly, > Headers:{firedTime=Fri Nov 27 12:36:56 CET 2009}, > Exception:org.apache.camel.component.file.GenericFileOperationFailedException: > Cannot store file: > /tmp/vw/cmore/.inprogress_02216f38-8ffc-4aec-b638-27229d857075 > 12:37:06,899 INFO [Tracer] >>> --> > file:///tmp/vw/cmore?tempPrefix=.inprogress_, Pattern:InOnly, > Headers:{firedTime=Fri Nov 27 12:36:56 CET 2009}, > Exception:org.apache.camel.component.file.GenericFileOperationFailedException: > Cannot store file: > /tmp/vw/cmore/.inprogress_02216f38-8ffc-4aec-b638-27229d857075 > 12:37:06,899 ERROR [TimerConsumer] Cannot store file: > /tmp/vw/cmore/.inprogress_02216f38-8ffc-4aec-b638-27229d857075 > org.apache.camel.component.file.GenericFileOperationFailedException: Cannot > store file: /tmp/vw/cmore/.inprogress_02216f38-8ffc-4aec-b638-27229d857075 > at > org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:204) > at > org.apache.camel.component.file.GenericFileProducer.writeFile(GenericFileProducer.java:184) > at > org.apache.camel.component.file.GenericFileProducer.processExchange(GenericFileProducer.java:126) > at > org.apache.camel.component.file.GenericFileProducer.process(GenericFileProducer.java:57) > at > org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:97) > at > org.apache.camel.processor.SendProcessor$1.doInProducer(SendProcessor.java:95) > at > org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:146) > at > org.apache.camel.processor.SendProcessor.doProcess(SendProcessor.java:94) > at > org.apache.camel.processor.SendProcessor.process(SendProcessor.java:82) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) > at > org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) > at > org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) > at > org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:162) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) > at > org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:74) > at > org.apache.camel.processor.TryProcessor.process(TryProcessor.java:63) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) > at > org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) > at > org.apache.camel.processor.DelegateProcessor.proceed(DelegateProcessor.java:82) > at > org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:162) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) > at > org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206) > at > org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:54) > at > org.apache.camel.processor.DelegateProcessor.process(DelegateProcessor.java:48) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67) > at > org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:103) > at > org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:50) > at java.util.TimerThread.mainLoop(Timer.java:512) > at java.util.TimerThread.run(Timer.java:462) > Caused by: org.apache.camel.InvalidPayloadException: No body available of > type: java.io.InputStream on: Message: [Body is null]. Caused by: No type > converter available to convert from type: null to the required type: > java.io.InputStream with value null on the exchange: Exchange[Message: [Body > is null]] > at > org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:103) > at > org.apache.camel.util.ExchangeHelper.getMandatoryInBody(ExchangeHelper.java:116) > at > org.apache.camel.component.file.FileOperations.storeFile(FileOperations.java:198) > ... 29 more > Caused by: org.apache.camel.NoTypeConversionAvailableException: No type > converter available to convert from type: null to the required type: > java.io.InputStream with value null > at > org.apache.camel.impl.converter.DefaultTypeConverter.mandatoryConvertTo(DefaultTypeConverter.java:126) > at > org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:101) > ... 31 more > ============ > Now, I can remedy the situation by a try-catch block or an interceptor, but > in my opinion this should be considered a bug in camel and it should > silently ignore if there was nothing to fetch from the ftp. > > Bests, > Farhad Shiraz > > -- > View this message in context: > http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26541447.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus