From bfa36fc71d1de9e8268e49d5b5cc4020cae84f89 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Fri, 29 Jun 2018 21:35:21 +0200 Subject: [PATCH 1/5] Removed hystrix from feign tests --- .../FeignClientServerErrorTests.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/servererrors/FeignClientServerErrorTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/servererrors/FeignClientServerErrorTests.java index 24606c474..663462809 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/servererrors/FeignClientServerErrorTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/servererrors/FeignClientServerErrorTests.java @@ -16,10 +16,14 @@ package org.springframework.cloud.sleuth.instrument.web.client.feign.servererrors; -import com.netflix.hystrix.exception.HystrixRuntimeException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import com.netflix.loadbalancer.BaseLoadBalancer; import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.Server; +import feign.FeignException; import feign.codec.Decoder; import feign.codec.ErrorDecoder; import org.awaitility.Awaitility; @@ -57,10 +61,6 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.then; /** @@ -71,7 +71,7 @@ import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.then; @RunWith(SpringRunner.class) @SpringBootTest(classes = FeignClientServerErrorTests.TestConfiguration.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @TestPropertySource(properties = { "spring.application.name=fooservice" , -"feign.hystrix.enabled=true"}) +"feign.hystrix.enabled=false"}) public class FeignClientServerErrorTests { @Autowired TestFeignInterface feignInterface; @@ -89,7 +89,7 @@ public class FeignClientServerErrorTests { public void shouldCloseSpanOnInternalServerError() throws InterruptedException { try { this.feignInterface.internalError(); - } catch (HystrixRuntimeException e) { + } catch (FeignException e) { } Awaitility.await().untilAsserted(() -> { @@ -98,7 +98,7 @@ public class FeignClientServerErrorTests { then(ExceptionUtils.getLastException()).isNull(); then(new ListOfSpans(this.listener.getEvents())) .hasASpanWithTagEqualTo(Span.SPAN_ERROR_TAG_NAME, - "Request processing failed; nested exception is java.lang.RuntimeException: Internal Error"); + "Missing request header 'X-B3-ParentSpanId' for method parameter of type String"); }); } @@ -106,7 +106,7 @@ public class FeignClientServerErrorTests { public void shouldCloseSpanOnNotFound() throws InterruptedException { try { this.feignInterface.notFound(); - } catch (HystrixRuntimeException e) { + } catch (FeignException e) { } Awaitility.await().untilAsserted(() -> { @@ -120,7 +120,7 @@ public class FeignClientServerErrorTests { public void shouldCloseSpanOnOk() throws InterruptedException { try { this.feignInterface.ok(); - } catch (HystrixRuntimeException e) { + } catch (FeignException e) { } Awaitility.await().untilAsserted(() -> { @@ -133,7 +133,7 @@ public class FeignClientServerErrorTests { public void shouldCloseSpanOnOkWithCustomFeignConfiguration() throws InterruptedException { try { this.customConfFeignInterface.ok(); - } catch (HystrixRuntimeException e) { + } catch (FeignException e) { } Awaitility.await().untilAsserted(() -> { @@ -146,7 +146,7 @@ public class FeignClientServerErrorTests { public void shouldCloseSpanOnNotFoundWithCustomFeignConfiguration() throws InterruptedException { try { this.customConfFeignInterface.notFound(); - } catch (HystrixRuntimeException e) { + } catch (FeignException e) { } Awaitility.await().untilAsserted(() -> { From 9795a98c681ade951b85e72f8f3380da0686d94c Mon Sep 17 00:00:00 2001 From: buildmaster Date: Fri, 29 Jun 2018 19:48:36 +0000 Subject: [PATCH 2/5] Update SNAPSHOT to 1.3.4.RELEASE --- benchmarks/pom.xml | 2 +- docs/pom.xml | 2 +- pom.xml | 12 ++++++------ spring-cloud-sleuth-core/pom.xml | 2 +- spring-cloud-sleuth-dependencies/pom.xml | 4 ++-- spring-cloud-sleuth-reactor/pom.xml | 2 +- spring-cloud-sleuth-samples/pom.xml | 2 +- .../spring-cloud-sleuth-sample-feign/pom.xml | 2 +- .../spring-cloud-sleuth-sample-messaging/pom.xml | 2 +- .../spring-cloud-sleuth-sample-ribbon/pom.xml | 2 +- .../spring-cloud-sleuth-sample-test-core/pom.xml | 2 +- .../spring-cloud-sleuth-sample-websocket/pom.xml | 2 +- .../spring-cloud-sleuth-sample-zipkin/pom.xml | 2 +- .../spring-cloud-sleuth-sample/pom.xml | 2 +- spring-cloud-sleuth-stream/pom.xml | 2 +- spring-cloud-sleuth-zipkin-legacy/pom.xml | 2 +- spring-cloud-sleuth-zipkin-stream/pom.xml | 2 +- spring-cloud-sleuth-zipkin/pom.xml | 2 +- spring-cloud-starter-sleuth/pom.xml | 2 +- spring-cloud-starter-zipkin-legacy/pom.xml | 2 +- spring-cloud-starter-zipkin/pom.xml | 2 +- 21 files changed, 27 insertions(+), 27 deletions(-) diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index 3a61ca4a5..0f6efd490 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -17,7 +17,7 @@ Benchmarks Benchmarks (JMH) org.springframework.cloud - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE benchmarks diff --git a/docs/pom.xml b/docs/pom.xml index 4ece6d113..4186180c0 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE spring-cloud-sleuth-docs pom diff --git a/pom.xml b/pom.xml index 8a004bf22..d6b8cdfc8 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE pom Spring Cloud Sleuth Spring Cloud Sleuth @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-build - 1.3.9.BUILD-SNAPSHOT + 1.3.10.RELEASE @@ -242,10 +242,10 @@ 1.8 2.19.1 2.17 - 1.3.9.BUILD-SNAPSHOT - 1.3.3.BUILD-SNAPSHOT - Ditmars.BUILD-SNAPSHOT - 1.4.4.BUILD-SNAPSHOT + 1.3.10.RELEASE + 1.3.4.RELEASE + Ditmars.SR4 + 1.4.5.RELEASE 3.1.0.RELEASE 1.0.0 diff --git a/spring-cloud-sleuth-core/pom.xml b/spring-cloud-sleuth-core/pom.xml index 5294ad158..56699b259 100644 --- a/spring-cloud-sleuth-core/pom.xml +++ b/spring-cloud-sleuth-core/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml index 93b0b216f..a9142d872 100644 --- a/spring-cloud-sleuth-dependencies/pom.xml +++ b/spring-cloud-sleuth-dependencies/pom.xml @@ -5,11 +5,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 1.3.9.BUILD-SNAPSHOT + 1.3.10.RELEASE spring-cloud-sleuth-dependencies - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE pom spring-cloud-sleuth-dependencies Spring Cloud Sleuth Dependencies diff --git a/spring-cloud-sleuth-reactor/pom.xml b/spring-cloud-sleuth-reactor/pom.xml index c3ab32d95..9aedb99bf 100644 --- a/spring-cloud-sleuth-reactor/pom.xml +++ b/spring-cloud-sleuth-reactor/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-samples/pom.xml b/spring-cloud-sleuth-samples/pom.xml index 697398c5d..534f0230d 100644 --- a/spring-cloud-sleuth-samples/pom.xml +++ b/spring-cloud-sleuth-samples/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml index 201bbf9a7..8f1586e0b 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml @@ -20,7 +20,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml index bd2810519..d45f41b48 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml index 3e7f279bb..052a57ec3 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml index 5098fc4b8..9be4b025a 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml index 82920fc8f..f2e447037 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml index c87e1555a..9eb6c7731 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml @@ -27,7 +27,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml index a6ece9b76..323cf239a 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-stream/pom.xml b/spring-cloud-sleuth-stream/pom.xml index b228b4582..b37ae8420 100644 --- a/spring-cloud-sleuth-stream/pom.xml +++ b/spring-cloud-sleuth-stream/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE diff --git a/spring-cloud-sleuth-zipkin-legacy/pom.xml b/spring-cloud-sleuth-zipkin-legacy/pom.xml index ff103da1e..31b0ed95e 100644 --- a/spring-cloud-sleuth-zipkin-legacy/pom.xml +++ b/spring-cloud-sleuth-zipkin-legacy/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-sleuth-zipkin-stream/pom.xml b/spring-cloud-sleuth-zipkin-stream/pom.xml index 9eb1f1f9d..32faaf32e 100644 --- a/spring-cloud-sleuth-zipkin-stream/pom.xml +++ b/spring-cloud-sleuth-zipkin-stream/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE diff --git a/spring-cloud-sleuth-zipkin/pom.xml b/spring-cloud-sleuth-zipkin/pom.xml index c9ed0e351..e66f86099 100644 --- a/spring-cloud-sleuth-zipkin/pom.xml +++ b/spring-cloud-sleuth-zipkin/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. diff --git a/spring-cloud-starter-sleuth/pom.xml b/spring-cloud-starter-sleuth/pom.xml index d7cca695e..a43bce4f5 100644 --- a/spring-cloud-starter-sleuth/pom.xml +++ b/spring-cloud-starter-sleuth/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. spring-cloud-starter-sleuth diff --git a/spring-cloud-starter-zipkin-legacy/pom.xml b/spring-cloud-starter-zipkin-legacy/pom.xml index 899f83cdf..3eecbb944 100644 --- a/spring-cloud-starter-zipkin-legacy/pom.xml +++ b/spring-cloud-starter-zipkin-legacy/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. spring-cloud-starter-zipkin-legacy diff --git a/spring-cloud-starter-zipkin/pom.xml b/spring-cloud-starter-zipkin/pom.xml index 16f121d89..74a0db891 100644 --- a/spring-cloud-starter-zipkin/pom.xml +++ b/spring-cloud-starter-zipkin/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.4.RELEASE .. spring-cloud-starter-zipkin From 870498a01fc970380aa8af4ae6c3e0101eac4436 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Fri, 29 Jun 2018 19:50:52 +0000 Subject: [PATCH 3/5] Going back to snapshots --- benchmarks/pom.xml | 2 +- docs/pom.xml | 2 +- pom.xml | 12 ++++++------ spring-cloud-sleuth-core/pom.xml | 2 +- spring-cloud-sleuth-dependencies/pom.xml | 4 ++-- spring-cloud-sleuth-reactor/pom.xml | 2 +- spring-cloud-sleuth-samples/pom.xml | 2 +- .../spring-cloud-sleuth-sample-feign/pom.xml | 2 +- .../spring-cloud-sleuth-sample-messaging/pom.xml | 2 +- .../spring-cloud-sleuth-sample-ribbon/pom.xml | 2 +- .../spring-cloud-sleuth-sample-test-core/pom.xml | 2 +- .../spring-cloud-sleuth-sample-websocket/pom.xml | 2 +- .../spring-cloud-sleuth-sample-zipkin/pom.xml | 2 +- .../spring-cloud-sleuth-sample/pom.xml | 2 +- spring-cloud-sleuth-stream/pom.xml | 2 +- spring-cloud-sleuth-zipkin-legacy/pom.xml | 2 +- spring-cloud-sleuth-zipkin-stream/pom.xml | 2 +- spring-cloud-sleuth-zipkin/pom.xml | 2 +- spring-cloud-starter-sleuth/pom.xml | 2 +- spring-cloud-starter-zipkin-legacy/pom.xml | 2 +- spring-cloud-starter-zipkin/pom.xml | 2 +- 21 files changed, 27 insertions(+), 27 deletions(-) diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index 0f6efd490..3a61ca4a5 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -17,7 +17,7 @@ Benchmarks Benchmarks (JMH) org.springframework.cloud - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT benchmarks diff --git a/docs/pom.xml b/docs/pom.xml index 4186180c0..4ece6d113 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT spring-cloud-sleuth-docs pom diff --git a/pom.xml b/pom.xml index d6b8cdfc8..8a004bf22 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT pom Spring Cloud Sleuth Spring Cloud Sleuth @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-build - 1.3.10.RELEASE + 1.3.9.BUILD-SNAPSHOT @@ -242,10 +242,10 @@ 1.8 2.19.1 2.17 - 1.3.10.RELEASE - 1.3.4.RELEASE - Ditmars.SR4 - 1.4.5.RELEASE + 1.3.9.BUILD-SNAPSHOT + 1.3.3.BUILD-SNAPSHOT + Ditmars.BUILD-SNAPSHOT + 1.4.4.BUILD-SNAPSHOT 3.1.0.RELEASE 1.0.0 diff --git a/spring-cloud-sleuth-core/pom.xml b/spring-cloud-sleuth-core/pom.xml index 56699b259..5294ad158 100644 --- a/spring-cloud-sleuth-core/pom.xml +++ b/spring-cloud-sleuth-core/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml index a9142d872..93b0b216f 100644 --- a/spring-cloud-sleuth-dependencies/pom.xml +++ b/spring-cloud-sleuth-dependencies/pom.xml @@ -5,11 +5,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 1.3.10.RELEASE + 1.3.9.BUILD-SNAPSHOT spring-cloud-sleuth-dependencies - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT pom spring-cloud-sleuth-dependencies Spring Cloud Sleuth Dependencies diff --git a/spring-cloud-sleuth-reactor/pom.xml b/spring-cloud-sleuth-reactor/pom.xml index 9aedb99bf..c3ab32d95 100644 --- a/spring-cloud-sleuth-reactor/pom.xml +++ b/spring-cloud-sleuth-reactor/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/pom.xml b/spring-cloud-sleuth-samples/pom.xml index 534f0230d..697398c5d 100644 --- a/spring-cloud-sleuth-samples/pom.xml +++ b/spring-cloud-sleuth-samples/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml index 8f1586e0b..201bbf9a7 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml @@ -20,7 +20,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml index d45f41b48..bd2810519 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml index 052a57ec3..3e7f279bb 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml index 9be4b025a..5098fc4b8 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml index f2e447037..82920fc8f 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml index 9eb6c7731..c87e1555a 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml @@ -27,7 +27,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml index 323cf239a..a6ece9b76 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-stream/pom.xml b/spring-cloud-sleuth-stream/pom.xml index b37ae8420..b228b4582 100644 --- a/spring-cloud-sleuth-stream/pom.xml +++ b/spring-cloud-sleuth-stream/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT diff --git a/spring-cloud-sleuth-zipkin-legacy/pom.xml b/spring-cloud-sleuth-zipkin-legacy/pom.xml index 31b0ed95e..ff103da1e 100644 --- a/spring-cloud-sleuth-zipkin-legacy/pom.xml +++ b/spring-cloud-sleuth-zipkin-legacy/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-zipkin-stream/pom.xml b/spring-cloud-sleuth-zipkin-stream/pom.xml index 32faaf32e..9eb1f1f9d 100644 --- a/spring-cloud-sleuth-zipkin-stream/pom.xml +++ b/spring-cloud-sleuth-zipkin-stream/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT diff --git a/spring-cloud-sleuth-zipkin/pom.xml b/spring-cloud-sleuth-zipkin/pom.xml index e66f86099..c9ed0e351 100644 --- a/spring-cloud-sleuth-zipkin/pom.xml +++ b/spring-cloud-sleuth-zipkin/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. diff --git a/spring-cloud-starter-sleuth/pom.xml b/spring-cloud-starter-sleuth/pom.xml index a43bce4f5..d7cca695e 100644 --- a/spring-cloud-starter-sleuth/pom.xml +++ b/spring-cloud-starter-sleuth/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. spring-cloud-starter-sleuth diff --git a/spring-cloud-starter-zipkin-legacy/pom.xml b/spring-cloud-starter-zipkin-legacy/pom.xml index 3eecbb944..899f83cdf 100644 --- a/spring-cloud-starter-zipkin-legacy/pom.xml +++ b/spring-cloud-starter-zipkin-legacy/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. spring-cloud-starter-zipkin-legacy diff --git a/spring-cloud-starter-zipkin/pom.xml b/spring-cloud-starter-zipkin/pom.xml index 74a0db891..16f121d89 100644 --- a/spring-cloud-starter-zipkin/pom.xml +++ b/spring-cloud-starter-zipkin/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.RELEASE + 1.3.4.BUILD-SNAPSHOT .. spring-cloud-starter-zipkin From 3511b1621b17cf89d1e2b31e3423ab69803e39e2 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Fri, 29 Jun 2018 19:50:53 +0000 Subject: [PATCH 4/5] Bumping versions to 1.3.5.BUILD-SNAPSHOT after release --- benchmarks/pom.xml | 2 +- docs/pom.xml | 2 +- pom.xml | 6 +++--- spring-cloud-sleuth-core/pom.xml | 2 +- spring-cloud-sleuth-dependencies/pom.xml | 4 ++-- spring-cloud-sleuth-reactor/pom.xml | 2 +- spring-cloud-sleuth-samples/pom.xml | 2 +- .../spring-cloud-sleuth-sample-feign/pom.xml | 2 +- .../spring-cloud-sleuth-sample-messaging/pom.xml | 2 +- .../spring-cloud-sleuth-sample-ribbon/pom.xml | 2 +- .../spring-cloud-sleuth-sample-test-core/pom.xml | 2 +- .../spring-cloud-sleuth-sample-websocket/pom.xml | 2 +- .../spring-cloud-sleuth-sample-zipkin/pom.xml | 2 +- .../spring-cloud-sleuth-sample/pom.xml | 2 +- spring-cloud-sleuth-stream/pom.xml | 2 +- spring-cloud-sleuth-zipkin-legacy/pom.xml | 2 +- spring-cloud-sleuth-zipkin-stream/pom.xml | 2 +- spring-cloud-sleuth-zipkin/pom.xml | 2 +- spring-cloud-starter-sleuth/pom.xml | 2 +- spring-cloud-starter-zipkin-legacy/pom.xml | 2 +- spring-cloud-starter-zipkin/pom.xml | 2 +- 21 files changed, 24 insertions(+), 24 deletions(-) diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index 3a61ca4a5..d9bb370ab 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -17,7 +17,7 @@ Benchmarks Benchmarks (JMH) org.springframework.cloud - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT benchmarks diff --git a/docs/pom.xml b/docs/pom.xml index 4ece6d113..f6846513b 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT spring-cloud-sleuth-docs pom diff --git a/pom.xml b/pom.xml index 8a004bf22..ce1c9dcd2 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT pom Spring Cloud Sleuth Spring Cloud Sleuth @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-build - 1.3.9.BUILD-SNAPSHOT + 1.3.10.RELEASE @@ -242,7 +242,7 @@ 1.8 2.19.1 2.17 - 1.3.9.BUILD-SNAPSHOT + 1.3.10.RELEASE 1.3.3.BUILD-SNAPSHOT Ditmars.BUILD-SNAPSHOT 1.4.4.BUILD-SNAPSHOT diff --git a/spring-cloud-sleuth-core/pom.xml b/spring-cloud-sleuth-core/pom.xml index 5294ad158..b4b1f0988 100644 --- a/spring-cloud-sleuth-core/pom.xml +++ b/spring-cloud-sleuth-core/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml index 93b0b216f..5845b22cd 100644 --- a/spring-cloud-sleuth-dependencies/pom.xml +++ b/spring-cloud-sleuth-dependencies/pom.xml @@ -5,11 +5,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 1.3.9.BUILD-SNAPSHOT + 1.3.10.RELEASE spring-cloud-sleuth-dependencies - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT pom spring-cloud-sleuth-dependencies Spring Cloud Sleuth Dependencies diff --git a/spring-cloud-sleuth-reactor/pom.xml b/spring-cloud-sleuth-reactor/pom.xml index c3ab32d95..636a833cb 100644 --- a/spring-cloud-sleuth-reactor/pom.xml +++ b/spring-cloud-sleuth-reactor/pom.xml @@ -11,7 +11,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/pom.xml b/spring-cloud-sleuth-samples/pom.xml index 697398c5d..dbde5d983 100644 --- a/spring-cloud-sleuth-samples/pom.xml +++ b/spring-cloud-sleuth-samples/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml index 201bbf9a7..c707c3830 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-feign/pom.xml @@ -20,7 +20,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml index bd2810519..8b91a8837 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml index 3e7f279bb..28a6eeb39 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-ribbon/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml index 5098fc4b8..0853cdbf0 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml index 82920fc8f..438e482c6 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-websocket/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml index c87e1555a..c7a811a4d 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml @@ -27,7 +27,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml index a6ece9b76..bccf83a22 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth-samples - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-stream/pom.xml b/spring-cloud-sleuth-stream/pom.xml index b228b4582..690474e8f 100644 --- a/spring-cloud-sleuth-stream/pom.xml +++ b/spring-cloud-sleuth-stream/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT diff --git a/spring-cloud-sleuth-zipkin-legacy/pom.xml b/spring-cloud-sleuth-zipkin-legacy/pom.xml index ff103da1e..dc344adf7 100644 --- a/spring-cloud-sleuth-zipkin-legacy/pom.xml +++ b/spring-cloud-sleuth-zipkin-legacy/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-sleuth-zipkin-stream/pom.xml b/spring-cloud-sleuth-zipkin-stream/pom.xml index 9eb1f1f9d..1944a1ff1 100644 --- a/spring-cloud-sleuth-zipkin-stream/pom.xml +++ b/spring-cloud-sleuth-zipkin-stream/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT diff --git a/spring-cloud-sleuth-zipkin/pom.xml b/spring-cloud-sleuth-zipkin/pom.xml index c9ed0e351..dec9bf5d7 100644 --- a/spring-cloud-sleuth-zipkin/pom.xml +++ b/spring-cloud-sleuth-zipkin/pom.xml @@ -28,7 +28,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. diff --git a/spring-cloud-starter-sleuth/pom.xml b/spring-cloud-starter-sleuth/pom.xml index d7cca695e..24b818858 100644 --- a/spring-cloud-starter-sleuth/pom.xml +++ b/spring-cloud-starter-sleuth/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. spring-cloud-starter-sleuth diff --git a/spring-cloud-starter-zipkin-legacy/pom.xml b/spring-cloud-starter-zipkin-legacy/pom.xml index 899f83cdf..1465740ed 100644 --- a/spring-cloud-starter-zipkin-legacy/pom.xml +++ b/spring-cloud-starter-zipkin-legacy/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. spring-cloud-starter-zipkin-legacy diff --git a/spring-cloud-starter-zipkin/pom.xml b/spring-cloud-starter-zipkin/pom.xml index 16f121d89..12bfc23b2 100644 --- a/spring-cloud-starter-zipkin/pom.xml +++ b/spring-cloud-starter-zipkin/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-sleuth - 1.3.4.BUILD-SNAPSHOT + 1.3.5.BUILD-SNAPSHOT .. spring-cloud-starter-zipkin From 707f3714d60bf280133b43bbfbc2ef84e1a2455f Mon Sep 17 00:00:00 2001 From: Alvin <329772643@qq.com> Date: Mon, 30 Jul 2018 21:30:39 +0800 Subject: [PATCH 5/5] Close span when Exception is ClientAbortException (#1040) * close span when Exception is ClientAbortException * Support custom to ignore exception in trace. * explicit import statements * Add test to verify that the span got reported. Fix typo. Fixes gh-1038 --- .../web/ExceptionToIgnoreInTraceFilter.java | 24 ++++ ...xceptionToIgnoreInTraceFilterProvider.java | 31 ++++++ .../sleuth/instrument/web/TraceFilter.java | 22 +++- .../web/TraceWebAutoConfiguration.java | 35 ++++++ .../instrument/web/TraceFilterTests.java | 103 ++++++++++++++++++ 5 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionToIgnoreInTraceFilter.java create mode 100644 spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionToIgnoreInTraceFilterProvider.java diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionToIgnoreInTraceFilter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionToIgnoreInTraceFilter.java new file mode 100644 index 000000000..b6fec4c9e --- /dev/null +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionToIgnoreInTraceFilter.java @@ -0,0 +1,24 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.sleuth.instrument.web; + +/** + * Provide a exceptionClassName to ignore in trace. + */ +interface ExceptionToIgnoreInTraceFilter { + String exceptionClassName(); +} diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionToIgnoreInTraceFilterProvider.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionToIgnoreInTraceFilterProvider.java new file mode 100644 index 000000000..5e627378e --- /dev/null +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionToIgnoreInTraceFilterProvider.java @@ -0,0 +1,31 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.sleuth.instrument.web; + +import java.util.List; + +class ExceptionToIgnoreInTraceFilterProvider { + final List exceptionsToIgnoreInTraceFilters; + + public ExceptionToIgnoreInTraceFilterProvider(List exceptionsToIgnoreInTraceFilter) { + this.exceptionsToIgnoreInTraceFilters = exceptionsToIgnoreInTraceFilter; + } + + public List exceptionsToIgnoreInTraceFilters() { + return this.exceptionsToIgnoreInTraceFilters; + } +} \ No newline at end of file diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java index ea6d886ad..f3bbca62d 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java @@ -27,7 +27,6 @@ import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.BeanFactory; @@ -106,6 +105,7 @@ public class TraceFilter extends GenericFilterBean { private ErrorParser errorParser; private final BeanFactory beanFactory; private Boolean hasErrorController; + private ExceptionToIgnoreInTraceFilterProvider exceptionToIgnoreInTraceFilterProvider; private final UrlPathHelper urlPathHelper = new UrlPathHelper(); @@ -241,6 +241,9 @@ public class TraceFilter extends GenericFilterBean { if (exception == null || !hasErrorController()) { tracer().close(span); clearTraceAttribute(request); + } else if(exception != null && needIgnoreException(exception)){ + tracer().close(span); + clearTraceAttribute(request); } } else if (errorAlreadyHandled(request) && tracer().isTracing() && !shouldCloseSpan(request)) { if (log.isDebugEnabled()) { @@ -271,6 +274,16 @@ public class TraceFilter extends GenericFilterBean { } } + + private boolean needIgnoreException(Throwable exception) { + for (ExceptionToIgnoreInTraceFilter filter : exceptionToIgnoreInTraceFilterProvider().exceptionsToIgnoreInTraceFilters()) { + if(exception.getClass().getName().equals(filter.exceptionClassName())){ + return true; + } + } + return false; + } + // null check is only for tests private boolean hasErrorController() { if (this.hasErrorController == null) { @@ -502,5 +515,12 @@ public class TraceFilter extends GenericFilterBean { } return this.errorParser; } + + ExceptionToIgnoreInTraceFilterProvider exceptionToIgnoreInTraceFilterProvider() { + if (this.exceptionToIgnoreInTraceFilterProvider == null) { + this.exceptionToIgnoreInTraceFilterProvider = this.beanFactory.getBean(ExceptionToIgnoreInTraceFilterProvider.class); + } + return this.exceptionToIgnoreInTraceFilterProvider; + } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java index f6b1913de..554292326 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java @@ -15,7 +15,11 @@ */ package org.springframework.cloud.sleuth.instrument.web; +import org.apache.catalina.connector.ClientAbortException; +import org.apache.catalina.connector.Request; +import org.apache.catalina.connector.Response; import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -34,6 +38,9 @@ import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Role; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import java.util.ArrayList; +import java.util.List; + import static javax.servlet.DispatcherType.ASYNC; import static javax.servlet.DispatcherType.ERROR; import static javax.servlet.DispatcherType.FORWARD; @@ -98,4 +105,32 @@ public class TraceWebAutoConfiguration { return new TraceFilter(beanFactory, skipPatternProvider.skipPattern()); } + + @Configuration + @ConditionalOnClass(name = "org.apache.catalina.connector.ClientAbortException") + protected static class ClientAbortExceptionToIgnoreInTraceFilterConfig{ + /** + * Ignore the name of {@link ClientAbortException} when use tomcat. Because the tomcat will ignore this exception + * in {@link org.apache.catalina.core.StandardHostValve#throwable(Request, Response, Throwable)}, Causes the current span to not close. + * More detail see #1038. + */ + @Bean + public ExceptionToIgnoreInTraceFilter clientAbortExceptionToIgnoreInTraceFilter(){ + return new ExceptionToIgnoreInTraceFilter() { + @Override + public String exceptionClassName() { + return ClientAbortException.class.getName(); + } + }; + } + } + + @Autowired(required=false) + List exceptionsToIgnoreInTraceFilter = new ArrayList<>(); + + @Bean + ExceptionToIgnoreInTraceFilterProvider exceptionToIgnoreInTraceFilterProvider() { + return new ExceptionToIgnoreInTraceFilterProvider(this.exceptionsToIgnoreInTraceFilter); + } + } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java index aa987ea40..fb6de94f5 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java @@ -16,10 +16,14 @@ package org.springframework.cloud.sleuth.instrument.web; +import java.io.IOException; import java.util.ArrayList; +import java.util.List; import java.util.Random; import java.util.regex.Pattern; +import org.apache.catalina.connector.ClientAbortException; +import org.assertj.core.util.Lists; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -28,6 +32,7 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.boot.autoconfigure.web.ErrorController; import org.springframework.cloud.sleuth.DefaultSpanNamer; import org.springframework.cloud.sleuth.ErrorParser; import org.springframework.cloud.sleuth.ExceptionMessageErrorParser; @@ -54,6 +59,12 @@ import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockServletContext; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.WriteListener; + import static org.junit.Assert.assertEquals; import static org.mockito.MockitoAnnotations.initMocks; import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.assertThat; @@ -375,6 +386,98 @@ public class TraceFilterTests { then(TestSpanContextHolder.getCurrentSpan()).isNull(); } + @Test + public void closesSpanWhenResponseStatusIs2xxAndExceptionIsClientAbortException() throws Exception { + this.request = builder().header(Span.SPAN_ID_NAME, PARENT_ID) + .header(Span.TRACE_ID_NAME, 20L).buildRequest(new MockServletContext()); + TraceFilter filter = new TraceFilter(beanFactory()); + BDDMockito.given(beanFactory.getBean(ErrorController.class)).willReturn(() -> "/error"); + List filters = Lists.newArrayList(getClientAbortExpcetionToIgnoreInTraceFilter()); + BDDMockito.given(beanFactory.getBean(ExceptionToIgnoreInTraceFilterProvider.class)) + .willReturn(getExceptionToIgnoreInTraceFilterProvider(filters)); + this.response = new MockHttpServletResponse(){ + @Override + public ServletOutputStream getOutputStream() { + ServletOutputStream outputStream = super.getOutputStream(); + return new ServletOutputStream() { + @Override + public boolean isReady() { + return outputStream.isReady(); + } + + @Override + public void setWriteListener(WriteListener listener) { + outputStream.setWriteListener(listener); + } + + @Override + public void write(int b) throws IOException { + outputStream.write(b); + } + + @Override + public void flush() throws IOException { + throw new ClientAbortException("Broken pipe"); + } + }; + } + }; + response.setStatus(200); + this.filterChain = new MockFilterChain(){ + @Override + public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { + ServletOutputStream outputStream = response.getOutputStream(); + outputStream.write(1); + outputStream.flush(); + } + }; + try { + filter.doFilter(this.request, this.response, this.filterChain); + }catch (ClientAbortException e){ + // ig + } + then(TestSpanContextHolder.getCurrentSpan()).isNull(); + then(spanReporter.getSpans()).hasSize(1); + } + @Test + public void closesSpanWhenResponseStatusIs2xxAndClientAbortExceptionThrowAfterTraceFilter() throws Exception { + this.request = builder().header(Span.SPAN_ID_NAME, PARENT_ID) + .header(Span.TRACE_ID_NAME, 20L).buildRequest(new MockServletContext()); + TraceFilter filter = new TraceFilter(beanFactory()); + BDDMockito.given(beanFactory.getBean(ErrorController.class)).willReturn(() -> "/error"); + List filters = Lists.newArrayList(getClientAbortExpcetionToIgnoreInTraceFilter()); + BDDMockito.given(beanFactory.getBean(ExceptionToIgnoreInTraceFilterProvider.class)) + .willReturn(getExceptionToIgnoreInTraceFilterProvider(filters)); + this.response = new MockHttpServletResponse(); + response.setStatus(200); + this.filterChain = new MockFilterChain(){ + @Override + public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { + throw new ClientAbortException(); + } + }; + try { + filter.doFilter(this.request, this.response, this.filterChain); + }catch (ClientAbortException e){ + // ig + } + then(TestSpanContextHolder.getCurrentSpan()).isNull(); + then(spanReporter.getSpans()).hasSize(1); + } + + private ExceptionToIgnoreInTraceFilter getClientAbortExpcetionToIgnoreInTraceFilter() { + return new ExceptionToIgnoreInTraceFilter(){ + @Override + public String exceptionClassName() { + return ClientAbortException.class.getName(); + } + }; + } + + private ExceptionToIgnoreInTraceFilterProvider getExceptionToIgnoreInTraceFilterProvider(List filters) { + return new ExceptionToIgnoreInTraceFilterProvider(filters); + } + @Test public void closesSpanWhenResponseStatusIs3xx() throws Exception { this.request = builder().header(Span.SPAN_ID_NAME, PARENT_ID)