diff --git a/spring-messaging/src/main/java/org/springframework/messaging/MessageHeaders.java b/spring-messaging/src/main/java/org/springframework/messaging/MessageHeaders.java index ef635e703a..dc7a5d135b 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/MessageHeaders.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/MessageHeaders.java @@ -71,7 +71,7 @@ public final class MessageHeaders implements Map, Serializable { private static volatile IdGenerator idGenerator = null; - private static volatile IdGenerator defaultIdGenerator = new AlternativeJdkIdGenerator(); + private static final IdGenerator defaultIdGenerator = new AlternativeJdkIdGenerator(); /** * The key for the Message ID. This is an automatically generated UUID and @@ -97,8 +97,7 @@ public final class MessageHeaders implements Map, Serializable { public MessageHeaders(Map headers) { this.headers = (headers != null) ? new HashMap(headers) : new HashMap(); - IdGenerator generatorToUse = (idGenerator != null) ? idGenerator : defaultIdGenerator; - this.headers.put(ID, generatorToUse.generateId()); + this.headers.put(ID, ((idGenerator != null) ? idGenerator : defaultIdGenerator).generateId()); this.headers.put(TIMESTAMP, new Long(System.currentTimeMillis())); }