Skip to content

Commit cd3b0e7

Browse files
jack-bergMahoney
andauthored
Fix concurrent span reusable data marshaler (#7041)
Co-authored-by: Robert Elliot <[email protected]>
1 parent 85b99e9 commit cd3b0e7

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/logs/LogReusableDataMarshaler.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import io.opentelemetry.sdk.common.CompletableResultCode;
1010
import io.opentelemetry.sdk.common.export.MemoryMode;
1111
import io.opentelemetry.sdk.logs.data.LogRecordData;
12-
import java.util.ArrayDeque;
1312
import java.util.Collection;
1413
import java.util.Deque;
14+
import java.util.concurrent.ConcurrentLinkedDeque;
1515
import java.util.function.BiFunction;
1616

1717
/**
@@ -20,7 +20,8 @@
2020
*/
2121
public class LogReusableDataMarshaler {
2222

23-
private final Deque<LowAllocationLogsRequestMarshaler> marshalerPool = new ArrayDeque<>();
23+
private final Deque<LowAllocationLogsRequestMarshaler> marshalerPool =
24+
new ConcurrentLinkedDeque<>();
2425

2526
private final MemoryMode memoryMode;
2627
private final BiFunction<Marshaler, Integer, CompletableResultCode> doExport;

exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/metrics/MetricReusableDataMarshaler.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import io.opentelemetry.sdk.common.CompletableResultCode;
1010
import io.opentelemetry.sdk.common.export.MemoryMode;
1111
import io.opentelemetry.sdk.metrics.data.MetricData;
12-
import java.util.ArrayDeque;
1312
import java.util.Collection;
1413
import java.util.Deque;
14+
import java.util.concurrent.ConcurrentLinkedDeque;
1515
import java.util.function.BiFunction;
1616

1717
/**
@@ -20,7 +20,8 @@
2020
*/
2121
public class MetricReusableDataMarshaler {
2222

23-
private final Deque<LowAllocationMetricsRequestMarshaler> marshalerPool = new ArrayDeque<>();
23+
private final Deque<LowAllocationMetricsRequestMarshaler> marshalerPool =
24+
new ConcurrentLinkedDeque<>();
2425

2526
private final MemoryMode memoryMode;
2627
private final BiFunction<Marshaler, Integer, CompletableResultCode> doExport;

exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/traces/SpanReusableDataMarshaler.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import io.opentelemetry.sdk.common.CompletableResultCode;
1010
import io.opentelemetry.sdk.common.export.MemoryMode;
1111
import io.opentelemetry.sdk.trace.data.SpanData;
12-
import java.util.ArrayDeque;
1312
import java.util.Collection;
1413
import java.util.Deque;
14+
import java.util.concurrent.ConcurrentLinkedDeque;
1515
import java.util.function.BiFunction;
1616

1717
/**
@@ -20,7 +20,8 @@
2020
*/
2121
public class SpanReusableDataMarshaler {
2222

23-
private final Deque<LowAllocationTraceRequestMarshaler> marshalerPool = new ArrayDeque<>();
23+
private final Deque<LowAllocationTraceRequestMarshaler> marshalerPool =
24+
new ConcurrentLinkedDeque<>();
2425

2526
private final MemoryMode memoryMode;
2627
private final BiFunction<Marshaler, Integer, CompletableResultCode> doExport;

0 commit comments

Comments
 (0)