Sorry, my mistake. Using the latest build from trunk, it works just fine. I just tried it with a couple of files of 3 and 4 Gigs size.
Thanks, -Farhad S. Claus Ibsen-2 wrote: > > On Fri, Nov 27, 2009 at 4:18 PM, shirazi <m...@farhad.eu> wrote: >> >> Thanks Claus, >> I just downloaded the new trunk, and I think there's a new bug in it. I >> just >> tried the file component with a couple of files around 3-400 MBs and it >> works fine. As soon as I try it with a file around 3 Gigs, i get the >> following exception (??!!): >> > > That is odd as the stacktrace is off by -1. > And you do a full svn up and a mvn clean install -Dtest=false to build > all source from scratch? > > > If you enable TRACE logging for: org.apache.camel.component.file > > You should see this log line when it uses the NIO stuff > > if (LOG.isTraceEnabled()) { > LOG.trace("Using FileChannel to transfer from: " + in > + " to: " + out); > } > > > I have committed a fix for the NPE in that stacktrace. But the was > some other exception thrown that got lost. > > > commited rev: 884894. > > > >> 16:13:48,830 ERROR [workflow] null while processing exchange: >> Exchange[GenericFileMessage with file: GenericFile[/tmp/vw/cmore/tv5.ts]] >> java.lang.NullPointerException >> at >> org.apache.camel.impl.OnExceptionRouteNode.getLabel(OnExceptionRouteNode.java:41) >> at >> org.apache.camel.processor.interceptor.DefaultTraceFormatter.getNodeMessage(DefaultTraceFormatter.java:233) >> at >> org.apache.camel.processor.interceptor.DefaultTraceFormatter.extractBreadCrumb(DefaultTraceFormatter.java:282) >> at >> org.apache.camel.processor.interceptor.DefaultTraceFormatter.format(DefaultTraceFormatter.java:55) >> at >> org.apache.camel.processor.interceptor.TraceInterceptor.format(TraceInterceptor.java:232) >> at org.apache.camel.processor.Logger.logMessage(Logger.java:283) >> at org.apache.camel.processor.Logger.process(Logger.java:166) >> at >> org.apache.camel.processor.interceptor.TraceInterceptor.logException(TraceInterceptor.java:325) >> at >> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:171) >> at >> org.apache.camel.processor.LoggingErrorHandler.process(LoggingErrorHandler.java:58) >> at >> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206) >> at >> org.apache.camel.processor.DelegateProcessor.processNext(DelegateProcessor.java:53) >> at >> org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:51) >> 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.LoggingErrorHandler.process(LoggingErrorHandler.java:58) >> at >> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:206) >> at >> org.apache.camel.processor.UnitOfWorkProcessor.processNext(UnitOfWorkProcessor.java:70) >> 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.direct.DirectProducer.process(DirectProducer.java:45) >> 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.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.processor.LoggingErrorHandler.process(LoggingErrorHandler.java:58) >> 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.ChoiceProcessor.process(ChoiceProcessor.java:56) >> 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.LoggingErrorHandler.process(LoggingErrorHandler.java:58) >> 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.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:201) >> at >> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:122) >> at >> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:95) >> at >> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:108) >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) >> at >> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:280) >> at >> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:135) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:65) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:142) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:166) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) >> at java.lang.Thread.run(Thread.java:613) >> >> >> >> >> Claus Ibsen-2 wrote: >>> >>> On Fri, Nov 27, 2009 at 2:34 PM, shirazi <m...@farhad.eu> wrote: >>>> >>>> Oh, sorry. that's right, it is 64 MB. and I tried with 16, 32, 64 and >>>> 128 >>>> MB. >>>> I will try the buffer size option of the file-comp. to see if it solves >>>> the >>>> problem. >>>> >>> >>> I have just committed the fix to camel trunk. >>> >>> The old code will still have the 2gb limit bug no matter what >>> bufferSize you use. >>> However you should try the latest code in 2.1 to see if that works for >>> you. >>> http://camel.apache.org/download.html >>> >>> >>> >>>> Thanks, >>>> Farhad S. >>>> >>>> >>>> Claus Ibsen-2 wrote: >>>>> >>>>> On Fri, Nov 27, 2009 at 2:26 PM, shirazi <m...@farhad.eu> wrote: >>>>>> >>>>>> That's probably the case. I've tried with different buffer sizes >>>>>> (though >>>>>> not >>>>>> 0), from 16 to 128 KB. I got the best performance with buffer of >>>>>> 64KB, >>>>>> on >>>>>> Linux Debian with 4 Gigs RAM, and files larger than 3 Gigs. >>>>>> That would be great, if one could specify the buffer-size for the >>>>>> "file" >>>>>> component. >>>>>> >>>>> >>>>> You buffer size was 64 * 1024 * 1024 which is 64 K * K = 64 MB. Or is >>>>> there something that play tricks on me? >>>>> >>>>> The file component already have a bufferSize option with a default of >>>>> 128kb >>>>> http://camel.apache.org/file2.html >>>>> >>>>> So you can use that to set what you want to use. >>>>> >>>>> >>>>> >>>>>> -Farhad S. >>>>>> >>>>>> >>>>>> Claus Ibsen-2 wrote: >>>>>>> >>>>>>> On Fri, Nov 27, 2009 at 2:00 PM, shirazi <m...@farhad.eu> wrote: >>>>>>>> >>>>>>>> Sure. I have attached the file. >>>>>>>> Actually I use from->to components for transfering files and I >>>>>>>> guess >>>>>>>> it >>>>>>>> copies the file, rather than moving. >>>>>>>> >>>>>>> >>>>>>> Ah makes more sense for copying to leverage NIO. >>>>>>> >>>>>>> Camel does this also but I can see that it may hit that 2gb limit as >>>>>>> it doesnt transfer in a loop using a lower buffer. >>>>>>> >>>>>>> It was doing it in a one liner >>>>>>> in.transferTo(0, in.size(), out); >>>>>>> >>>>>>> I wonder if you really must do that in a loop to avoid any 2gb limit >>>>>>> or the likes? >>>>>>> >>>>>>> >>>>>>>> Thanks, >>>>>>>> Farhad S. >>>>>>>> http://old.nabble.com/file/p26542125/Nio.java Nio.java >>>>>>>> >>>>>>>> >>>>>>>> Claus Ibsen-2 wrote: >>>>>>>>> >>>>>>>>> On Fri, Nov 27, 2009 at 1:37 PM, shirazi <m...@farhad.eu> wrote: >>>>>>>>>> >>>>>>>>>> Wau... thanks for that. I don't understand how I could miss it, >>>>>>>>>> cause >>>>>>>>>> i >>>>>>>>>> searched a lot for such a feature. >>>>>>>>>> >>>>>>>>>> Another thing that I have experienced in 2.0, is that the "file" >>>>>>>>>> component >>>>>>>>>> is unable to move/copy files larger than 2Gigs, such large files >>>>>>>>>> are >>>>>>>>>> cut >>>>>>>>>> around 2 Gigs limit. Now, I'm not sure if it has anything to do >>>>>>>>>> with >>>>>>>>>> the >>>>>>>>>> OS >>>>>>>>>> or the filesystems or what. I have seen it both in Linux (debian) >>>>>>>>>> and >>>>>>>>>> Mac >>>>>>>>>> OS >>>>>>>>>> X. And I don't understand either, why the file component does not >>>>>>>>>> use >>>>>>>>>> the >>>>>>>>>> NIO api or at least we don't have an option to tell it use the >>>>>>>>>> NIO >>>>>>>>>> api >>>>>>>>>> instead. >>>>>>>>>> Anyway, for now I've solved the problem by using a smiple >>>>>>>>>> component >>>>>>>>>> instead >>>>>>>>>> of the "file" comp. to move/copy files using the NIO api. It is >>>>>>>>>> much >>>>>>>>>> faster >>>>>>>>>> and it has no problem with very large files. >>>>>>>>>> >>>>>>>>> >>>>>>>>> For move it uses java.io.File rename and are you saying its not >>>>>>>>> optimized for the underlying OS? >>>>>>>>> I would assume that it could move a 2gb file in no time if the >>>>>>>>> file >>>>>>>>> is >>>>>>>>> on the same share. >>>>>>>>> >>>>>>>>> Can you share your code that you are using? >>>>>>>>> >>>>>>>>> >>>>>>>>>> Bests, >>>>>>>>>> Farhad S. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Claus Ibsen-2 wrote: >>>>>>>>>>> >>>>>>>>>>> On Fri, Nov 27, 2009 at 1:12 PM, shirazi <m...@farhad.eu> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Hi, >>>>>>>>>>>> Ok, I guess I should rather provide an AggregationStrategy. >>>>>>>>>>>> The reason why I use a timer is that when I use the ftp >>>>>>>>>>>> endpoint, >>>>>>>>>>>> it >>>>>>>>>>>> starts >>>>>>>>>>>> to fetch everything that is on the ftp in the first call and >>>>>>>>>>>> that's >>>>>>>>>>>> not >>>>>>>>>>>> what >>>>>>>>>>>> i want, because I'm processing files over 3 Gigs and there are >>>>>>>>>>>> many >>>>>>>>>>>> of >>>>>>>>>>>> them. >>>>>>>>>>>> Then I figured that by using a timer, i could have ftp to >>>>>>>>>>>> download >>>>>>>>>>>> one >>>>>>>>>>>> file >>>>>>>>>>>> at a time!! >>>>>>>>>>>> What I basically need is to somehow tell the ftp, how many >>>>>>>>>>>> files >>>>>>>>>>>> I >>>>>>>>>>>> want >>>>>>>>>>>> to >>>>>>>>>>>> fetch at a time. This is probably doable now in camel-2.1 by >>>>>>>>>>>> using >>>>>>>>>>>> the >>>>>>>>>>>> "ThrottlingInflightRoutePolicy", which i havn't tried yet. >>>>>>>>>>>> Do you have any suggestions? >>>>>>>>>>> >>>>>>>>>>> Yeah the FTP component extends the File component so you got all >>>>>>>>>>> the >>>>>>>>>>> options from the file component as well >>>>>>>>>>> http://camel.apache.org/file2.html >>>>>>>>>>> >>>>>>>>>>> And there is a maxMessagesPerPoll you can use to tell how many >>>>>>>>>>> files >>>>>>>>>>> you want at most to poll. For example = 1 in your use. >>>>>>>>>>> >>>>>>>>>>> And that option is avail in 2.0 also. >>>>>>>>>>> >>>>>>>>>>> In fact all these are as they are batch polling consumers >>>>>>>>>>> http://camel.apache.org/batch-consumer.html >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Bests, >>>>>>>>>>>> Farhad S. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Claus Ibsen-2 wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> 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 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> View this message in context: >>>>>>>>>>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26541650.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 >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> View this message in context: >>>>>>>>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26541877.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 >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> View this message in context: >>>>>>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26542125.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 >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> View this message in context: >>>>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26542396.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 >>>>> >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26542472.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 >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26543771.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 > > -- View this message in context: http://old.nabble.com/camel-casts-exception-when-there-is-nothing-to-fetch-from-the-ftp-endpoint-tp26541447p26545371.html Sent from the Camel - Users mailing list archive at Nabble.com.