Skip to content

Commit 909262a

Browse files
committed
return root span only on Android
1 parent 6dd3b53 commit 909262a

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
lines changed

sentry/src/main/java/io/sentry/Sentry.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io.sentry.transport.NoOpEnvelopeCache;
1616
import io.sentry.util.DebugMetaPropertiesApplier;
1717
import io.sentry.util.FileUtils;
18+
import io.sentry.util.Platform;
1819
import io.sentry.util.thread.IMainThreadChecker;
1920
import io.sentry.util.thread.MainThreadChecker;
2021
import io.sentry.util.thread.NoOpMainThreadChecker;
@@ -923,7 +924,7 @@ public static void endSession() {
923924
* span.
924925
*/
925926
public static @Nullable ISpan getSpan() {
926-
if (globalHubMode) {
927+
if (globalHubMode && Platform.isAndroid()) {
927928
return getCurrentHub().getTransaction();
928929
} else {
929930
return getCurrentHub().getSpan();

sentry/src/main/java/io/sentry/util/Platform.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
@ApiStatus.Internal
88
public final class Platform {
9-
private static boolean isAndroid;
9+
static boolean isAndroid;
1010
static boolean isJavaNinePlus;
1111

1212
static {

sentry/src/test/java/io/sentry/SentryTest.kt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import io.sentry.internal.modules.IModulesLoader
99
import io.sentry.protocol.SdkVersion
1010
import io.sentry.protocol.SentryId
1111
import io.sentry.test.ImmediateExecutorService
12+
import io.sentry.util.PlatformTestManipulator
1213
import io.sentry.util.thread.IMainThreadChecker
1314
import io.sentry.util.thread.MainThreadChecker
1415
import org.awaitility.kotlin.await
@@ -735,7 +736,8 @@ class SentryTest {
735736
}
736737

737738
@Test
738-
fun `getSpan calls returns root span if globalhub mode is enabled`() {
739+
fun `getSpan calls returns root span if globalhub mode is enabled on Android`() {
740+
PlatformTestManipulator.pretendIsAndroid(true)
739741
Sentry.init({
740742
it.dsn = dsn
741743
it.enableTracing = true
@@ -747,6 +749,23 @@ class SentryTest {
747749

748750
val span = Sentry.getSpan()!!
749751
assertEquals("op-root", span.operation)
752+
PlatformTestManipulator.pretendIsAndroid(false)
753+
}
754+
755+
@Test
756+
fun `getSpan calls returns child span if globalhub mode is enabled, but the platform is not Android`() {
757+
PlatformTestManipulator.pretendIsAndroid(false)
758+
Sentry.init({
759+
it.dsn = dsn
760+
it.enableTracing = true
761+
it.sampleRate = 1.0
762+
}, false)
763+
764+
val transaction = Sentry.startTransaction("name", "op-root", true)
765+
transaction.startChild("op-child")
766+
767+
val span = Sentry.getSpan()!!
768+
assertEquals("op-child", span.operation)
750769
}
751770

752771
@Test

sentry/src/test/java/io/sentry/util/PlatformTestManipulator.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,9 @@ class PlatformTestManipulator {
66
fun pretendJavaNinePlus(isJavaNinePlus: Boolean) {
77
Platform.isJavaNinePlus = isJavaNinePlus
88
}
9+
10+
fun pretendIsAndroid(isAndroid: Boolean) {
11+
Platform.isAndroid = isAndroid
12+
}
913
}
1014
}

0 commit comments

Comments
 (0)