diff --git a/sentry/src/main/java/io/sentry/SentryTracer.java b/sentry/src/main/java/io/sentry/SentryTracer.java index e3cc1498e5..48a1f5ec63 100644 --- a/sentry/src/main/java/io/sentry/SentryTracer.java +++ b/sentry/src/main/java/io/sentry/SentryTracer.java @@ -7,6 +7,7 @@ import io.sentry.protocol.TransactionNameSource; import io.sentry.protocol.User; import io.sentry.util.Objects; +import io.sentry.util.thread.MainThreadChecker; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; @@ -384,6 +385,8 @@ private ISpan createChild( } }); span.setDescription(description); + span.setData( + SpanDataConvention.BLOCKED_MAIN_THREAD_KEY, MainThreadChecker.getInstance().isMainThread()); this.children.add(span); return span; } diff --git a/sentry/src/test/java/io/sentry/SentryTracerTest.kt b/sentry/src/test/java/io/sentry/SentryTracerTest.kt index ee698af6c0..65ae250790 100644 --- a/sentry/src/test/java/io/sentry/SentryTracerTest.kt +++ b/sentry/src/test/java/io/sentry/SentryTracerTest.kt @@ -1236,4 +1236,10 @@ class SentryTracerTest { assertTrue(tracer.isFinished) verify(fixture.hub).captureTransaction(any(), anyOrNull(), anyOrNull(), anyOrNull()) } + + @Test + fun `when a span is launched, the main thread flag is set as span data`() { + val tracer = fixture.getSut() + assertNotNull(tracer.startChild("span.op").getData(SpanDataConvention.BLOCKED_MAIN_THREAD_KEY)) + } }