diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/BroadcastingDispatcher.java b/org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/BroadcastingDispatcher.java index 0183526fca..74f34a5350 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/BroadcastingDispatcher.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/BroadcastingDispatcher.java @@ -55,6 +55,7 @@ public class BroadcastingDispatcher extends AbstractDispatcher { : MessageBuilder.fromMessage(message) .setSequenceNumber(sequenceNumber++) .setSequenceSize(sequenceSize) + .setCorrelationId(message.getHeaders().getId()) .setHeader(MessageHeaders.ID, UUID.randomUUID()) .build(); TaskExecutor executor = this.getTaskExecutor(); diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/BroadcastingDispatcherTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/BroadcastingDispatcherTests.java index fe1c92f85d..1be714f0f2 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/BroadcastingDispatcherTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/BroadcastingDispatcherTests.java @@ -255,14 +255,19 @@ public class BroadcastingDispatcherTests { dispatcher.addHandler(target1); dispatcher.addHandler(target2); dispatcher.addHandler(target3); - dispatcher.dispatch(new StringMessage("test")); + Message inputMessage = new StringMessage("test"); + Object originalId = inputMessage.getHeaders().getId(); + dispatcher.dispatch(inputMessage); assertEquals(3, messages.size()); assertEquals(1, (int) messages.get(0).getHeaders().getSequenceNumber()); assertEquals(3, (int) messages.get(0).getHeaders().getSequenceSize()); + assertEquals(originalId, messages.get(0).getHeaders().getCorrelationId()); assertEquals(2, (int) messages.get(1).getHeaders().getSequenceNumber()); assertEquals(3, (int) messages.get(1).getHeaders().getSequenceSize()); + assertEquals(originalId, messages.get(1).getHeaders().getCorrelationId()); assertEquals(3, (int) messages.get(2).getHeaders().getSequenceNumber()); assertEquals(3, (int) messages.get(2).getHeaders().getSequenceSize()); + assertEquals(originalId, messages.get(2).getHeaders().getCorrelationId()); }