diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/HeaderBasedMessagingExtractor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/HeaderBasedMessagingExtractor.java index dc464b74a..1848fa0db 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/HeaderBasedMessagingExtractor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/HeaderBasedMessagingExtractor.java @@ -15,6 +15,8 @@ import org.springframework.cloud.sleuth.util.TextMapUtil; */ public class HeaderBasedMessagingExtractor implements MessagingSpanTextMapExtractor { + private final Random random = new Random(); + @Override public Span joinTrace(SpanTextMap textMap) { Map carrier = TextMapUtil.asMap(textMap); @@ -37,7 +39,7 @@ public class HeaderBasedMessagingExtractor implements MessagingSpanTextMapExtrac private String generateTraceIdIfMissing(Map carrier, boolean traceIdMissing) { if (traceIdMissing) { - carrier.put(TraceMessageHeaders.TRACE_ID_NAME, Span.idToHex(new Random().nextLong())); + carrier.put(TraceMessageHeaders.TRACE_ID_NAME, Span.idToHex(this.random.nextLong())); } return carrier.get(TraceMessageHeaders.TRACE_ID_NAME); }