From e6100b56f951a22c62be5a9314924136bf511128 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 13 Aug 2019 15:11:45 +0200 Subject: [PATCH] Lazy SleuthHttpSampler skip pattern resoolution; fixes gh-1420 --- .../sleuth/instrument/web/SleuthHttpSampler.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpSampler.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpSampler.java index fb0927db1..35e5f736c 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpSampler.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpSampler.java @@ -29,20 +29,29 @@ import brave.http.HttpSampler; */ class SleuthHttpSampler extends HttpSampler { - private final Pattern pattern; + private final SkipPatternProvider provider; + + private Pattern pattern; SleuthHttpSampler(SkipPatternProvider provider) { - this.pattern = provider.skipPattern(); + this.provider = provider; } @Override public Boolean trySample(HttpAdapter adapter, Req request) { String url = adapter.path(request); - boolean shouldSkip = this.pattern.matcher(url).matches(); + boolean shouldSkip = pattern().matcher(url).matches(); if (shouldSkip) { return false; } return null; } + private Pattern pattern() { + if (this.pattern == null) { + this.pattern = this.provider.skipPattern(); + } + return this.pattern; + } + }