Skip to content

Commit 6b2478d

Browse files
Replaced code changes with @SuppressFBWarnings annotations.
1 parent dd1b15c commit 6b2478d

File tree

8 files changed

+38
-19
lines changed

8 files changed

+38
-19
lines changed

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

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@
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 java.util.concurrent.atomic.AtomicBoolean;
6+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
77
import java.util.concurrent.atomic.AtomicInteger;
88

99
/** 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 = "TODO")
1013
public class RetryUntilSuccessful implements TestExecutionPolicy {
1114

1215
private final int maxExecutions;
1316
private final boolean suppressFailures;
14-
private final AtomicInteger executions = new AtomicInteger(0);
15-
private final AtomicBoolean successfulExecutionSeen = new AtomicBoolean(false);
17+
private int executions;
18+
private boolean successfulExecutionSeen;
1619

1720
/** Total retry counter that is shared by all retry until successful policies (currently ATR) */
1821
private final AtomicInteger totalRetryCount;
@@ -22,29 +25,29 @@ public RetryUntilSuccessful(
2225
this.maxExecutions = maxExecutions;
2326
this.suppressFailures = suppressFailures;
2427
this.totalRetryCount = totalRetryCount;
28+
this.executions = 0;
2529
}
2630

2731
@Override
2832
public ExecutionOutcome registerExecution(TestStatus status, long durationMillis) {
29-
int execs = executions.incrementAndGet();
30-
boolean success = successfulExecutionSeen.get() | (status != TestStatus.fail);
31-
successfulExecutionSeen.set(success);
32-
if (execs > 1) {
33+
++executions;
34+
successfulExecutionSeen |= (status != TestStatus.fail);
35+
if (executions > 1) {
3336
totalRetryCount.incrementAndGet();
3437
}
3538

3639
boolean lastExecution = !retriesLeft();
37-
boolean retry = execs > 1; // first execution is not a retry
40+
boolean retry = executions > 1; // first execution is not a retry
3841
return new ExecutionOutcomeImpl(
3942
status == TestStatus.fail && (!lastExecution || suppressFailures),
4043
lastExecution,
41-
lastExecution && !success,
44+
lastExecution && !successfulExecutionSeen,
4245
false,
4346
retry ? RetryReason.atr : null);
4447
}
4548

4649
private boolean retriesLeft() {
47-
return !successfulExecutionSeen.get() && executions.get() < maxExecutions;
50+
return !successfulExecutionSeen && executions < maxExecutions;
4851
}
4952

5053
@Override
@@ -58,7 +61,7 @@ public boolean applicable() {
5861
public boolean suppressFailures() {
5962
// do not suppress failures for last execution (unless flag to suppress all failures is set);
6063
// the +1 is because this method is called _before_ subsequent execution is registered
61-
return executions.get() + 1 < maxExecutions || suppressFailures;
64+
return executions + 1 < maxExecutions || suppressFailures;
6265
}
6366

6467
@Override

dd-java-agent/agent-iast/src/main/java/com/datadog/iast/taint/TaintedMap.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import datadog.trace.api.iast.telemetry.IastMetricCollector;
88
import datadog.trace.api.iast.telemetry.Verbosity;
99
import datadog.trace.util.AgentTaskScheduler;
10+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
1011
import java.util.Arrays;
1112
import java.util.Collections;
1213
import java.util.Iterator;
@@ -102,7 +103,8 @@ class TaintedMapImpl implements TaintedMap, Runnable {
102103
/**
103104
* Flag for the current alive tainted objects (red/black style marking for max age calculation).
104105
*/
105-
protected volatile boolean generation;
106+
@SuppressFBWarnings(value = "AT_STALE_THREAD_WRITE_OF_PRIMITIVE", justification = "TODO")
107+
protected boolean generation;
106108

107109
/** Whether to collect the {@link IastMetric#TAINTED_FLAT_MODE} metric or not */
108110
protected boolean collectFlatBucketMetric;

dd-java-agent/appsec/src/main/java/com/datadog/appsec/config/AppSecConfigServiceImpl.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import datadog.trace.api.ProductActivation;
5656
import datadog.trace.api.UserIdCollectionMode;
5757
import datadog.trace.api.telemetry.WafMetricCollector;
58+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
5859
import java.io.ByteArrayInputStream;
5960
import java.io.FileInputStream;
6061
import java.io.FileNotFoundException;
@@ -100,8 +101,12 @@ public class AppSecConfigServiceImpl implements AppSecConfigService {
100101
.build()
101102
.adapter(Types.newParameterizedType(Map.class, String.class, Object.class));
102103

103-
private volatile boolean hasUserWafConfig;
104-
private volatile boolean defaultConfigActivated;
104+
@SuppressFBWarnings(value = "AT_STALE_THREAD_WRITE_OF_PRIMITIVE", justification = "TODO")
105+
private boolean hasUserWafConfig;
106+
107+
@SuppressFBWarnings(value = "AT_STALE_THREAD_WRITE_OF_PRIMITIVE", justification = "TODO")
108+
private boolean defaultConfigActivated;
109+
105110
private final AtomicBoolean subscribedToRulesAndData = new AtomicBoolean();
106111
private final Set<String> usedDDWafConfigKeys =
107112
Collections.newSetFromMap(new ConcurrentHashMap<>());

dd-java-agent/instrumentation-testing/src/main/groovy/datadog/trace/agent/test/InstrumentationSpecification.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,8 @@ abstract class InstrumentationSpecification extends DDSpecification implements A
252252
}
253253
}
254254

255-
volatile boolean originalAppSecRuntimeValue
255+
@SuppressFBWarnings(value = "AT_STALE_THREAD_WRITE_OF_PRIMITIVE", justification = "TODO")
256+
boolean originalAppSecRuntimeValue
256257

257258
@Shared
258259
ConcurrentHashMap<DDSpan, List<Exception>> spanFinishLocations = new ConcurrentHashMap<>()

dd-java-agent/instrumentation/testng/src/main/java/datadog/trace/instrumentation/testng/execution/RetryAnalyzer.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@
66
import datadog.trace.api.civisibility.execution.TestExecutionPolicy;
77
import datadog.trace.instrumentation.testng.TestEventsHandlerHolder;
88
import datadog.trace.instrumentation.testng.TestNGUtils;
9+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
910
import java.util.Collection;
1011
import org.testng.IRetryAnalyzer;
1112
import org.testng.ITestResult;
1213

1314
public class RetryAnalyzer implements IRetryAnalyzer {
1415

1516
private volatile TestExecutionPolicy executionPolicy;
16-
private volatile boolean suppressFailures;
17+
18+
@SuppressFBWarnings(value = "AT_STALE_THREAD_WRITE_OF_PRIMITIVE", justification = "TODO")
19+
private boolean suppressFailures;
1720

1821
public void createExecutionPolicy(ITestResult result) {
1922
if (executionPolicy == null) {

dd-trace-core/src/main/java/datadog/trace/common/metrics/Aggregator.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import datadog.trace.common.metrics.SignalItem.StopSignal;
66
import datadog.trace.core.util.LRUCache;
7+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
78
import java.util.Iterator;
89
import java.util.Map;
910
import java.util.Queue;
@@ -34,7 +35,8 @@ final class Aggregator implements Runnable {
3435

3536
private final long sleepMillis;
3637

37-
private volatile boolean dirty;
38+
@SuppressFBWarnings(value = "AT_STALE_THREAD_WRITE_OF_PRIMITIVE", justification = "TODO")
39+
private boolean dirty;
3840

3941
Aggregator(
4042
MetricWriter writer,

dd-trace-core/src/main/java/datadog/trace/core/DDSpan.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import datadog.trace.bootstrap.instrumentation.api.Tags;
3333
import datadog.trace.core.util.StackTraces;
3434
import edu.umd.cs.findbugs.annotations.NonNull;
35+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
3536
import java.util.Collections;
3637
import java.util.List;
3738
import java.util.Map;
@@ -91,7 +92,8 @@ static DDSpan create(
9192
*/
9293
private volatile long durationNano;
9394

94-
private volatile boolean forceKeep;
95+
@SuppressFBWarnings(value = "AT_STALE_THREAD_WRITE_OF_PRIMITIVE", justification = "TODO")
96+
private boolean forceKeep;
9597

9698
private volatile EndpointTracker endpointTracker;
9799

dd-trace-core/src/main/java/datadog/trace/core/propagation/ptags/PTagsFactory.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ static class PTags extends PropagationTags {
7676
// tags that don't require any modifications and propagated as-is
7777
private final List<TagElement> tagPairs;
7878

79-
private volatile boolean canChangeDecisionMaker;
79+
@SuppressFBWarnings(value = "AT_STALE_THREAD_WRITE_OF_PRIMITIVE", justification = "TODO")
80+
private boolean canChangeDecisionMaker;
8081

8182
// extracted decision maker tag for easier updates
8283
private volatile TagValue decisionMakerTagValue;

0 commit comments

Comments
 (0)