Hi No you would need to filter the message so the empty message wont get aggregated.
But I guess since this is a new option on the batch consumers we should take that into account in the aggregate EIP. Do you mind log a JIRA ticket about this? On Wed, Jul 11, 2012 at 3:43 AM, Gordienko, Max <max.gordie...@anz.com> wrote: > Hi all, > > I am using a file consumer in the batch mode to consume all the files in > a directory. > I aggregate them all together using aggregate(constant(true), new > MyAggregationStrategy()).completionFromBatchConsumer() > And it works just fine. > > Now I need to be notified if there is nothing to consume (the directory > is empty). So I use sendEmptyMessageWhenIdle=true > which works just fine by itself. > > But if I use both sendEmptyMessageWhenIdle and > completionFromBatchConsumer() the aggregation never completes. > > Tested with camel 2.10.0 > I found this completion logic in AggregateProcessor.isCompleted(String, > Exchange) > > int size = exchange.getProperty(Exchange.BATCH_SIZE, 0, > Integer.class); > if (size > 0 && batchConsumerCounter.intValue() >= size) { > .... > } > > In other words the aggregate will never complete if there is nothing in > the batch. > > Is there an elegant way to aggregate a flow even if the batch is empty? > > Thank you! > Max > > "This e-mail and any attachments to it (the "Communication") is, unless > otherwise stated, confidential, may contain copyright material and is for > the use only of the intended recipient. If you receive the Communication in > error, please notify the sender immediately by return e-mail, delete the > Communication and the return e-mail, and do not read, copy, retransmit or > otherwise deal with it. Any views expressed in the Communication are those of > the individual sender only, unless expressly stated to be those of Australia > and New Zealand Banking Group Limited ABN 11 005 357 522, or any of its > related entities including ANZ National Bank Limited (together "ANZ"). ANZ > does not accept liability in connection with the integrity of or errors in > the Communication, computer virus, data corruption, interference or delay > arising from or in respect of the Communication." -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen