File tree Expand file tree Collapse file tree 2 files changed +35
-0
lines changed
dd-java-agent/agent-otel/otel-bootstrap
src/main/java/datadog/trace/bootstrap/otel/context Expand file tree Collapse file tree 2 files changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -56,6 +56,7 @@ tasks.named('compileJava') {
5656shadowJar {
5757 dependencies deps. excludeShared
5858
59+ exclude ' io/opentelemetry/context/StrictContextStorage*'
5960 exclude ' io/opentelemetry/context/internal/shaded/**'
6061
6162 relocate ' io.opentelemetry' , ' datadog.trace.bootstrap.otel'
Original file line number Diff line number Diff line change 1+ package datadog .trace .bootstrap .otel .context ;
2+
3+ import io .opentelemetry .context .Context ;
4+ import io .opentelemetry .context .ContextStorage ;
5+ import io .opentelemetry .context .Scope ;
6+
7+ /**
8+ * Replaces original class with a simple wrapper to avoid missing reference issue on native-image.
9+ *
10+ * <p>The original class is only used for testing purposes when a particular property is set, but
11+ * native-image follows the reference in {@code LazyStorage} and attempts to load everything it
12+ * touches, including some types we are not embedding. This simple replacement fixes this issue.
13+ */
14+ final class StrictContextStorage implements ContextStorage {
15+ private final ContextStorage delegate ;
16+
17+ static StrictContextStorage create (ContextStorage delegate ) {
18+ return new StrictContextStorage (delegate );
19+ }
20+
21+ public StrictContextStorage (ContextStorage delegate ) {
22+ this .delegate = delegate ;
23+ }
24+
25+ @ Override
26+ public Scope attach (Context context ) {
27+ return delegate .attach (context );
28+ }
29+
30+ @ Override
31+ public Context current () {
32+ return delegate .current ();
33+ }
34+ }
You can’t perform that action at this time.
0 commit comments