From 1976cf7cf611453b0599d6512f46aa01060978a0 Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Mon, 10 Mar 2025 16:11:14 +0100 Subject: [PATCH 1/2] Fix properly reset application/content-provider timespans --- .../android/core/performance/AppStartMetrics.java | 2 ++ .../core/performance/AppStartMetricsTest.kt | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/sentry-android-core/src/main/java/io/sentry/android/core/performance/AppStartMetrics.java b/sentry-android-core/src/main/java/io/sentry/android/core/performance/AppStartMetrics.java index 20a8558486..6107c2e117 100644 --- a/sentry-android-core/src/main/java/io/sentry/android/core/performance/AppStartMetrics.java +++ b/sentry-android-core/src/main/java/io/sentry/android/core/performance/AppStartMetrics.java @@ -318,6 +318,8 @@ public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle saved appStartSpan.start(); appStartSpan.setStartedAt(nowUptimeMs); CLASS_LOADED_UPTIME_MS = nowUptimeMs; + contentProviderOnCreates.clear(); + applicationOnCreate.reset(); } else { appStartType = savedInstanceState == null ? AppStartType.COLD : AppStartType.WARM; } diff --git a/sentry-android-core/src/test/java/io/sentry/android/core/performance/AppStartMetricsTest.kt b/sentry-android-core/src/test/java/io/sentry/android/core/performance/AppStartMetricsTest.kt index d36ff01a5f..855973d941 100644 --- a/sentry-android-core/src/test/java/io/sentry/android/core/performance/AppStartMetricsTest.kt +++ b/sentry-android-core/src/test/java/io/sentry/android/core/performance/AppStartMetricsTest.kt @@ -154,6 +154,19 @@ class AppStartMetricsTest { val metrics = AppStartMetrics.getInstance() metrics.registerLifecycleCallbacks(mock()) + metrics.contentProviderOnCreateTimeSpans.add( + TimeSpan().apply { + description = "ExampleContentProvider" + setStartedAt(1) + setStoppedAt(2) + } + ) + + metrics.applicationOnCreateTimeSpan.apply { + setStartedAt(3) + setStoppedAt(4) + } + // when the looper runs Shadows.shadowOf(Looper.getMainLooper()).idle() @@ -173,6 +186,8 @@ class AppStartMetricsTest { assertTrue(metrics.shouldSendStartMeasurements()) assertTrue(metrics.appStartTimeSpan.hasStarted()) assertEquals(now, metrics.appStartTimeSpan.startUptimeMs) + assertFalse(metrics.applicationOnCreateTimeSpan.hasStarted()) + assertTrue(metrics.contentProviderOnCreateTimeSpans.isEmpty()) } @Test From 42664f36b703712d385083b331dea2015850c69e Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Mon, 10 Mar 2025 16:13:40 +0100 Subject: [PATCH 2/2] Update Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 983bbc2968..bf7c185c40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixes - Fix Ensure app start type is set, even when ActivityLifecycleIntegration is not running ([#4216](https://github.com/getsentry/sentry-java/pull/4216)) +- Fix properly reset application/content-provider timespans for warm app starts ([#4244](https://github.com/getsentry/sentry-java/pull/4244)) ## 7.22.0