Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions buildSrc/call-site-instrumentation-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,19 @@ apply {
}

dependencies {
compileOnly("com.google.code.findbugs", "jsr305", "3.0.2")
compileOnly(libs.jsr305)
Comment thread
AlexeyKuznetsov-DD marked this conversation as resolved.

implementation("org.freemarker", "freemarker", "2.3.30")
implementation(libs.asm)
implementation(libs.asm.tree)
implementation(libs.javaparser.symbol.solver)

testCompileOnly(libs.jsr305)
testImplementation(libs.bytebuddy)
testImplementation(libs.bundles.junit5)
testRuntimeOnly(libs.junit.platform.launcher)
testImplementation(libs.bundles.mockito)
testImplementation("javax.servlet", "javax.servlet-api", "3.0.1")
testImplementation(libs.spotbugs.annotations)
}

sourceSets {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import datadog.trace.plugin.csi.impl.CallSiteSpecification.AroundSpecification;
import datadog.trace.plugin.csi.impl.CallSiteSpecification.BeforeSpecification;
import datadog.trace.plugin.csi.util.Types;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.io.File;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
Expand Down Expand Up @@ -558,7 +557,6 @@ static class TestWithOtherAnnotations {
@CallSite.Around("java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.Object)")
@CallSite.Around("java.lang.StringBuffer java.lang.StringBuffer.append(java.lang.Object)")
@Nonnull
@SuppressFBWarnings("NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE")

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed this annotation, as it was a copy-paste, not checked in test and usage of Spotbugs in test scope make almost no sense.

static Appendable aroundAppend(
@CallSite.This @Nullable Appendable self, @CallSite.Argument(0) @Nullable Object param)
throws Throwable {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package datadog.communication.util;

import edu.umd.cs.findbugs.annotations.NonNull;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
Expand All @@ -16,18 +15,19 @@
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nonnull;

public abstract class IOUtils {

private static final int DEFAULT_BUFFER_SIZE = 4096;

private IOUtils() {}

public static @NonNull String readFully(InputStream input) throws IOException {
public static @Nonnull String readFully(InputStream input) throws IOException {
return readFully(input, Charset.defaultCharset());
}

public static @NonNull String readFully(InputStream input, Charset charset) throws IOException {
public static @Nonnull String readFully(InputStream input, Charset charset) throws IOException {
ByteArrayOutputStream output = new ByteArrayOutputStream();
readFully(input, output);
return new String(output.toByteArray(), charset);
Expand All @@ -41,17 +41,17 @@ public static void readFully(InputStream input, OutputStream output) throws IOEx
}
}

public static @NonNull List<String> readLines(final InputStream input) throws IOException {
public static @Nonnull List<String> readLines(final InputStream input) throws IOException {
return readLines(input, Charset.defaultCharset());
}

public static @NonNull List<String> readLines(final InputStream input, final Charset charset)
public static @Nonnull List<String> readLines(final InputStream input, final Charset charset)
throws IOException {
final InputStreamReader reader = new InputStreamReader(input, charset);
return readLines(reader);
}

public static @NonNull List<String> readLines(final Reader input) throws IOException {
public static @Nonnull List<String> readLines(final Reader input) throws IOException {
final BufferedReader reader = new BufferedReader(input, DEFAULT_BUFFER_SIZE);
final List<String> list = new ArrayList<>();
String line = reader.readLine();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package datadog.trace.bootstrap.instrumentation.decorator;

import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;

/**
* Used by {@link BaseDecoratorTest}. Groovy with Java 10+ doesn't seem to treat it properly as an
* anonymous class, so use a Java class instead.
*/
public class SampleJavaClass {
@SuppressFBWarnings("DM_NEW_FOR_GETCLASS")
public static Class anonymousClass =
new Runnable() {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package datadog.trace.civisibility.git.tree;

import datadog.trace.civisibility.diff.LineDiff;
import edu.umd.cs.findbugs.annotations.NonNull;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
Expand All @@ -12,6 +11,7 @@
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.Nonnull;

public class GitDiffParser {

Expand All @@ -20,7 +20,7 @@ public class GitDiffParser {
private static final Pattern CHANGED_LINES_PATTERN =
Pattern.compile("^@@ -\\d+(,\\d+)? \\+(?<startline>\\d+)(,(?<count>\\d+))? @@");

public static @NonNull LineDiff parse(InputStream input) throws IOException {
public static @Nonnull LineDiff parse(InputStream input) throws IOException {
Map<String, BitSet> linesByRelativePath = new HashMap<>();

BufferedReader bufferedReader =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@
import datadog.trace.util.AgentThreadFactory;
import datadog.trace.util.PidHelper;
import de.thetaphi.forbiddenapis.SuppressForbidden;
import edu.umd.cs.findbugs.annotations.NonNull;
import java.io.*;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
Expand Down Expand Up @@ -130,7 +130,7 @@ public CrashUploader(@Nonnull final ConfigManager.StoredConfig storedConfig) {
}

CrashUploader(
@NonNull final Config config, @Nonnull final ConfigManager.StoredConfig storedConfig) {
@Nonnull final Config config, @Nonnull final ConfigManager.StoredConfig storedConfig) {
this.config = config;
this.storedConfig = storedConfig;
this.uploaderSettings = storedConfig.toCrashUploaderSettings();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
import com.squareup.moshi.JsonWriter;
import datadog.trace.bootstrap.debugger.el.DebuggerScript;
import datadog.trace.bootstrap.debugger.el.ValueReferenceResolver;
import edu.umd.cs.findbugs.annotations.NonNull;
import java.io.IOException;
import javax.annotation.Nonnull;

/** Implements expression language for probe condition */
public final class ProbeCondition implements DebuggerScript<Boolean> {
Expand Down Expand Up @@ -48,7 +48,7 @@ public ProbeCondition fromJson(JsonReader reader) throws IOException {
}

@Override
public void toJson(@NonNull JsonWriter jsonWriter, ProbeCondition value) throws IOException {
public void toJson(@Nonnull JsonWriter jsonWriter, ProbeCondition value) throws IOException {
if (value == null) {
jsonWriter.nullValue();
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import datadog.trace.api.time.SystemTimeSource;
import datadog.trace.api.time.TimeSource;
import edu.umd.cs.findbugs.annotations.NonNull;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.common.AttributesBuilder;
Expand All @@ -12,6 +11,7 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;

public class OtelSpanEvent {
public static final String EXCEPTION_SPAN_EVENT_NAME = "exception";
Expand Down Expand Up @@ -43,7 +43,7 @@ public OtelSpanEvent(String name, Attributes attributes, long timestamp, TimeUni
this.timestamp = unit.toNanos(timestamp);
}

@NonNull
@Nonnull
public static String toTag(List<OtelSpanEvent> events) {
StringBuilder builder = new StringBuilder("[");
for (OtelSpanEvent event : events) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import datadog.trace.api.iast.IastContext;
import datadog.trace.api.iast.propagation.PropagationModule;
import datadog.trace.util.stacktrace.StackUtils;
import edu.umd.cs.findbugs.annotations.NonNull;
import java.util.Enumeration;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class TaintableEnumeration implements Enumeration<String> {
Expand All @@ -25,8 +25,8 @@ public class TaintableEnumeration implements Enumeration<String> {

private TaintableEnumeration(
final IastContext ctx,
@NonNull final Enumeration<String> delegate,
@NonNull final PropagationModule module,
@Nonnull final Enumeration<String> delegate,
@Nonnull final PropagationModule module,
final byte origin,
@Nullable final CharSequence name,
final boolean useValueAsName) {
Expand Down Expand Up @@ -78,17 +78,17 @@ private static boolean nonTaintableEnumerationStack(final StackTraceElement elem

public static Enumeration<String> wrap(
final IastContext ctx,
@NonNull final Enumeration<String> delegate,
@NonNull final PropagationModule module,
@Nonnull final Enumeration<String> delegate,
@Nonnull final PropagationModule module,
final byte origin,
@Nullable final CharSequence name) {
return new TaintableEnumeration(ctx, delegate, module, origin, name, false);
}

public static Enumeration<String> wrap(
final IastContext ctx,
@NonNull final Enumeration<String> delegate,
@NonNull final PropagationModule module,
@Nonnull final Enumeration<String> delegate,
@Nonnull final PropagationModule module,
final byte origin,
boolean useValueAsName) {
return new TaintableEnumeration(ctx, delegate, module, origin, null, useValueAsName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
import datadog.trace.bootstrap.instrumentation.api.InstrumentationTags;
import datadog.trace.util.AgentThreadFactory;
import edu.umd.cs.findbugs.annotations.Nullable;
import java.util.concurrent.CompletionException;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class TracingSession extends SessionWrapper implements CqlSession {
private static final ExecutorService EXECUTOR_SERVICE =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ addTestSuiteForDir('latestDepTest', 'test')

dependencies {
compileOnly group: 'io.opentelemetry', name: 'opentelemetry-api', version: otelVersion

compileOnly group: 'com.google.code.findbugs', name: 'jsr305', version: '3.0.2'
compileOnly group: 'com.google.auto.value', name: 'auto-value-annotations', version: '1.6.6'

testImplementation group: 'io.opentelemetry', name: 'opentelemetry-api', version: otelVersion
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
import com.squareup.moshi.JsonWriter;
import com.squareup.moshi.Moshi;
import datadog.trace.bootstrap.debugger.el.DebuggerScript;
import edu.umd.cs.findbugs.annotations.NonNull;
import java.io.IOException;
import javax.annotation.Nonnull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -61,7 +61,7 @@ public static Moshi createMoshiConfig() {

private static class ProbeConditionJsonAdapter extends ProbeCondition.ProbeConditionJsonAdapter {
@Override
public void toJson(@NonNull JsonWriter jsonWriter, ProbeCondition value) throws IOException {
public void toJson(@Nonnull JsonWriter jsonWriter, ProbeCondition value) throws IOException {
if (value == null) {
jsonWriter.nullValue();
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
import datadog.trace.api.intake.TrackType;
import datadog.trace.common.writer.Payload;
import datadog.trace.common.writer.RemoteApi;
import edu.umd.cs.findbugs.annotations.NonNull;
import java.io.IOException;
import java.net.ConnectException;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
Expand All @@ -36,15 +36,15 @@ public static DDEvpProxyApiBuilder builder() {

public static class DDEvpProxyApiBuilder {
private String apiVersion = DEFAULT_INTAKE_VERSION;
@NonNull private TrackType trackType = TrackType.NOOP;
@Nonnull private TrackType trackType = TrackType.NOOP;
private long timeoutMillis = TimeUnit.SECONDS.toMillis(DEFAULT_INTAKE_TIMEOUT);

HttpUrl agentUrl = null;
OkHttpClient httpClient = null;
String evpProxyEndpoint;
boolean compressionEnabled;

public DDEvpProxyApiBuilder trackType(@NonNull final TrackType trackType) {
public DDEvpProxyApiBuilder trackType(@Nonnull final TrackType trackType) {
this.trackType = trackType;
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import datadog.trace.bootstrap.instrumentation.api.ResourceNamePriorities;
import datadog.trace.bootstrap.instrumentation.api.SpanWrapper;
import datadog.trace.core.util.StackTraces;
import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Collections;
import java.util.List;
Expand Down Expand Up @@ -876,7 +875,7 @@ public String toString() {
}

@Override
public void attachWrapper(@NonNull SpanWrapper wrapper) {
public void attachWrapper(@Nonnull SpanWrapper wrapper) {
WRAPPER_FIELD_UPDATER.compareAndSet(this, null, wrapper);
}

Expand Down
2 changes: 2 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
develocity = "4.4.1"
forbiddenapis = "3.10"
gradle-tooling-api = "8.14.5"
jsr305 = "3.0.2"
spotbugs_annotations = "4.9.8"

# DataDog libs and forks
Expand Down Expand Up @@ -80,6 +81,7 @@ testcontainers = "1.21.4"
develocity = { module = "com.gradle:develocity-gradle-plugin", version.ref = "develocity" }
forbiddenapis = { module = "de.thetaphi:forbiddenapis", version.ref = "forbiddenapis" }
gradle-tooling-api = { module = "org.gradle:gradle-tooling-api", version.ref = "gradle-tooling-api" }
jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "jsr305" }
spotbugs-annotations = { module = "com.github.spotbugs:spotbugs-annotations", version.ref = "spotbugs_annotations" }

# DataDog libs and forks
Expand Down
12 changes: 1 addition & 11 deletions gradle/spotbugs.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -60,15 +60,5 @@ tasks.matching { it.name.startsWith('spotbugs') }.configureEach {

dependencies {
compileOnly(libs.spotbugs.annotations)

testImplementation(libs.spotbugs.annotations) {
// Exclude conflicting JUnit5.
exclude group: 'org.junit'
exclude group: 'org.junit.jupiter'
exclude group: 'org.junit.platform'
// Exclude conflicting logback.
exclude group: 'ch.qos.logback'
// Exclude conflicting log4j.
exclude group: 'org.apache.logging.log4j'
}
testImplementation(libs.jsr305)
Comment thread
AlexeyKuznetsov-DD marked this conversation as resolved.
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

import datadog.trace.api.civisibility.InstrumentationBridge;
import datadog.trace.api.telemetry.MetricCollector;
import edu.umd.cs.findbugs.annotations.NonNull;
import javax.annotation.Nonnull;

public class CiVisibilityMetricPeriodicAction extends MetricPeriodicAction {
@NonNull
@Nonnull
@Override
public MetricCollector collector() {
return InstrumentationBridge.getMetricCollector();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

import datadog.trace.api.telemetry.ConfigInversionMetricCollectorImpl;
import datadog.trace.api.telemetry.MetricCollector;
import edu.umd.cs.findbugs.annotations.NonNull;
import javax.annotation.Nonnull;

public class ConfigInversionMetricPeriodicAction extends MetricPeriodicAction {
@Override
@NonNull
@Nonnull
public MetricCollector collector() {
return ConfigInversionMetricCollectorImpl.getInstance();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

import datadog.trace.api.telemetry.CoreMetricCollector;
import datadog.trace.api.telemetry.MetricCollector;
import edu.umd.cs.findbugs.annotations.NonNull;
import javax.annotation.Nonnull;

public class CoreMetricsPeriodicAction extends MetricPeriodicAction {
@NonNull
@Nonnull
@Override
public MetricCollector collector() {
return CoreMetricCollector.getInstance();
Expand Down
Loading