Skip to content

Commit 1c2d839

Browse files
Bump spotbugs gradle plugin to 6.4.7 (#10025)
* build: Enforce a JDK 21 to run Gradle * build: Bump SpotBugs to 6.4.7 * build: Cleanup classpath to resolve JUnit5, logback and log4j versions conflict. * code: Marked new places found by latest Spotbugs plugin with `@SuppressFBWarnings` annotations. Co-authored-by: Brice Dutheil <brice.dutheil@gmail.com>
1 parent 3f6d0c6 commit 1c2d839

File tree

90 files changed

+252
-170
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+252
-170
lines changed

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ plugins {
1010
id("dd-trace-java.ci-jobs")
1111

1212
id("com.diffplug.spotless") version "6.13.0"
13-
id("com.github.spotbugs") version "5.0.14"
14-
id("de.thetaphi.forbiddenapis") version "3.8"
13+
id("com.github.spotbugs") version "6.4.7"
14+
id("de.thetaphi.forbiddenapis") version "3.10"
1515
id("io.github.gradle-nexus.publish-plugin") version "2.0.0"
1616
id("com.gradleup.shadow") version "8.3.6" apply false
1717
id("me.champeau.jmh") version "0.7.3" apply false

buildSrc/call-site-instrumentation-plugin/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ dependencies {
3838
testImplementation(libs.groovy)
3939
testImplementation(libs.bundles.spock)
4040
testImplementation("javax.servlet", "javax.servlet-api", "3.0.1")
41-
testImplementation("com.github.spotbugs", "spotbugs-annotations", "4.2.0")
41+
testImplementation(libs.spotbugs.annotations)
4242
}
4343

4444
sourceSets {

communication/src/main/java/datadog/communication/ddagent/SharedCommunicationObjects.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import datadog.remoteconfig.DefaultConfigurationPoller;
1212
import datadog.trace.api.Config;
1313
import datadog.trace.util.AgentTaskScheduler;
14+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
1415
import java.security.Security;
1516
import java.util.ArrayList;
1617
import java.util.List;
@@ -31,6 +32,7 @@ public class SharedCommunicationObjects {
3132
* HTTP client for making requests to Datadog agent. Depending on configuration, this client may
3233
* use regular HTTP, UDS or named pipe.
3334
*/
35+
@SuppressFBWarnings("PA_PUBLIC_PRIMITIVE_ATTRIBUTE")
3436
public OkHttpClient agentHttpClient;
3537

3638
/**
@@ -39,10 +41,18 @@ public class SharedCommunicationObjects {
3941
*/
4042
private volatile OkHttpClient intakeHttpClient;
4143

44+
@SuppressFBWarnings("PA_PUBLIC_PRIMITIVE_ATTRIBUTE")
4245
public long httpClientTimeout;
46+
47+
@SuppressFBWarnings("PA_PUBLIC_PRIMITIVE_ATTRIBUTE")
4348
public boolean forceClearTextHttpForIntakeClient;
49+
50+
@SuppressFBWarnings("PA_PUBLIC_PRIMITIVE_ATTRIBUTE")
4451
public HttpUrl agentUrl;
52+
53+
@SuppressFBWarnings("PA_PUBLIC_PRIMITIVE_ATTRIBUTE")
4554
public Monitoring monitoring;
55+
4656
private volatile DDAgentFeaturesDiscovery featuresDiscovery;
4757
private ConfigurationPoller configurationPoller;
4858

communication/src/main/java/datadog/communication/monitor/DDAgentStatsDClientManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
public final class DDAgentStatsDClientManager implements StatsDClientManager {
1717
private static final DDAgentStatsDClientManager INSTANCE = new DDAgentStatsDClientManager();
1818

19+
private DDAgentStatsDClientManager() {}
20+
1921
private static final boolean USE_LOGGING_CLIENT =
2022
LOGGING_WRITER_TYPE.equals(Config.get().getWriterType());
2123

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
import datadog.trace.util.AgentTaskScheduler;
5959
import datadog.trace.util.AgentThreadFactory.AgentThread;
6060
import datadog.trace.util.throwable.FatalAgentMisconfigurationError;
61+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
6162
import java.lang.instrument.Instrumentation;
6263
import java.lang.reflect.InvocationTargetException;
6364
import java.lang.reflect.Method;
@@ -202,6 +203,7 @@ private static void safelySetContextClassLoader(ClassLoader classLoader) {
202203
* <p>The Agent is considered to start successfully if Instrumentation can be activated. All other
203204
* pieces are considered optional.
204205
*/
206+
@SuppressFBWarnings("AT_STALE_THREAD_WRITE_OF_PRIMITIVE")
205207
public static void start(
206208
final Object bootstrapInitTelemetry,
207209
final Instrumentation inst,
@@ -460,6 +462,7 @@ private static void injectAgentArgsConfig(String agentArgs) {
460462
}
461463
}
462464

465+
@SuppressFBWarnings("AT_STALE_THREAD_WRITE_OF_PRIMITIVE")
463466
private static void configureCiVisibility(URL agentJarURL) {
464467
// Retro-compatibility for the old way to configure CI Visibility
465468
if ("true".equals(ddGetProperty("dd.integration.junit.enabled"))

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/PatchLogger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static PatchLogger getAnonymousLogger(final String resourceBundleName) {
2929
return SAFE_LOGGER;
3030
}
3131

32-
protected PatchLogger(final String name, final String resourceBundleName) {
32+
private PatchLogger(final String name, final String resourceBundleName) {
3333
// super(name, resourceBundleName);
3434
}
3535

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/jms/SessionState.java

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

33
import datadog.trace.api.Config;
44
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
5-
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
65
import java.util.ArrayDeque;
76
import java.util.Collections;
87
import java.util.Comparator;
@@ -65,7 +64,6 @@ public int compare(Map.Entry<Thread, TimeInQueue> o1, Map.Entry<Thread, TimeInQu
6564
private volatile int timeInQueueSpanCount = 0;
6665

6766
// this field is protected by synchronization of capturedSpans, but SpotBugs miss that
68-
@SuppressFBWarnings("IS2_INCONSISTENT_SYNC")
6967
private boolean capturingFlipped = false;
7068

7169
public SessionState(int ackMode, boolean timeInQueueEnabled) {

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/execution/RetryUntilSuccessful.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,14 @@
33
import datadog.trace.api.civisibility.execution.TestExecutionPolicy;
44
import datadog.trace.api.civisibility.execution.TestStatus;
55
import datadog.trace.api.civisibility.telemetry.tag.RetryReason;
6+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
67
import java.util.concurrent.atomic.AtomicInteger;
78

89
/** Retries a test case if it failed, up to a maximum number of times. */
10+
@SuppressFBWarnings(
11+
value = {"AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE", "AT_STALE_THREAD_WRITE_OF_PRIMITIVE"},
12+
justification =
13+
"TestExecutionPolicy instances are confined to a single thread and are not meant to be thread-safe")
914
public class RetryUntilSuccessful implements TestExecutionPolicy {
1015

1116
private final int maxExecutions;

dd-java-agent/agent-iast/iast-test-fixtures/src/main/groovy/com/datadog/iast/test/IastRequestTestRunner.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ import datadog.trace.agent.test.utils.OkHttpUtils
66
import datadog.trace.api.gateway.IGSpanInfo
77
import datadog.trace.api.gateway.RequestContext
88
import datadog.trace.api.gateway.RequestContextSlot
9+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings
910
import okhttp3.OkHttpClient
1011

1112
import java.util.concurrent.LinkedBlockingQueue
1213
import java.util.concurrent.TimeUnit
1314

15+
@SuppressFBWarnings("HSM_HIDING_METHOD")
1416
class IastRequestTestRunner extends IastAgentTestRunner implements IastRequestContextPreparationTrait {
1517

1618
private static final LinkedBlockingQueue<TaintedObjectCollection> TAINTED_OBJECTS = new LinkedBlockingQueue<>()

dd-java-agent/agent-iast/src/main/java/com/datadog/iast/IastSystem.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import datadog.trace.api.iast.telemetry.Verbosity;
5656
import datadog.trace.util.AgentTaskScheduler;
5757
import datadog.trace.util.stacktrace.StackWalkerFactory;
58+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
5859
import java.lang.instrument.Instrumentation;
5960
import java.lang.reflect.Constructor;
6061
import java.lang.reflect.UndeclaredThrowableException;
@@ -70,7 +71,11 @@
7071
public class IastSystem {
7172

7273
private static final Logger LOGGER = LoggerFactory.getLogger(IastSystem.class);
74+
75+
@SuppressFBWarnings("PA_PUBLIC_PRIMITIVE_ATTRIBUTE")
7376
public static boolean DEBUG = false;
77+
78+
@SuppressFBWarnings("PA_PUBLIC_PRIMITIVE_ATTRIBUTE")
7479
public static Verbosity VERBOSITY = Verbosity.OFF;
7580

7681
public static void start(final SubscriptionService ss) {

0 commit comments

Comments
 (0)