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:
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.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>
If I provide an explicit correlation-strategy like this:
then the AbstractMessageHandler throws a IllegalStateException "Invalid method parameter for payload: was expecting collection".Code:<bean id="correlationStrategy" class="org.springframework.integration.aggregator.HeaderAttributeCorrelationStrategy"> <constructor-arg name="attributeName" value="CORRELATION_ID" /> </bean>
Is there a simpler way to go about this? Am I misunderstanding the docs? Any help or clarification would be much appreciated.
Thanks!
--john


Reply With Quote