There is a bug - at least I assume it not desired functionality where if
you have more than one completion of which .completionFromBatchConsumer()
is one of them

if Exchange property CamelBatchSize is 2505 and .completionSize( ) is 1000

you would like batches of

1000 - compeltionSize
1000 - completionSize
505 - batchCompletion

but actually this will never happen, this is because the batch-counter
AtomicInteger does not get updated if a different completion occurs, so in
the above example
the counter will finish at 2503 and never reach 2505, because each time the
completionSize occured the method quit

it could be easily remedied by moving the onCompletionBatch section of the
method

AggregateProcessor: isCompleted(String key, Exchange exchange)

to the top of the method instead of the bottom.

batchConsumerCounter is the thing that doesnt get updated if another
compeltion occurs

I'd be happy to code this and submit it, but not sure if that sioluition
fits with your existing ideas about the module. It looks fairly obvivously
like a bug to me... if you guys are happy with that.
sorry not written a test-case

Reply via email to