Skip to content

Commit 37f5cf1

Browse files
artembilanspring-builds
authored andcommitted
EmbeddedJsonHeadersMessageMapperTests: race condition
The `EmbeddedJsonHeadersMessageMapperTests.testEmbedSome` does not embed a `timestamp` header. To see that in action, add a short `Thread.sleep(2);` between `encode` and `decode` operations. Otherwise, there is no guarantee that the system clock might not produce the same timestamp for a new message in the `EmbeddedJsonHeadersMessageMapper.toMessage()` (cherry picked from commit 90b0555)
1 parent 8d0970b commit 37f5cf1

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

spring-integration-core/src/test/java/org/springframework/integration/support/json/EmbeddedJsonHeadersMessageMapperTests.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public void testEmbedSome() throws Exception {
5151
EmbeddedJsonHeadersMessageMapper mapper = new EmbeddedJsonHeadersMessageMapper(MessageHeaders.ID);
5252
GenericMessage<String> message = new GenericMessage<>("foo");
5353
byte[] encodedMessage = mapper.fromMessage(message);
54+
// Give some delay for a new timestamp to be generated
55+
Thread.sleep(2);
5456
Message<?> decoded = mapper.toMessage(encodedMessage);
5557
assertThat(decoded.getPayload()).isEqualTo(message.getPayload());
5658
assertThat(decoded.getHeaders().getTimestamp()).isNotEqualTo(message.getHeaders().getTimestamp());

0 commit comments

Comments
 (0)