Skip to content

Commit 7504373

Browse files
committed
updating comparator
1 parent d76cf04 commit 7504373

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import datadog.trace.core.monitor.HealthMetrics;
1212
import java.io.IOException;
1313
import java.util.ArrayList;
14+
import java.util.Comparator;
1415
import java.util.List;
1516
import java.util.concurrent.TimeUnit;
1617
import java.util.concurrent.atomic.AtomicInteger;
@@ -306,6 +307,8 @@ public DelayingPendingTraceBuffer(
306307
static class TracerDump implements TracerFlare.Reporter {
307308

308309
private final DelayingPendingTraceBuffer buffer;
310+
private final Comparator<Element> TRACE_BY_START_TIME =
311+
Comparator.comparingLong(trace -> trace.getRootSpan().getStartTime());
309312

310313
public TracerDump(DelayingPendingTraceBuffer buffer) {
311314
this.buffer = buffer;
@@ -332,11 +335,14 @@ private String getDumpText() {
332335
}
333336
}
334337

335-
DumpDrain.data.sort(
336-
(span1, span2) ->
337-
Long.compare(
338-
span1.getRootSpan().getStartTime(),
339-
span2.getRootSpan().getStartTime())); // Sort by oldest trace first
338+
DumpDrain.data.removeIf(
339+
(trace) ->
340+
!(trace
341+
instanceof
342+
PendingTrace)); // Removing elements from the drain that are not instances of
343+
// PendingTrace
344+
345+
DumpDrain.data.sort((TRACE_BY_START_TIME).reversed()); // Storing oldest traces first
340346

341347
StringBuilder dumpText = new StringBuilder();
342348
for (Element e : DumpDrain.data) {

0 commit comments

Comments
 (0)