We have the requirement to use a consistent correlation id for a request through all our components. This works well until we try to use JmsOutboundGateway. With correlation-key set to "JMSCorrelationID" the gateway will create a new random correlation id instead of using the value of the existing header jms_correlationId (JmsHeaders.CORRELATION_ID).
Suggested fix: Check if header jms_correlationId exists and use it if set. If not set revert to the current behavior.