File tree Expand file tree Collapse file tree
main/java/io/sentry/android/core
test/java/io/sentry/android/core Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -351,8 +351,8 @@ private void startTracing(final @NotNull Activity activity) {
351351 transactionOptions );
352352 }
353353
354- if (isFollowingHeadlessAppStart ) {
355- // Consume the stored headless app-start trace so it isn 't reused by another activity .
354+ if (isFollowingHeadlessAppStart || extensionActive ) {
355+ // Consume the stored app-start trace so a later activity doesn 't reuse it .
356356 AppStartMetrics .getInstance ().setAppStartTraceId (null );
357357 AppStartMetrics .getInstance ().setAppStartSentryTraceHeader (null );
358358 AppStartMetrics .getInstance ().setAppStartBaggageHeader (null );
Original file line number Diff line number Diff line change @@ -384,6 +384,37 @@ class ActivityLifecycleIntegrationTest {
384384 )
385385 }
386386
387+ @Test
388+ fun `extended app start trace is not reused by a later activity` () {
389+ val sut =
390+ fixture.getSut {
391+ it.tracesSampleRate = 1.0
392+ it.isEnableStandaloneAppStartTracing = true
393+ }
394+ sut.register(fixture.scopes, fixture.options)
395+
396+ setAppStartTime()
397+ AppStartMetrics .getInstance().appStartExtension.extendAppStart()
398+
399+ val firstActivity = mock<Activity >()
400+ sut.onActivityCreated(firstActivity, fixture.bundle)
401+ val appStartTraceId =
402+ fixture.createdTransactions
403+ .single { it.spanContext.operation == ActivityLifecycleIntegration .STANDALONE_APP_START_OP }
404+ .spanContext
405+ .traceId
406+
407+ AppStartMetrics .getInstance().appStartExtension.finishExtendedAppStart()
408+ AppStartMetrics .getInstance().onAppStartSpansSent()
409+
410+ val secondActivity = mock<Activity >()
411+ sut.onActivityPaused(firstActivity)
412+ sut.onActivityCreated(secondActivity, fixture.bundle)
413+
414+ // The second activity must not continue the already-finished extended app.start trace.
415+ assertNotEquals(appStartTraceId, fixture.createdTransactions.last().spanContext.traceId)
416+ }
417+
387418 @Test
388419 fun `extended standalone app start transaction stays open until finishExtendedAppStart` () {
389420 val sut =
You can’t perform that action at this time.
0 commit comments