Skip to content

Commit defea92

Browse files
committed
add nullaway to spring
1 parent 8a3ecab commit defea92

File tree

19 files changed

+53
-9
lines changed

19 files changed

+53
-9
lines changed

instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/semconv/http/HttpServerRoute.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ private HttpServerRoute() {}
5757
* strictly lower priority than the provided {@link HttpServerRouteSource}, and the passed value
5858
* is non-null.
5959
*/
60-
public static void update(Context context, HttpServerRouteSource source, String httpRoute) {
60+
public static void update(Context context, HttpServerRouteSource source,
61+
@Nullable String httpRoute) {
6162
update(context, source, ConstantAdapter.INSTANCE, httpRoute);
6263
}
6364

@@ -75,7 +76,7 @@ public static <T> void update(
7576
Context context,
7677
HttpServerRouteSource source,
7778
HttpServerRouteGetter<T> httpRouteGetter,
78-
T arg1) {
79+
@Nullable T arg1) {
7980
update(context, source, OneArgAdapter::get, arg1, httpRouteGetter);
8081
}
8182

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
id("otel.javaagent-instrumentation")
3+
id("otel.nullaway-conventions")
34
}
45

56
muzzle {

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/AdviceUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static <T> Mono<T> wrapMono(Mono<T> mono, Context context) {
5050

5151
@FunctionalInterface
5252
interface OnSpanEnd {
53-
void end(Throwable throwable);
53+
void end(@Nullable Throwable throwable);
5454
}
5555

5656
private static class ContextMono<T> extends Mono<T> {

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/RouteOnSuccess.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public void accept(HandlerFunction<?> handler) {
3232
HttpServerRoute.update(Context.current(), HttpServerRouteSource.CONTROLLER, route);
3333
}
3434

35+
@Nullable
3536
private static String parsePredicateString(RouterFunction<?> routerFunction) {
3637
String routerFunctionString = routerFunction.toString();
3738
// Router functions containing lambda predicates should not end up in span tags since they are

instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webflux/v5_0/server/WebfluxSingletons.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ public static Instrumenter<Object, Void> instrumenter() {
3939

4040
public static HttpServerRouteGetter<ServerWebExchange> httpRouteGetter() {
4141
return (context, exchange) -> {
42+
if (exchange == null) {
43+
return null;
44+
}
4245
Object bestPatternObj = exchange.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
4346
if (bestPatternObj == null) {
4447
return null;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
id("otel.javaagent-instrumentation")
3+
id("otel.nullaway-conventions")
34
}
45

56
muzzle {

instrumentation/spring/spring-webmvc/spring-webmvc-3.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/webmvc/v3_1/SpringWebMvcServerSpanNaming.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ public class SpringWebMvcServerSpanNaming {
1414

1515
public static final HttpServerRouteGetter<HttpServletRequest> SERVER_SPAN_NAME =
1616
(context, request) -> {
17+
if (request == null) {
18+
return null;
19+
}
1720
Object bestMatchingPattern =
1821
request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
1922
if (bestMatchingPattern != null) {

instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
id("otel.library-instrumentation")
3+
id("otel.nullaway-conventions")
34
}
45

56
val springBootVersion = "2.6.15"

instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/HttpRouteSupport.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,10 @@ private void setHandlerMappings(List<HandlerMapping> mappings) {
9696
}
9797

9898
@Nullable
99-
String getHttpRoute(Context context, HttpServletRequest request) {
99+
String getHttpRoute(Context context, @Nullable HttpServletRequest request) {
100+
if (request == null) {
101+
return null;
102+
}
100103
boolean parsePath = this.parseRequestPath;
101104
Object previousValue = null;
102105
if (parsePath) {

instrumentation/spring/spring-webmvc/spring-webmvc-5.3/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/v5_3/JavaxHttpServletRequestGetter.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import io.opentelemetry.instrumentation.api.internal.EnumerationUtil;
1010
import java.util.Collections;
1111
import java.util.Iterator;
12+
import javax.annotation.Nullable;
1213
import javax.servlet.http.HttpServletRequest;
1314

1415
enum JavaxHttpServletRequestGetter implements TextMapGetter<HttpServletRequest> {
@@ -20,12 +21,19 @@ public Iterable<String> keys(HttpServletRequest carrier) {
2021
}
2122

2223
@Override
23-
public String get(HttpServletRequest carrier, String key) {
24+
@Nullable
25+
public String get(@Nullable HttpServletRequest carrier, String key) {
26+
if (carrier == null) {
27+
return null;
28+
}
2429
return carrier.getHeader(key);
2530
}
2631

2732
@Override
28-
public Iterator<String> getAll(HttpServletRequest carrier, String key) {
33+
public Iterator<String> getAll(@Nullable HttpServletRequest carrier, String key) {
34+
if (carrier == null) {
35+
return Collections.emptyIterator();
36+
}
2937
return EnumerationUtil.asIterator(carrier.getHeaders(key));
3038
}
3139
}

0 commit comments

Comments
 (0)