You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by ankelee <an...@gmail.com> on 2010/06/04 13:22:31 UTC

Aggregator problem with files (Camel 2.3)

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.


Re: Aggregator problem with files (Camel 2.3)

Posted by ankelee <an...@gmail.com>.
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 <an...@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 <an...@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 <an...@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.


Re: Aggregator problem with files (Camel 2.3)

Posted by Claus Ibsen <cl...@gmail.com>.
On Fri, Jun 4, 2010 at 3:20 PM, ankelee <an...@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 <an...@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 <an...@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

Re: Aggregator problem with files (Camel 2.3)

Posted by ankelee <an...@gmail.com>.
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?



Claus Ibsen-2 wrote:
> 
> On Fri, Jun 4, 2010 at 1:56 PM, ankelee <an...@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 <an...@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.


Re: Aggregator problem with files (Camel 2.3)

Posted by Claus Ibsen <cl...@gmail.com>.
On Fri, Jun 4, 2010 at 1:56 PM, ankelee <an...@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 <an...@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

Re: Aggregator problem with files (Camel 2.3)

Posted by ankelee <an...@gmail.com>.
You think it might be a bug?

"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 <an...@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.


Re: Aggregator problem with files (Camel 2.3)

Posted by Claus Ibsen <cl...@gmail.com>.
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 <an...@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