Hi

Motivated by Claus' nice words :-) and to take a whiff of the Camel code, I
analyzed my own Jira issue CAMEL-7146.

In the method "doAggregation" the aggregator evaluates if the aggregation
is complete. With completionSize = 1 this is the case on every Exchange.
Therefore the aggregator does not persist the Exchanges:

=> complete = "size", therefore every exchange goes in else-case
...
if (complete == null) {
    doAggregationRepositoryAdd(newExchange.getContext(), key,
originalExchange, answer);
...
} else {
...

On the other hand does the method "onCompletion" no such evaluation and
tries to delete the Exchange in the Repository. Therefore the NPE.

So, completionSize = 1 is a special case since it basically says "do not
aggregate". This raises the question if Camel should throw an Exception on
context startup

Reply via email to