Let's say your group size is 10 and only 9 messages show up.
The aggregator release policy will never fire and the 9 messages will be stuck.
The aggregator has an attribute 'send-partial-result-on-expiry'.
If this is true, and "somebody" expires the group, then the partial group is sent to the output-channel.
The question is "who expires the group?". The aggregator is a passive component and, normally, only takes action when a message arrives.
Here's where the MessageGroupStoreReaper comes in. When scheduled to run, he simply expires any "old" groups.
If send-partial-groups-on-expiry is true, the "stuck" messages are sent to the output-channel; otherwise they are sent to the discard-channel.
Gary P. Russell
Spring Integration Team
SpringSource, a division of VMware