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