Hello,

I'm getting a strange behavior with the aggregator with SI 2.1.4 as compared to SI 2.0.3. Reduced to a test case which just accumulates up to two messages before releasing:

Code:
public class AgTest {

	public static void main(String[] args) {
		ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		MessageChannel ch = (MessageChannel) ctx.getBean("channel1");
		MessagingTemplate template = new MessagingTemplate();
		for(int z = 0 ; z < 5 ; z ++) {
			template.send(ch, MessageBuilder.withPayload(1).build());
			template.send(ch, MessageBuilder.withPayload(2).build());
		}
	}
	
	public Integer aggregate(List<Integer> numbers) {
		return 666;
	}
	
	public Integer correlate(Integer number) {
		return 1;
	}
	
	public boolean canRelease(List<Integer> numbers) {
		return numbers.size() == 2;
	}
With the configuration:

Code:
  	<int:channel id="channel1"/>
  	
 	<int:aggregator id="ag" 
		input-channel="channel1" ref="agm" method="aggregate" 
		output-channel="channel2"
		send-partial-result-on-expiry="true"
		correlation-strategy="agm" correlation-strategy-method="correlate"
		release-strategy="agm" release-strategy-method="canRelease" />
	
	<bean id="agm" class="com.borrar.AgTest"/>
 	
 	<int:channel id="channel2"/>
  
  	<stream:stdout-channel-adapter id="stout" channel="channel2" append-newline="true"/>
With SI 2.1.4 I just get one "666" on stdout. With SI 2.0.3 I get (as I expected) five times a "666". Is this a change in the behavior?

regards,

Diego