camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ankelee <andreasasm...@gmail.com>
Subject Re: Aggregator problem with files (Camel 2.3)
Date Tue, 08 Jun 2010 08:36:32 GMT

Hi Claus

I created a sample and a ticket for the problem.

https://issues.apache.org/activemq/browse/CAMEL-2798



Claus Ibsen-2 wrote:
> 
> On Fri, Jun 4, 2010 at 3:20 PM, ankelee <andreasasmuss@gmail.com> wrote:
>>
>> Ok I will do it when I get the time later today hopefully.
>>
>> I also have to find out how to submit samples to JIRA?
>>
> 
> Just attach it as a ZIP file. There is a link with "Attach file" in JIRA
> 
>>
>>
>> Claus Ibsen-2 wrote:
>>>
>>> On Fri, Jun 4, 2010 at 1:56 PM, ankelee <andreasasmuss@gmail.com> wrote:
>>>>
>>>> You think it might be a bug?
>>>>
>>>
>>> Yeah as there is a NPE error in the camel-core.
>>> It was expected to find an aggregated exchange using a correlation key
>>> but it could not, it returned null.
>>>
>>> So if you got a sample then I can debug it to see where the problem
>>> lies.
>>>
>>>
>>>
>>>> "And why does the Z file rollback?"
>>>>
>>>> That is the question :)
>>>>
>>>>
>>>>
>>>> Claus Ibsen-2 wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>> Can you create a JIRA ticket and if possible attach a small test /
>>>>> unit test about this.
>>>>>
>>>>> And why does the Z file rollback?
>>>>>
>>>>>
>>>>> On Fri, Jun 4, 2010 at 1:22 PM, ankelee <andreasasmuss@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> I'm trying to use the aggregator like so:
>>>>>>
>>>>>> <route id="BundlingRoute" autoStartup="true">
>>>>>>        <from
>>>>>> uri="file:{{directory.outgoing}}?include=\A{{edifact.messagePrefix}}.*"
>>>>>> />
>>>>>>        <to uri="xslt:file:{{schema.edifactToIntermediate}}"
/>
>>>>>>        <setHeader headerName="virNo">
>>>>>>                <xpath>
>>>>>>                        /edi/transaction[1]/@VirNo
>>>>>>                </xpath>
>>>>>>        </setHeader>
>>>>>>        <unmarshal ref="jaxbIntermediate" />
>>>>>>        <aggregate strategyRef="EdifactAggregator"
>>>>>> completionFromBatchConsumer="true">
>>>>>>                <correlationExpression>
>>>>>>                        <header>virNo</header>
>>>>>>                </correlationExpression>
>>>>>>                <marshal ref="jaxbIntermediate" />
>>>>>>                <to uri="xslt:file:{{schema.intermediateToEdifact}}"
>>>>>> />
>>>>>>                <to uri="file:data/out/outbox/vans_sim"
/>
>>>>>>        </aggregate>
>>>>>> </route>
>>>>>>
>>>>>> This works fine, aggregation etc. works, until I reach the last file
>>>>>> of
>>>>>> the
>>>>>> directory I get an exception:
>>>>>> This causes a loop where the file rolls back and camel reads it and
>>>>>> rolls
>>>>>> back etc.
>>>>>>
>>>>>> This only happens if the last file in the directory is not in a
>>>>>> series
>>>>>> that
>>>>>> will be aggregated.
>>>>>> so if I have:
>>>>>>
>>>>>> fileA1
>>>>>> fileA2
>>>>>> fileB1
>>>>>> fileC1
>>>>>> fileC2
>>>>>>
>>>>>> This works as intended. I get 3 aggregated files on the other end:
>>>>>> fileA1,
>>>>>> fileB1, fileC1.
>>>>>> But if I do:
>>>>>>
>>>>>> fileA1
>>>>>> fileA2
>>>>>> fileC1
>>>>>> fileC2
>>>>>> fileZ1
>>>>>>
>>>>>> This fails and I get fileA1, fileC1 outputted. FileZ1 is getting
>>>>>> rolled
>>>>>> back
>>>>>> and throws the below exception:
>>>>>>
>>>>>> [t/outbox?include=%5CAOPSIGE_.*] GenericFileOnCompletion      
 WARN
>>>>>> Rollback file strategy:
>>>>>> org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy@4c7e10
>>>>>> for file: GenericFile[OPSIGE_single3.edi]
>>>>>> [t/outbox?include=%5CAOPSIGE_.*] DefaultErrorHandler        
   ERROR
>>>>>> Failed
>>>>>> delivery for exchangeId: c09eebfc-7d5e-49dc-82e1-dd4ffb1f5de3.
>>>>>> Exhausted
>>>>>> after delivery attempt: 1 caught: java.lang.NullPointerException
>>>>>> java.lang.NullPointerException
>>>>>>        at
>>>>>> org.apache.camel.processor.aggregate.AggregateProcessor.doAggregation(AggregateProcessor.java:249)
>>>>>>        at
>>>>>> org.apache.camel.processor.aggregate.AggregateProcessor.process(AggregateProcessor.java:182)
>>>>>>        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:97)
>>>>>>        at
>>>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
>>>>>>        at
>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:185)
>>>>>>        at
>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:151)
>>>>>>        at
>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89)
>>>>>>        at
>>>>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>>>>>>        at
>>>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228)
>>>>>>        at
>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:75)
>>>>>>        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.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:269)
>>>>>>        at
>>>>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:137)
>>>>>>        at
>>>>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:103)
>>>>>>        at
>>>>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
>>>>>>        at
>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>        at
>>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>>        at
>>>>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>>        at
>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>>        at
>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>>>>        at
>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>>>>        at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>        at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>>> [t/outbox?include=%5CAOPSIGE_.*] GenericFileOnCompletion      
 ERROR
>>>>>> Caused
>>>>>> by: [java.lang.NullPointerException - null]
>>>>>> java.lang.NullPointerException
>>>>>>        at
>>>>>> org.apache.camel.processor.aggregate.AggregateProcessor.doAggregation(AggregateProcessor.java:249)
>>>>>>        at
>>>>>> org.apache.camel.processor.aggregate.AggregateProcessor.process(AggregateProcessor.java:182)
>>>>>>        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:97)
>>>>>>        at
>>>>>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:67)
>>>>>>        at
>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.processExchange(RedeliveryErrorHandler.java:185)
>>>>>>        at
>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:151)
>>>>>>        at
>>>>>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:89)
>>>>>>        at
>>>>>> org.apache.camel.processor.DefaultErrorHandler.process(DefaultErrorHandler.java:49)
>>>>>>        at
>>>>>> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:228)
>>>>>>        at
>>>>>> org.apache.camel.processor.Pipeline.process(Pipeline.java:75)
>>>>>>        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.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:269)
>>>>>>        at
>>>>>> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:137)
>>>>>>        at
>>>>>> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:103)
>>>>>>        at
>>>>>> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:98)
>>>>>>        at
>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>        at
>>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>>        at
>>>>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>>        at
>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>>        at
>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
>>>>>>        at
>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
>>>>>>        at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>        at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>        at java.lang.Thread.run(Thread.java:619)
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>> http://old.nabble.com/Aggregator-problem-with-files-%28Camel-2.3%29-tp28778641p28778641.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/Aggregator-problem-with-files-%28Camel-2.3%29-tp28778641p28778973.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/Aggregator-problem-with-files-%28Camel-2.3%29-tp28778641p28779875.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/Aggregator-problem-with-files-%28Camel-2.3%29-tp28778641p28814511.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message