diff --git a/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java b/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java index 56b325050997..7a79e8b1e8aa 100644 --- a/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java +++ b/instrumentation/spring/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/server/WebfluxSingletons.java @@ -41,9 +41,14 @@ public static Instrumenter instrumenter() { public static HttpRouteGetter httpRouteGetter() { return (context, exchange) -> { - PathPattern bestPattern = - exchange.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); - return bestPattern == null ? null : bestPattern.getPatternString(); + Object bestPatternObj = exchange.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); + if (bestPatternObj == null) { + return null; + } + if (bestPatternObj instanceof PathPattern) { + return ((PathPattern) bestPatternObj).getPatternString(); + } + return bestPatternObj.toString(); }; }