On Fri, Jun 4, 2010 at 1:56 PM, ankelee <andreasasm...@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 <andreasasm...@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.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. >>> >>> >> >> >> >> -- >> 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