Skip to content

Commit fc364b5

Browse files
[release/v1.32.x] Fix latest dep tests after the recent Spring release (#10582)
Co-authored-by: Lauri Tulmin <[email protected]>
1 parent 0a23618 commit fc364b5

File tree

21 files changed

+156
-61
lines changed

21 files changed

+156
-61
lines changed

instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/build.gradle.kts

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ dependencies {
1515
}
1616

1717
tasks {
18+
withType<Test>().configureEach {
19+
systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean)
20+
}
21+
1822
val testStableSemconv by registering(Test::class) {
1923
jvmArgs("-Dotel.semconv-stability.opt-in=http")
2024
}

instrumentation/apache-httpclient/apache-httpclient-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/apachehttpclient/v5_0/ApacheHttpClientTest.java

+5
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,11 @@ protected void configure(HttpClientTestOptions.Builder optionsBuilder) {
223223
super.configure(optionsBuilder);
224224
// apparently apache http client does not report the 302 status code?
225225
optionsBuilder.setResponseCodeOnRedirectError(null);
226+
227+
if (Boolean.getBoolean("testLatestDeps")) {
228+
optionsBuilder.disableTestHttps();
229+
optionsBuilder.disableTestRemoteConnection();
230+
}
226231
}
227232
}
228233

instrumentation/spring/spring-cloud-gateway/spring-cloud-gateway-2.0/javaagent/build.gradle.kts

+7-14
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ dependencies {
2121
testImplementation(project(":instrumentation:spring:spring-cloud-gateway:spring-cloud-gateway-common:testing"))
2222

2323
testLibrary("org.springframework.boot:spring-boot-starter-test:2.0.0.RELEASE")
24+
25+
latestDepTestLibrary("org.springframework.cloud:spring-cloud-starter-gateway:2.1.+")
26+
latestDepTestLibrary("org.springframework.boot:spring-boot-starter-test:2.1.+")
2427
}
2528

2629
tasks.withType<Test>().configureEach {
@@ -33,19 +36,9 @@ tasks.withType<Test>().configureEach {
3336
systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean)
3437
}
3538

36-
val latestDepTest = findProperty("testLatestDeps") as Boolean
37-
38-
if (latestDepTest) {
39-
// spring 6 requires java 17
40-
otelJava {
41-
minJavaVersionSupported.set(JavaVersion.VERSION_17)
42-
}
43-
} else {
44-
// spring 5 requires old logback (and therefore also old slf4j)
45-
configurations.testRuntimeClasspath {
46-
resolutionStrategy {
47-
force("ch.qos.logback:logback-classic:1.2.11")
48-
force("org.slf4j:slf4j-api:1.7.36")
49-
}
39+
configurations.testRuntimeClasspath {
40+
resolutionStrategy {
41+
force("ch.qos.logback:logback-classic:1.2.11")
42+
force("org.slf4j:slf4j-api:1.7.36")
5043
}
5144
}

instrumentation/spring/spring-cloud-gateway/spring-cloud-gateway-2.2/testing/build.gradle.kts

+4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ dependencies {
1313

1414
testLibrary("org.springframework.cloud:spring-cloud-starter-gateway:2.2.0.RELEASE")
1515
testLibrary("org.springframework.boot:spring-boot-starter-test:2.2.0.RELEASE")
16+
17+
// spring-cloud-gateway hasn't yet updated to spring 6.2/boot 3.2
18+
latestDepTestLibrary("org.springframework.boot:spring-boot-starter-webflux:3.1.+")
19+
latestDepTestLibrary("org.springframework.boot:spring-boot-starter-test:3.1.+")
1620
}
1721

1822
tasks.withType<Test>().configureEach {

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/SpringWebfluxTest.java

+22-16
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import io.opentelemetry.api.trace.SpanKind;
3737
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
3838
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
39+
import io.opentelemetry.sdk.testing.assertj.EventDataAssert;
3940
import io.opentelemetry.sdk.testing.assertj.TraceAssert;
4041
import io.opentelemetry.sdk.trace.data.StatusData;
4142
import io.opentelemetry.testing.internal.armeria.client.WebClient;
@@ -484,28 +485,33 @@ void get404Test() {
484485
.hasKind(SpanKind.INTERNAL)
485486
.hasParent(trace.getSpan(0))
486487
.hasStatus(StatusData.error())
487-
.hasEventsSatisfyingExactly(
488-
event ->
489-
event
490-
.hasName(EXCEPTION_EVENT_NAME)
491-
.hasAttributesSatisfyingExactly(
492-
equalTo(
493-
EXCEPTION_TYPE,
494-
"org.springframework.web.server.ResponseStatusException"),
495-
satisfies(
496-
EXCEPTION_MESSAGE,
497-
val ->
498-
val.containsAnyOf(
499-
"Response status 404", "404 NOT_FOUND")),
500-
satisfies(
501-
EXCEPTION_STACKTRACE,
502-
val -> val.isInstanceOf(String.class))))
488+
.hasEventsSatisfyingExactly(SpringWebfluxTest::resource404Exception)
503489
.hasAttributesSatisfyingExactly(
504490
equalTo(
505491
stringKey("spring-webflux.handler.type"),
506492
"org.springframework.web.reactive.resource.ResourceWebHandler"))));
507493
}
508494

495+
private static void resource404Exception(EventDataAssert event) {
496+
if (Boolean.getBoolean("testLatestDeps")) {
497+
event
498+
.hasName(EXCEPTION_EVENT_NAME)
499+
.hasAttributesSatisfyingExactly(
500+
equalTo(
501+
EXCEPTION_TYPE,
502+
"org.springframework.web.reactive.resource.NoResourceFoundException"),
503+
satisfies(EXCEPTION_MESSAGE, val -> val.isInstanceOf(String.class)),
504+
satisfies(EXCEPTION_STACKTRACE, val -> val.isInstanceOf(String.class)));
505+
} else {
506+
event
507+
.hasName(EXCEPTION_EVENT_NAME)
508+
.hasAttributesSatisfyingExactly(
509+
equalTo(EXCEPTION_TYPE, "org.springframework.web.server.ResponseStatusException"),
510+
equalTo(EXCEPTION_MESSAGE, "Response status 404"),
511+
satisfies(EXCEPTION_STACKTRACE, val -> val.isInstanceOf(String.class)));
512+
}
513+
}
514+
509515
@Test
510516
void basicPostTest() {
511517
String echoString = "TEST";

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/ControllerSpringWebFluxServerTest.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/ControllerSpringWebFluxServerTest.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

88
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.EXCEPTION;
99
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.NOT_FOUND;
@@ -52,8 +52,9 @@ protected SpanDataAssert assertHandlerSpan(
5252
.hasAttributesSatisfyingExactly(
5353
equalTo(
5454
EXCEPTION_TYPE,
55-
"org.springframework.web.server.ResponseStatusException"),
56-
equalTo(EXCEPTION_MESSAGE, "404 NOT_FOUND"),
55+
"org.springframework.web.reactive.resource.NoResourceFoundException"),
56+
equalTo(
57+
EXCEPTION_MESSAGE, "404 NOT_FOUND \"No static resource notFound.\""),
5758
satisfies(EXCEPTION_STACKTRACE, val -> val.isInstanceOf(String.class))));
5859
} else {
5960
span.hasEventsSatisfyingExactly(

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/DelayedControllerSpringWebFluxServerTest.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/DelayedControllerSpringWebFluxServerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

88
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint;
99
import java.time.Duration;

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/DelayedHandlerSpringWebFluxServerTest.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/DelayedHandlerSpringWebFluxServerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

88
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint;
99
import java.time.Duration;

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/HandlerSpringWebFluxServerTest.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/HandlerSpringWebFluxServerTest.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

88
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.EXCEPTION;
99
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.NOT_FOUND;
@@ -50,8 +50,9 @@ protected SpanDataAssert assertHandlerSpan(
5050
.hasAttributesSatisfyingExactly(
5151
equalTo(
5252
EXCEPTION_TYPE,
53-
"org.springframework.web.server.ResponseStatusException"),
54-
equalTo(EXCEPTION_MESSAGE, "404 NOT_FOUND"),
53+
"org.springframework.web.reactive.resource.NoResourceFoundException"),
54+
equalTo(
55+
EXCEPTION_MESSAGE, "404 NOT_FOUND \"No static resource notFound.\""),
5556
satisfies(EXCEPTION_STACKTRACE, val -> val.isInstanceOf(String.class))));
5657
} else {
5758
span.hasEventsSatisfyingExactly(

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/ImmediateControllerSpringWebFluxServerTest.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/ImmediateControllerSpringWebFluxServerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

88
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint;
99
import java.util.function.Supplier;

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/ImmediateHandlerSpringWebFluxServerTest.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/ImmediateHandlerSpringWebFluxServerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

88
import static org.assertj.core.api.Assertions.assertThat;
99
import static org.junit.jupiter.api.Assumptions.assumeTrue;

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/ServerTestController.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/ServerTestController.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

8-
import static server.base.SpringWebFluxServerTest.NESTED_PATH;
8+
import static io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base.SpringWebFluxServerTest.NESTED_PATH;
99

1010
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint;
1111
import java.net.URI;

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/ServerTestRouteFactory.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/ServerTestRouteFactory.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

8+
import static io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base.SpringWebFluxServerTest.NESTED_PATH;
89
import static org.springframework.web.reactive.function.server.RequestPredicates.GET;
910
import static org.springframework.web.reactive.function.server.RequestPredicates.path;
1011
import static org.springframework.web.reactive.function.server.RouterFunctions.nest;
1112
import static org.springframework.web.reactive.function.server.RouterFunctions.route;
12-
import static server.base.SpringWebFluxServerTest.NESTED_PATH;
1313

1414
import io.opentelemetry.api.trace.Span;
1515
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint;

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/SpringWebFluxServerTest.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/SpringWebFluxServerTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package server.base;
6+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;
77

88
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.EXCEPTION;
99
import static io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint.NOT_FOUND;

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/base/package-info.java instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/base/package-info.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
* The classes in this package are specific to tests that extend {@link
33
* io.opentelemetry.instrumentation.test.base.HttpServerTest}.
44
*/
5-
package server.base;
5+
package io.opentelemetry.javaagent.instrumentation.spring.webflux.v5_0.server.base;

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/test/java/server/SpringWebFluxTestApplication.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.springframework.boot.autoconfigure.SpringBootApplication;
1818
import org.springframework.context.annotation.Bean;
1919
import org.springframework.context.annotation.ComponentScan;
20-
import org.springframework.context.annotation.FilterType;
2120
import org.springframework.http.MediaType;
2221
import org.springframework.stereotype.Component;
2322
import org.springframework.web.reactive.function.BodyInserters;
@@ -27,9 +26,7 @@
2726
import reactor.core.publisher.Mono;
2827

2928
@SpringBootApplication
30-
@ComponentScan(
31-
basePackages = {"server"},
32-
excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = "server.base.*"))
29+
@ComponentScan(basePackages = {"server"})
3330
public class SpringWebFluxTestApplication {
3431

3532
private static final Tracer tracer = GlobalOpenTelemetry.getTracer("test");

instrumentation/spring/spring-webflux/spring-webflux-5.3/library/src/test/java/io/opentelemetry/instrumentation/spring/webflux/v5_3/TestWebfluxSpringBootApp.java

+12-11
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ Flux<String> success() {
7171

7272
@RequestMapping("/query")
7373
@ResponseBody
74-
String query_param(@RequestParam("some") String param) {
75-
return controller(QUERY_PARAM, () -> "some=" + param);
74+
Mono<String> query_param(@RequestParam("some") String param) {
75+
return Mono.just(controller(QUERY_PARAM, () -> "some=" + param));
7676
}
7777

7878
@RequestMapping("/redirect")
@@ -102,20 +102,21 @@ Flux<ResponseEntity<String>> exception() throws Exception {
102102
}
103103

104104
@RequestMapping("/captureHeaders")
105-
ResponseEntity<String> capture_headers(
105+
Mono<ResponseEntity<String>> capture_headers(
106106
@RequestHeader("X-Test-Request") String testRequestHeader) {
107-
return controller(
108-
CAPTURE_HEADERS,
109-
() ->
110-
ResponseEntity.ok()
111-
.header("X-Test-Response", testRequestHeader)
112-
.body(CAPTURE_HEADERS.getBody()));
107+
return Mono.just(
108+
controller(
109+
CAPTURE_HEADERS,
110+
() ->
111+
ResponseEntity.ok()
112+
.header("X-Test-Response", testRequestHeader)
113+
.body(CAPTURE_HEADERS.getBody())));
113114
}
114115

115116
@RequestMapping("/path/{id}/param")
116117
@ResponseBody
117-
String path_param(@PathVariable("id") int id) {
118-
return controller(PATH_PARAM, () -> String.valueOf(id));
118+
Mono<String> path_param(@PathVariable("id") int id) {
119+
return Mono.just(controller(PATH_PARAM, () -> String.valueOf(id)));
119120
}
120121

121122
@RequestMapping("/child")

instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/build.gradle.kts

+2
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,6 @@ tasks.withType<Test>().configureEach {
5050
// required on jdk17
5151
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
5252
jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
53+
54+
systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean)
5355
}

instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/src/test/groovy/ServletFilterTest.groovy

+35
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44
*/
55

66
import filter.AbstractServletFilterTest
7+
import io.opentelemetry.api.trace.SpanKind
8+
import io.opentelemetry.api.trace.StatusCode
9+
import io.opentelemetry.instrumentation.test.asserts.TraceAssert
10+
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint
11+
import io.opentelemetry.sdk.trace.data.SpanData
12+
13+
import static io.opentelemetry.api.trace.SpanKind.INTERNAL
714

815
class ServletFilterTest extends AbstractServletFilterTest {
916

@@ -14,4 +21,32 @@ class ServletFilterTest extends AbstractServletFilterTest {
1421
Class<?> filterConfigClass() {
1522
ServletFilterConfig
1623
}
24+
25+
@Override
26+
void handlerSpan(TraceAssert trace, int index, Object parent, String method = "GET", ServerEndpoint endpoint) {
27+
if (Boolean.getBoolean("testLatestDeps") && endpoint == ServerEndpoint.NOT_FOUND) {
28+
trace.span(index) {
29+
name "ResourceHttpRequestHandler.handleRequest"
30+
kind INTERNAL
31+
childOf((SpanData) parent)
32+
status StatusCode.ERROR
33+
errorEventWithAnyMessage Class.forName("org.springframework.web.servlet.resource.NoResourceFoundException")
34+
}
35+
} else {
36+
super.handlerSpan(trace, index, parent, method, endpoint)
37+
}
38+
}
39+
40+
@Override
41+
void responseSpan(TraceAssert trace, int index, Object parent, String method, ServerEndpoint endpoint) {
42+
if (Boolean.getBoolean("testLatestDeps") && endpoint == ServerEndpoint.NOT_FOUND) {
43+
trace.span(index) {
44+
name ~/\.sendError$/
45+
kind SpanKind.INTERNAL
46+
// not verifying the parent span, in the latest version the responseSpan is the child of the SERVER span, not the handler span
47+
}
48+
} else {
49+
super.responseSpan(trace, index, parent, method, endpoint)
50+
}
51+
}
1752
}

instrumentation/spring/spring-webmvc/spring-webmvc-6.0/javaagent/src/test/groovy/SpringBootBasedTest.groovy

+21
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,31 @@
44
*/
55

66
import boot.AbstractSpringBootBasedTest
7+
import io.opentelemetry.api.trace.StatusCode
8+
import io.opentelemetry.instrumentation.test.asserts.TraceAssert
9+
import io.opentelemetry.instrumentation.testing.junit.http.ServerEndpoint
10+
import io.opentelemetry.sdk.trace.data.SpanData
11+
12+
import static io.opentelemetry.api.trace.SpanKind.INTERNAL
713

814
class SpringBootBasedTest extends AbstractSpringBootBasedTest {
915

1016
Class<?> securityConfigClass() {
1117
SecurityConfig
1218
}
19+
20+
@Override
21+
void handlerSpan(TraceAssert trace, int index, Object parent, String method = "GET", ServerEndpoint endpoint) {
22+
if (Boolean.getBoolean("testLatestDeps") && endpoint == ServerEndpoint.NOT_FOUND) {
23+
trace.span(index) {
24+
name "ResourceHttpRequestHandler.handleRequest"
25+
kind INTERNAL
26+
childOf((SpanData) parent)
27+
status StatusCode.ERROR
28+
errorEventWithAnyMessage Class.forName("org.springframework.web.servlet.resource.NoResourceFoundException")
29+
}
30+
} else {
31+
super.handlerSpan(trace, index, parent, method, endpoint)
32+
}
33+
}
1334
}

0 commit comments

Comments
 (0)