Hi, I have created a test sample that recreates this issue. Maybe I should not be using an Aggregator to solve this. Basically I just want to zip together an incoming message with a message(a response) that I generate on the basis of the incoming message.
Is this a bug, or am I misusing the Aggregator? The route is as such: <route> <from uri="file:data/in2?move=backup&moveFailed=error" /> <split> <tokenize token="," /> <to uri="mock:test" /> <delay> <constant>50</constant> </delay> </split> <to uri="seda:AggregatorQueue" /> </route> <route> <from uri="file:data/in?move=backup&moveFailed=error" /> <split> <tokenize token="," /> <to uri="mock:test" /> <delay> <constant>150</constant> </delay> </split> <to uri="seda:AggregatorQueue" /> </route> <route> <from uri="seda:AggregatorQueue" /> <aggregate strategyRef="myStrat" completionSize="2"> <correlationExpression> <simple>${file:name}</simple> </correlationExpression> <to uri="file:data/out" /> </aggregate> </route> Aggregator: public class MyAggregator implements AggregationStrategy { public Exchange aggregate(Exchange oldExchange, Exchange newExchange) { if (oldExchange == null) { return newExchange; } String oldBody = oldExchange.getIn().getBody(String.class); String newBody = newExchange.getIn().getBody(String.class); String body = oldBody + "\n+\n" + newBody; oldExchange.getIn().setBody(body); oldExchange.setProperty("CamelFileNameOnly", new ControlGenerator().getControl() + ".txt"); return oldExchange; } } Stacktrace: 2010-11-10 11:22:42,062 ERROR [Camel Thread 0 - file://data/in2] [org.apache.camel.component.file.GenericFileOnCompletion]: Caused by: [org.apache.camel.RuntimeCamelException - java.io.FileNotFoundException: data\in2\test - Copy (9).txt (The system cannot find the file specified)] org.apache.camel.RuntimeCamelException: java.io.FileNotFoundException: data\in2\test - Copy (9).txt (The system cannot find the file specified) at org.apache.camel.util.ObjectHelper.getScanner(ObjectHelper.java:1246) at org.apache.camel.util.ObjectHelper.getScanner(ObjectHelper.java:1232) at org.apache.camel.builder.ExpressionBuilder$40.evaluate(ExpressionBuilder.java:934) at org.apache.camel.impl.ExpressionAdapter.evaluate(ExpressionAdapter.java:36) at org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:99) at org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:181) at org.apache.camel.processor.Splitter.process(Splitter.java:94) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208) at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) at org.apache.camel.processor.Pipeline.process(Pipeline.java:143) at org.apache.camel.processor.Pipeline.process(Pipeline.java:78) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:322) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97) 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) Caused by: java.io.FileNotFoundException: data\in2\test - Copy (9).txt (The system cannot find the file specified) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:106) at java.util.Scanner.<init>(Scanner.java:636) at org.apache.camel.util.ObjectHelper.getScanner(ObjectHelper.java:1244) ... 39 more 2010-11-10 11:22:42,067 WARN [Camel Thread 0 - file://data/in2] [org.apache.camel.component.file.GenericFileOnCompletion]: Rollback file strategy: org.apache.camel.component.file.strategy.genericfilerenameprocessstrat...@1e36c0b for file: GenericFile[test - Copy (9).txt] 2010-11-10 11:22:42,070 ERROR [Camel Thread 0 - file://data/in2] [org.apache.camel.component.file.GenericFileOnCompletion]: Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - Cannot rename file: GenericFile[test - Copy (9).txt] to: GenericFile[error\test - Copy (9).txt]] org.apache.camel.component.file.GenericFileOperationFailedException: Cannot rename file: GenericFile[test - Copy (9).txt] to: GenericFile[error\test - Copy (9).txt] at org.apache.camel.component.file.strategy.GenericFileProcessStrategySupport.renameFile(GenericFileProcessStrategySupport.java:100) at org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy.rollback(GenericFileRenameProcessStrategy.java:65) at org.apache.camel.component.file.GenericFileOnCompletion.processStrategyRollback(GenericFileOnCompletion.java:141) at org.apache.camel.component.file.GenericFileOnCompletion.onCompletion(GenericFileOnCompletion.java:93) at org.apache.camel.component.file.GenericFileOnCompletion.onFailure(GenericFileOnCompletion.java:56) at org.apache.camel.util.UnitOfWorkHelper.doneSynchronizations(UnitOfWorkHelper.java:50) at org.apache.camel.impl.DefaultUnitOfWork.done(DefaultUnitOfWork.java:172) at org.apache.camel.processor.UnitOfWorkProcessor.doneUow(UnitOfWorkProcessor.java:121) at org.apache.camel.processor.UnitOfWorkProcessor.access$000(UnitOfWorkProcessor.java:36) at org.apache.camel.processor.UnitOfWorkProcessor$1.done(UnitOfWorkProcessor.java:106) at org.apache.camel.processor.Pipeline.process(Pipeline.java:130) at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99) at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70) at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89) at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68) at org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:322) at org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:155) at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:121) at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:97) 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://camel.465427.n5.nabble.com/Processed-file-being-read-again-and-is-empty-tp3256771p3258441.html Sent from the Camel - Users mailing list archive at Nabble.com.