Hello All,

I'm trying to configure a simple aggregator which will correlate based on the value in the header key "CORRELATION_ID" and release if no new messages have arrived w/in 3 seconds. Going through the 2.1.4.RELEASE reference, section 5.4.4. suggests to me that the following should work:

Code:
<bean id="timeout"
		class="org.springframework.integration.aggregator.TimeoutCountSequenceSizeReleaseStrategy">
		<constructor-arg name="threshold" value="1000" />
		<constructor-arg name="timeout" value="3000" />
</bean>
<int:aggregator input-channel="channel3" output-channel="channel4" discard-channel="channel4"
		send-timeout="3000"
		release-strategy="timeout"
		release-strategy-method="canRelease"
		send-partial-result-on-expiry="true" >
</int:aggregator>
but it doesn't, throwing a IllegalStateException: "Null correlation not allowed. Maybe the CorrelationStrategy is failing?" I thought the correlation-strategy was optional and used the CORRELATION_ID header by default.

If I provide an explicit correlation-strategy like this:

Code:
<bean id="correlationStrategy" class="org.springframework.integration.aggregator.HeaderAttributeCorrelationStrategy">
		<constructor-arg name="attributeName" value="CORRELATION_ID" />
</bean>
then the AbstractMessageHandler throws a IllegalStateException "Invalid method parameter for payload: was expecting collection".

Is there a simpler way to go about this? Am I misunderstanding the docs? Any help or clarification would be much appreciated.

Thanks!

--john