File tree Expand file tree Collapse file tree 1 file changed +24
-1
lines changed
sentry-opentelemetry/sentry-opentelemetry-bootstrap/src/main/java/io/sentry/opentelemetry Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Original file line number Diff line number Diff line change 1
1
package io .sentry .opentelemetry ;
2
2
3
+ import org .jetbrains .annotations .NotNull ;
4
+
5
+ import java .util .Iterator ;
6
+ import java .util .ServiceLoader ;
7
+
3
8
import io .opentelemetry .context .ContextStorage ;
4
9
import io .opentelemetry .context .ContextStorageProvider ;
5
10
6
11
public final class SentryContextStorageProvider implements ContextStorageProvider {
7
12
@ Override
8
13
public ContextStorage get () {
9
- return new SentryContextStorage (new SentryOtelThreadLocalStorage ());
14
+ return new SentryContextStorage (findStorageToWrap ());
15
+ }
16
+
17
+ private @ NotNull ContextStorage findStorageToWrap () {
18
+ try {
19
+ ServiceLoader <ContextStorageProvider > serviceLoader = ServiceLoader .load (ContextStorageProvider .class );
20
+ Iterator <ContextStorageProvider > iterator = serviceLoader .iterator ();
21
+ while (iterator .hasNext ()) {
22
+ ContextStorageProvider contextStorageProvider = iterator .next ();
23
+ if (!(contextStorageProvider instanceof SentryContextStorageProvider )) {
24
+ return contextStorageProvider .get ();
25
+ }
26
+ }
27
+ } catch (Throwable t ) {
28
+ // ignore and use fallback
29
+ }
30
+
31
+ // using default / fallback storage
32
+ return new SentryOtelThreadLocalStorage ();
10
33
}
11
34
}
You can’t perform that action at this time.
0 commit comments