Skip to content

Commit 98da9ff

Browse files
committed
Implement pushScope popScope and withScope for Scopes
1 parent cdd414a commit 98da9ff

File tree

14 files changed

+54
-39
lines changed

14 files changed

+54
-39
lines changed

sentry-spring-jakarta/src/test/kotlin/io/sentry/spring/jakarta/webflux/SentryWebFluxTracingFilterTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,10 +252,10 @@ class SentryWebFluxTracingFilterTest {
252252
verify(fixture.scopes, times(3)).isEnabled
253253
verify(fixture.scopes, times(2)).options
254254
verify(fixture.scopes).continueTrace(anyOrNull(), anyOrNull())
255-
verify(fixture.scopes).pushScope()
255+
verify(fixture.scopes).pushScope() // TODO don't
256256
verify(fixture.scopes).addBreadcrumb(any<Breadcrumb>(), any<Hint>())
257257
verify(fixture.scopes).configureScope(any<ScopeCallback>())
258-
verify(fixture.scopes).popScope()
258+
verify(fixture.scopes).popScope() // TODO don't
259259
verifyNoMoreInteractions(fixture.scopes)
260260
}
261261
}

sentry-spring/src/main/java/io/sentry/spring/webflux/SentryWebFilter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ isTracingEnabled && shouldTraceRequest(requestHub, request)
8181
if (transaction != null) {
8282
finishTransaction(serverWebExchange, transaction);
8383
}
84-
requestHub.popScope();
84+
requestHub.popScope(); // TODO don't
8585
// TODO token based cleanup instead?
8686
Sentry.setCurrentScopes(NoOpScopes.getInstance());
8787
})
@@ -96,7 +96,7 @@ isTracingEnabled && shouldTraceRequest(requestHub, request)
9696
() -> {
9797
serverWebExchange.getAttributes().put(SENTRY_SCOPES_KEY, requestHub);
9898
Sentry.setCurrentScopes(requestHub);
99-
requestHub.pushScope();
99+
requestHub.pushScope(); // TODO don't
100100
final ServerHttpResponse response = serverWebExchange.getResponse();
101101

102102
final Hint hint = new Hint();

sentry-spring/src/test/kotlin/io/sentry/spring/webflux/SentryWebFluxTracingFilterTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -253,10 +253,10 @@ class SentryWebFluxTracingFilterTest {
253253
verify(fixture.scopes).isEnabled
254254
verify(fixture.scopes, times(2)).options
255255
verify(fixture.scopes).continueTrace(anyOrNull(), anyOrNull())
256-
verify(fixture.scopes).pushScope()
256+
verify(fixture.scopes).pushScope() // TODO don't
257257
verify(fixture.scopes).addBreadcrumb(any<Breadcrumb>(), any<Hint>())
258258
verify(fixture.scopes).configureScope(any<ScopeCallback>())
259-
verify(fixture.scopes).popScope()
259+
verify(fixture.scopes).popScope() // TODO don't
260260
verifyNoMoreInteractions(fixture.scopes)
261261
}
262262
}

sentry/api/sentry.api

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ public final class io/sentry/Hub : io/sentry/IHub, io/sentry/metrics/MetricsApi$
456456
public fun isHealthy ()Z
457457
public fun metrics ()Lio/sentry/metrics/MetricsApi;
458458
public fun popScope ()V
459-
public fun pushScope ()V
459+
public fun pushScope ()Lio/sentry/ISentryLifecycleToken;
460460
public fun removeExtra (Ljava/lang/String;)V
461461
public fun removeTag (Ljava/lang/String;)V
462462
public fun reportFullyDisplayed ()V
@@ -510,7 +510,7 @@ public final class io/sentry/HubAdapter : io/sentry/IHub {
510510
public fun isHealthy ()Z
511511
public fun metrics ()Lio/sentry/metrics/MetricsApi;
512512
public fun popScope ()V
513-
public fun pushScope ()V
513+
public fun pushScope ()Lio/sentry/ISentryLifecycleToken;
514514
public fun removeExtra (Ljava/lang/String;)V
515515
public fun removeTag (Ljava/lang/String;)V
516516
public fun reportFullyDisplayed ()V
@@ -563,7 +563,7 @@ public final class io/sentry/HubScopesWrapper : io/sentry/IHub {
563563
public fun isHealthy ()Z
564564
public fun metrics ()Lio/sentry/metrics/MetricsApi;
565565
public fun popScope ()V
566-
public fun pushScope ()V
566+
public fun pushScope ()Lio/sentry/ISentryLifecycleToken;
567567
public fun removeExtra (Ljava/lang/String;)V
568568
public fun removeTag (Ljava/lang/String;)V
569569
public fun reportFullyDisplayed ()V
@@ -780,7 +780,7 @@ public abstract interface class io/sentry/IScopes {
780780
public fun isNoOp ()Z
781781
public abstract fun metrics ()Lio/sentry/metrics/MetricsApi;
782782
public abstract fun popScope ()V
783-
public abstract fun pushScope ()V
783+
public abstract fun pushScope ()Lio/sentry/ISentryLifecycleToken;
784784
public abstract fun removeExtra (Ljava/lang/String;)V
785785
public abstract fun removeTag (Ljava/lang/String;)V
786786
public fun reportFullDisplayed ()V
@@ -1270,7 +1270,7 @@ public final class io/sentry/NoOpHub : io/sentry/IHub {
12701270
public fun isNoOp ()Z
12711271
public fun metrics ()Lio/sentry/metrics/MetricsApi;
12721272
public fun popScope ()V
1273-
public fun pushScope ()V
1273+
public fun pushScope ()Lio/sentry/ISentryLifecycleToken;
12741274
public fun removeExtra (Ljava/lang/String;)V
12751275
public fun removeTag (Ljava/lang/String;)V
12761276
public fun reportFullyDisplayed ()V
@@ -1394,7 +1394,7 @@ public final class io/sentry/NoOpScopes : io/sentry/IScopes {
13941394
public fun isNoOp ()Z
13951395
public fun metrics ()Lio/sentry/metrics/MetricsApi;
13961396
public fun popScope ()V
1397-
public fun pushScope ()V
1397+
public fun pushScope ()Lio/sentry/ISentryLifecycleToken;
13981398
public fun removeExtra (Ljava/lang/String;)V
13991399
public fun removeTag (Ljava/lang/String;)V
14001400
public fun reportFullyDisplayed ()V
@@ -1866,9 +1866,10 @@ public final class io/sentry/Scopes : io/sentry/IScopes, io/sentry/metrics/Metri
18661866
public fun isCrashedLastRun ()Ljava/lang/Boolean;
18671867
public fun isEnabled ()Z
18681868
public fun isHealthy ()Z
1869+
public fun makeCurrent ()Lio/sentry/ISentryLifecycleToken;
18691870
public fun metrics ()Lio/sentry/metrics/MetricsApi;
18701871
public fun popScope ()V
1871-
public fun pushScope ()V
1872+
public fun pushScope ()Lio/sentry/ISentryLifecycleToken;
18721873
public fun removeExtra (Ljava/lang/String;)V
18731874
public fun removeTag (Ljava/lang/String;)V
18741875
public fun reportFullyDisplayed ()V
@@ -1922,7 +1923,7 @@ public final class io/sentry/ScopesAdapter : io/sentry/IScopes {
19221923
public fun isHealthy ()Z
19231924
public fun metrics ()Lio/sentry/metrics/MetricsApi;
19241925
public fun popScope ()V
1925-
public fun pushScope ()V
1926+
public fun pushScope ()Lio/sentry/ISentryLifecycleToken;
19261927
public fun removeExtra (Ljava/lang/String;)V
19271928
public fun removeTag (Ljava/lang/String;)V
19281929
public fun reportFullyDisplayed ()V
@@ -2017,13 +2018,13 @@ public final class io/sentry/Sentry {
20172018
public static fun isHealthy ()Z
20182019
public static fun metrics ()Lio/sentry/metrics/MetricsApi;
20192020
public static fun popScope ()V
2020-
public static fun pushScope ()V
2021+
public static fun pushScope ()Lio/sentry/ISentryLifecycleToken;
20212022
public static fun removeExtra (Ljava/lang/String;)V
20222023
public static fun removeTag (Ljava/lang/String;)V
20232024
public static fun reportFullDisplayed ()V
20242025
public static fun reportFullyDisplayed ()V
20252026
public static fun setCurrentHub (Lio/sentry/IHub;)V
2026-
public static fun setCurrentScopes (Lio/sentry/IScopes;)V
2027+
public static fun setCurrentScopes (Lio/sentry/IScopes;)Lio/sentry/ISentryLifecycleToken;
20272028
public static fun setExtra (Ljava/lang/String;Ljava/lang/String;)V
20282029
public static fun setFingerprint (Ljava/util/List;)V
20292030
public static fun setLevel (Lio/sentry/SentryLevel;)V

sentry/src/main/java/io/sentry/Hub.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ public void removeExtra(final @NotNull String key) {
526526
}
527527

528528
@Override
529-
public void pushScope() {
529+
public @NotNull ISentryLifecycleToken pushScope() {
530530
if (!isEnabled()) {
531531
options
532532
.getLogger()
@@ -536,6 +536,7 @@ public void pushScope() {
536536
final StackItem newItem = new StackItem(options, item.getClient(), item.getScope().clone());
537537
stack.push(newItem);
538538
}
539+
return NoOpScopesStorage.NoOpScopesLifecycleToken.getInstance();
539540
}
540541

541542
@Override

sentry/src/main/java/io/sentry/HubAdapter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ public void removeExtra(@NotNull String key) {
154154
}
155155

156156
@Override
157-
public void pushScope() {
158-
Sentry.pushScope();
157+
public @NotNull ISentryLifecycleToken pushScope() {
158+
return Sentry.pushScope();
159159
}
160160

161161
@Override

sentry/src/main/java/io/sentry/HubScopesWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ public void removeExtra(@NotNull String key) {
149149
}
150150

151151
@Override
152-
public void pushScope() {
153-
scopes.pushScope();
152+
public @NotNull ISentryLifecycleToken pushScope() {
153+
return scopes.pushScope();
154154
}
155155

156156
@Override

sentry/src/main/java/io/sentry/IScopes.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,8 @@ default void addBreadcrumb(@NotNull String message, @NotNull String category) {
306306
SentryId getLastEventId();
307307

308308
/** Pushes a new scope while inheriting the current scope's data. */
309-
void pushScope();
309+
@NotNull
310+
ISentryLifecycleToken pushScope();
310311

311312
/** Removes the first scope */
312313
void popScope();

sentry/src/main/java/io/sentry/NoOpHub.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,9 @@ public void removeExtra(@NotNull String key) {}
124124
}
125125

126126
@Override
127-
public void pushScope() {}
127+
public @NotNull ISentryLifecycleToken pushScope() {
128+
return NoOpScopesStorage.NoOpScopesLifecycleToken.getInstance();
129+
}
128130

129131
@Override
130132
public void popScope() {}

sentry/src/main/java/io/sentry/NoOpScopes.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ public void removeExtra(@NotNull String key) {}
122122
}
123123

124124
@Override
125-
public void pushScope() {}
125+
public @NotNull ISentryLifecycleToken pushScope() {
126+
return NoOpScopesStorage.NoOpScopesLifecycleToken.getInstance();
127+
}
126128

127129
@Override
128130
public void popScope() {}

0 commit comments

Comments
 (0)