From 5ec3ca53bf946e40df6676d0d76f54ed312b709c Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 16 Oct 2017 09:28:32 +0200 Subject: [PATCH] Fixing recreation of a random; fixes #728 --- .../instrument/messaging/HeaderBasedMessagingExtractor.java | 4 +++- .../cloud/sleuth/instrument/web/ZipkinHttpSpanExtractor.java | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) 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); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ZipkinHttpSpanExtractor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ZipkinHttpSpanExtractor.java index 9881182b9..ef19978fc 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ZipkinHttpSpanExtractor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ZipkinHttpSpanExtractor.java @@ -26,6 +26,7 @@ public class ZipkinHttpSpanExtractor implements HttpSpanExtractor { private static final String HTTP_COMPONENT = "http"; private final Pattern skipPattern; + private final Random random = new Random(); public ZipkinHttpSpanExtractor(Pattern skipPattern) { this.skipPattern = skipPattern; @@ -70,7 +71,7 @@ public class ZipkinHttpSpanExtractor implements HttpSpanExtractor { private void generateIdIfMissing(Map carrier, String key) { if (!carrier.containsKey(key)) { - carrier.put(key, Span.idToHex(new Random().nextLong())); + carrier.put(key, Span.idToHex(this.random.nextLong())); } }