camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From shirazi ...@farhad.eu>
Subject Re: camel casts exception when there is nothing to fetch from the ftp endpoint
Date Fri, 27 Nov 2009 12:12:59 GMT

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?

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 <me@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.


Mime
View raw message