diff --git a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/Snapshot.java b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/Snapshot.java index f4ec01a63a9..6ef4f91638c 100644 --- a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/Snapshot.java +++ b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/Snapshot.java @@ -34,7 +34,6 @@ public class Snapshot { private String exceptionId; public Snapshot(java.lang.Thread thread, ProbeImplementation probeImplementation, int maxDepth) { - this.id = UUID.randomUUID().toString(); this.version = VERSION; this.timestamp = System.currentTimeMillis(); this.captures = new Captures(); @@ -105,6 +104,10 @@ public void addCaughtExceptions(List throwabl } public String getId() { + // lazily generates snapshot id + if (id == null) { + id = UUID.randomUUID().toString(); + } return id; } diff --git a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/SnapshotSink.java b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/SnapshotSink.java index 4ceca7b547e..5610a16530f 100644 --- a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/SnapshotSink.java +++ b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/SnapshotSink.java @@ -63,6 +63,7 @@ public boolean offer(Snapshot snapshot) { } String serializeSnapshot(String serviceName, Snapshot snapshot) { + snapshot.getId(); // Ensure id is generated String str = DebuggerAgent.getSnapshotSerializer().serializeSnapshot(serviceName, snapshot); String prunedStr = SnapshotPruner.prune(str, MAX_SNAPSHOT_SIZE, 4); if (prunedStr.length() != str.length()) {