Skip to content

Commit c41199b

Browse files
authored
add nullaway to spring, part 1 (open-telemetry#15408)
1 parent 0d51061 commit c41199b

File tree

25 files changed

+65
-9
lines changed

25 files changed

+65
-9
lines changed

instrumentation/spring/spring-batch-3.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-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/v3_0/chunk/TracingChunkExecutionListener.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import static io.opentelemetry.javaagent.instrumentation.spring.batch.v3_0.SpringBatchInstrumentationConfig.shouldCreateRootSpanForChunk;
99
import static io.opentelemetry.javaagent.instrumentation.spring.batch.v3_0.chunk.ChunkSingletons.chunkInstrumenter;
10+
import static java.util.Objects.requireNonNull;
1011

1112
import io.opentelemetry.context.Context;
1213
import io.opentelemetry.context.Scope;
@@ -21,7 +22,7 @@ public final class TracingChunkExecutionListener implements ChunkListener, Order
2122
private static final VirtualField<ChunkContext, ContextAndScope> CONTEXT_AND_SCOPE =
2223
VirtualField.find(ChunkContext.class, ContextAndScope.class);
2324
private final Class<?> builderClass;
24-
private ChunkContextAndBuilder chunkContextAndBuilder;
25+
@Nullable private ChunkContextAndBuilder chunkContextAndBuilder;
2526

2627
public TracingChunkExecutionListener(Class<?> builderClass) {
2728
this.builderClass = builderClass;
@@ -61,7 +62,9 @@ private void end(ChunkContext chunkContext, @Nullable Throwable throwable) {
6162

6263
CONTEXT_AND_SCOPE.set(chunkContext, null);
6364
contextAndScope.closeScope();
64-
chunkInstrumenter().end(contextAndScope.getContext(), chunkContextAndBuilder, null, throwable);
65+
// chunkContextAndBuilder is set in beforeChunk
66+
chunkInstrumenter()
67+
.end(contextAndScope.getContext(), requireNonNull(chunkContextAndBuilder), null, throwable);
6568
}
6669

6770
@Override

instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/v3_0/item/ItemSingletons.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.opentelemetry.context.Context;
1212
import io.opentelemetry.context.ContextKey;
1313
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
14+
import javax.annotation.Nullable;
1415
import org.springframework.batch.core.scope.context.ChunkContext;
1516

1617
public class ItemSingletons {
@@ -47,6 +48,7 @@ public static Context startChunk(Context currentContext, ChunkContext chunkConte
4748
return currentContext.with(CHUNK_CONTEXT_KEY, chunkContext);
4849
}
4950

51+
@Nullable
5052
public static ChunkContext getChunkContext(Context currentContext) {
5153
return currentContext.get(CHUNK_CONTEXT_KEY);
5254
}

instrumentation/spring/spring-batch-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/batch/v3_0/step/TracingStepExecutionListener.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public void beforeStep(StepExecution stepExecution) {
3737
}
3838

3939
@Override
40+
@Nullable
4041
public ExitStatus afterStep(StepExecution stepExecution) {
4142
ContextAndScope contextAndScope = CONTEXT_AND_SCOPE.get(stepExecution);
4243
if (contextAndScope == null) {

instrumentation/spring/spring-boot-actuator-autoconfigure-2.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-boot-resources/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.sdk-extension")
3+
id("otel.nullaway-conventions")
34
}
45

56
dependencies {

instrumentation/spring/spring-boot-resources/javaagent/src/main/java/io/opentelemetry/instrumentation/spring/resources/SpringBootServiceNameDetector.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ private String findByClasspathBootstrapYaml() {
185185
return findByClasspathYamlFile("bootstrap.yaml");
186186
}
187187

188+
@Nullable
188189
private String findByClasspathYamlFile(String fileName) {
189190
String result = loadFromClasspath(fileName, SpringBootServiceNameDetector::parseNameFromYaml);
190191
if (logger.isLoggable(FINER)) {

instrumentation/spring/spring-cloud-aws-3.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-cloud-aws-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/aws/AcknowledgementExecutionContextInstrumentation.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1212
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1313
import java.util.Collection;
14+
import javax.annotation.Nullable;
1415
import net.bytebuddy.asm.Advice;
1516
import net.bytebuddy.description.type.TypeDescription;
1617
import net.bytebuddy.matcher.ElementMatcher;
@@ -32,6 +33,7 @@ public void transform(TypeTransformer transformer) {
3233
@SuppressWarnings("unused")
3334
public static class ExecuteAdvice {
3435
@Advice.OnMethodEnter(suppress = Throwable.class)
36+
@Nullable
3537
public static Scope methodEnter(@Advice.Argument(0) Collection<Message<?>> messages) {
3638
return SpringAwsUtil.handleBatch(messages);
3739
}

instrumentation/spring/spring-cloud-aws-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/aws/MessagingMessageListenerAdapterInstrumentation.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1212
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
13+
import javax.annotation.Nullable;
1314
import net.bytebuddy.asm.Advice;
1415
import net.bytebuddy.description.type.TypeDescription;
1516
import net.bytebuddy.matcher.ElementMatcher;
@@ -33,6 +34,7 @@ public void transform(TypeTransformer transformer) {
3334
@SuppressWarnings("unused")
3435
public static class OnMessageAdvice {
3536
@Advice.OnMethodEnter(suppress = Throwable.class)
37+
@Nullable
3638
public static SpringAwsUtil.MessageScope methodEnter(@Advice.Argument(0) Message<?> message) {
3739
return SpringAwsUtil.handleMessage(message);
3840
}

0 commit comments

Comments
 (0)