File tree Expand file tree Collapse file tree 2 files changed +16
-2
lines changed
logs/src/main/java/io/opentelemetry/sdk/logs/export
trace/src/main/java/io/opentelemetry/sdk/trace/export Expand file tree Collapse file tree 2 files changed +16
-2
lines changed Original file line number Diff line number Diff line change @@ -41,6 +41,8 @@ public final class SimpleLogRecordProcessor implements LogRecordProcessor {
4141 Collections .newSetFromMap (new ConcurrentHashMap <>());
4242 private final AtomicBoolean isShutdown = new AtomicBoolean (false );
4343
44+ private final Object exporterLock = new Object ();
45+
4446 /**
4547 * Returns a new {@link SimpleLogRecordProcessor} which exports logs to the {@link
4648 * LogRecordExporter} synchronously.
@@ -64,7 +66,12 @@ private SimpleLogRecordProcessor(LogRecordExporter logRecordExporter) {
6466 public void onEmit (Context context , ReadWriteLogRecord logRecord ) {
6567 try {
6668 List <LogRecordData > logs = Collections .singletonList (logRecord .toLogRecordData ());
67- CompletableResultCode result = logRecordExporter .export (logs );
69+ CompletableResultCode result ;
70+
71+ synchronized (exporterLock ) {
72+ result = logRecordExporter .export (logs );
73+ }
74+
6875 pendingExports .add (result );
6976 result .whenComplete (
7077 () -> {
Original file line number Diff line number Diff line change @@ -41,6 +41,8 @@ public final class SimpleSpanProcessor implements SpanProcessor {
4141 Collections .newSetFromMap (new ConcurrentHashMap <>());
4242 private final AtomicBoolean isShutdown = new AtomicBoolean (false );
4343
44+ private final Object exporterLock = new Object ();
45+
4446 /**
4547 * Returns a new {@link SimpleSpanProcessor} which exports spans to the {@link SpanExporter}
4648 * synchronously.
@@ -86,7 +88,12 @@ public void onEnd(ReadableSpan span) {
8688 if (span != null && (exportUnsampledSpans || span .getSpanContext ().isSampled ())) {
8789 try {
8890 List <SpanData > spans = Collections .singletonList (span .toSpanData ());
89- CompletableResultCode result = spanExporter .export (spans );
91+ CompletableResultCode result ;
92+
93+ synchronized (exporterLock ) {
94+ result = spanExporter .export (spans );
95+ }
96+
9097 pendingExports .add (result );
9198 result .whenComplete (
9299 () -> {
You can’t perform that action at this time.
0 commit comments