Skip to content

Commit 6d43df3

Browse files
committed
Replace UUID.randomUUID() with RandomUtils.randomUUID()
This avoids a potential side-effect of loading 'java.util.logging' too early when a JDK has the Amazon Corretto Crypto Provider (ACCP) extension installed
1 parent 523df01 commit 6d43df3

File tree

14 files changed

+62
-23
lines changed

14 files changed

+62
-23
lines changed

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/config/ConfigurationApiImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import datadog.trace.api.civisibility.telemetry.tag.ItrSkipEnabled;
2121
import datadog.trace.api.civisibility.telemetry.tag.RequireGit;
2222
import datadog.trace.civisibility.communication.TelemetryListener;
23+
import datadog.trace.util.RandomUtils;
2324
import java.io.File;
2425
import java.io.IOException;
2526
import java.lang.reflect.ParameterizedType;
@@ -30,7 +31,6 @@
3031
import java.util.HashSet;
3132
import java.util.List;
3233
import java.util.Map;
33-
import java.util.UUID;
3434
import java.util.function.Supplier;
3535
import javax.annotation.Nullable;
3636
import okhttp3.MediaType;
@@ -60,7 +60,7 @@ public class ConfigurationApiImpl implements ConfigurationApi {
6060
private final JsonAdapter<EnvelopeDto<KnownTestsDto>> testFullNamesResponseAdapter;
6161

6262
public ConfigurationApiImpl(BackendApi backendApi, CiVisibilityMetricCollector metricCollector) {
63-
this(backendApi, metricCollector, () -> UUID.randomUUID().toString());
63+
this(backendApi, metricCollector, () -> RandomUtils.randomUUID().toString());
6464
}
6565

6666
ConfigurationApiImpl(

dd-java-agent/agent-crashtracking/src/main/java/com/datadog/crashtracking/CrashUploader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import datadog.trace.api.DDTags;
1717
import datadog.trace.bootstrap.config.provider.ConfigProvider;
1818
import datadog.trace.util.PidHelper;
19+
import datadog.trace.util.RandomUtils;
1920
import de.thetaphi.forbiddenapis.SuppressForbidden;
2021
import java.io.*;
2122
import java.nio.charset.Charset;
@@ -28,7 +29,6 @@
2829
import java.util.List;
2930
import java.util.Map;
3031
import java.util.Scanner;
31-
import java.util.UUID;
3232
import java.util.concurrent.TimeUnit;
3333
import java.util.regex.Matcher;
3434
import java.util.regex.Pattern;
@@ -283,7 +283,7 @@ private RequestBody makeTelemetryRequestBody(@Nonnull String content) throws IOE
283283
.name("runtime_id")
284284
// this is unknowable at this point because the process has crashed
285285
// though we may be able to save it in the tmpdir
286-
.value(UUID.randomUUID().toString());
286+
.value(RandomUtils.randomUUID().toString());
287287
writer.name("tracer_time").value(Instant.now().getEpochSecond());
288288
writer.name("seq_id").value(1);
289289
writer.name("debug").value(true);

dd-java-agent/agent-crashtracking/src/main/java/com/datadog/crashtracking/dto/CrashLog.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import com.squareup.moshi.Json;
44
import com.squareup.moshi.JsonAdapter;
55
import com.squareup.moshi.Moshi;
6+
import datadog.trace.util.RandomUtils;
67
import java.io.IOException;
78
import java.util.Objects;
8-
import java.util.UUID;
99

1010
public final class CrashLog {
1111
private static final int VERSION = 0;
@@ -17,7 +17,7 @@ public final class CrashLog {
1717
ADAPTER = moshi.adapter(CrashLog.class);
1818
}
1919

20-
public final String uuid = UUID.randomUUID().toString();
20+
public final String uuid = RandomUtils.randomUUID().toString();
2121
public final String timestamp;
2222
public final boolean incomplete;
2323
public final ErrorData error;

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/DebuggerTransformer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import datadog.trace.bootstrap.debugger.MethodLocation;
3030
import datadog.trace.bootstrap.debugger.ProbeId;
3131
import datadog.trace.bootstrap.debugger.ProbeImplementation;
32+
import datadog.trace.util.RandomUtils;
3233
import datadog.trace.util.Strings;
3334
import java.io.FileWriter;
3435
import java.io.IOException;
@@ -50,7 +51,6 @@
5051
import java.util.List;
5152
import java.util.Map;
5253
import java.util.Set;
53-
import java.util.UUID;
5454
import java.util.concurrent.ConcurrentHashMap;
5555
import java.util.regex.Pattern;
5656
import net.bytebuddy.description.type.TypeDescription;
@@ -299,7 +299,7 @@ private byte[] transformTheWorld(
299299
if (isMethodIncludedForTransformation(methodNode, classNode, methodNames)) {
300300
LogProbe probe =
301301
LogProbe.builder()
302-
.probeId(UUID.randomUUID().toString(), 0)
302+
.probeId(RandomUtils.randomUUID().toString(), 0)
303303
.where(classNode.name, methodNode.name)
304304
.captureSnapshot(false)
305305
.build();

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/codeorigin/DefaultCodeOriginRecorder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
1515
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
1616
import datadog.trace.util.AgentTaskScheduler;
17+
import datadog.trace.util.RandomUtils;
1718
import datadog.trace.util.stacktrace.StackWalkerFactory;
1819
import java.lang.reflect.Method;
1920
import java.util.Collection;
2021
import java.util.Collections;
2122
import java.util.HashMap;
2223
import java.util.Map;
23-
import java.util.UUID;
2424
import java.util.concurrent.ConcurrentHashMap;
2525
import org.slf4j.Logger;
2626
import org.slf4j.LoggerFactory;
@@ -76,7 +76,7 @@ private CodeOriginProbe createProbe(String fingerPrint, boolean entry, Where whe
7676

7777
probe =
7878
new CodeOriginProbe(
79-
new ProbeId(UUID.randomUUID().toString(), 0), entry, where, maxUserFrames);
79+
new ProbeId(RandomUtils.randomUUID().toString(), 0), entry, where, maxUserFrames);
8080
addFingerprint(fingerPrint, probe);
8181

8282
installProbe(probe);

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/exception/ExceptionProbeManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import datadog.trace.api.Config;
99
import datadog.trace.bootstrap.debugger.DebuggerContext.ClassNameFilter;
1010
import datadog.trace.bootstrap.debugger.ProbeId;
11+
import datadog.trace.util.RandomUtils;
1112
import java.time.Clock;
1213
import java.time.Duration;
1314
import java.time.Instant;
@@ -17,7 +18,6 @@
1718
import java.util.Collections;
1819
import java.util.List;
1920
import java.util.Map;
20-
import java.util.UUID;
2121
import java.util.concurrent.ConcurrentHashMap;
2222
import org.slf4j.Logger;
2323
import org.slf4j.LoggerFactory;
@@ -116,7 +116,7 @@ void addFingerprint(String fingerprint) {
116116

117117
private static ExceptionProbe createMethodProbe(
118118
ExceptionProbeManager exceptionProbeManager, Where where, int chainedExceptionIdx) {
119-
String probeId = UUID.randomUUID().toString();
119+
String probeId = RandomUtils.randomUUID().toString();
120120
return new ExceptionProbe(
121121
new ProbeId(probeId, 0), where, null, null, exceptionProbeManager, chainedExceptionIdx);
122122
}
@@ -159,7 +159,7 @@ public void addSnapshot(Snapshot snapshot) {
159159
}
160160
ThrowableState state =
161161
snapshotsByThrowable.computeIfAbsent(
162-
throwable, key -> new ThrowableState(UUID.randomUUID().toString()));
162+
throwable, key -> new ThrowableState(RandomUtils.randomUUID().toString()));
163163
snapshot.setExceptionId(state.getExceptionId());
164164
state.addSnapshot(snapshot);
165165
}

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/Snapshot.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
import datadog.trace.bootstrap.debugger.CapturedStackFrame;
77
import datadog.trace.bootstrap.debugger.EvaluationError;
88
import datadog.trace.bootstrap.debugger.ProbeImplementation;
9+
import datadog.trace.util.RandomUtils;
910
import java.util.ArrayList;
1011
import java.util.HashMap;
1112
import java.util.List;
1213
import java.util.Map;
1314
import java.util.Objects;
14-
import java.util.UUID;
1515

1616
/** Data class representing all data collected at a probe location */
1717
public class Snapshot {
@@ -112,7 +112,7 @@ public void addCaughtExceptions(List<CapturedThrowable> throwables) {
112112
public String getId() {
113113
// lazily generates snapshot id
114114
if (id == null) {
115-
id = UUID.randomUUID().toString();
115+
id = RandomUtils.randomUUID().toString();
116116
}
117117
return id;
118118
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.datadog.iast.model.Range;
77
import com.datadog.iast.model.json.TaintedObjectEncoding;
88
import com.datadog.iast.util.Wrapper;
9+
import datadog.trace.util.RandomUtils;
910
import java.util.ArrayList;
1011
import java.util.Iterator;
1112
import java.util.List;
@@ -86,7 +87,7 @@ final class TaintedObjectsDebugAdapter implements TaintedObjects, Wrapper<Tainte
8687

8788
public TaintedObjectsDebugAdapter(final TaintedObjectsImpl delegated) {
8889
this.delegated = delegated;
89-
id = UUID.randomUUID();
90+
id = RandomUtils.randomUUID();
9091
LOGGER.debug("new: id={}", id);
9192
}
9293

dd-java-agent/appsec/src/main/java/com/datadog/appsec/powerwaf/PowerWAFModule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
3434
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
3535
import datadog.trace.bootstrap.instrumentation.api.Tags;
36+
import datadog.trace.util.RandomUtils;
3637
import datadog.trace.util.stacktrace.StackTraceEvent;
3738
import datadog.trace.util.stacktrace.StackTraceFrame;
3839
import datadog.trace.util.stacktrace.StackUtils;
@@ -64,7 +65,6 @@
6465
import java.util.Objects;
6566
import java.util.Optional;
6667
import java.util.Set;
67-
import java.util.UUID;
6868
import java.util.concurrent.atomic.AtomicReference;
6969
import java.util.stream.Collectors;
7070
import javax.annotation.Nonnull;
@@ -228,7 +228,7 @@ private void initializeNewWafCtx(
228228
AppSecConfig ruleConfig = config.getMergedUpdateConfig();
229229
PowerwafContext newPwafCtx = null;
230230
try {
231-
String uniqueId = UUID.randomUUID().toString();
231+
String uniqueId = RandomUtils.randomUUID().toString();
232232

233233
if (prevContextAndAddresses == null) {
234234
PowerwafConfig pwConfig = createPowerwafConfig();

gradle/forbiddenApiFilters/main.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ java.lang.String#split(java.lang.String,int)
77
java.lang.String#replaceAll(java.lang.String,java.lang.String)
88
java.lang.String#replaceFirst(java.lang.String,java.lang.String)
99

10+
# can initialize java.util.logging when ACCP is installed, prefer RandomUtils instead
11+
java.util.UUID.randomUUID()
12+
1013
# prefer the NameMatchers/HierarchyMatchers equivalent instead
1114
net.bytebuddy.matcher.ElementMatchers#named(java.lang.String)
1215
net.bytebuddy.matcher.ElementMatchers#namedOneOf(java.lang.String[])

0 commit comments

Comments
 (0)