Skip to content

Commit 50953df

Browse files
committed
Remove injected helper classes from OpenTelemetry's generated muzzle map
1 parent ca35c7b commit 50953df

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

dd-java-agent/agent-otel/otel-tooling/src/main/java/datadog/opentelemetry/tooling/OtelInstrumenterModule.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,17 @@ private static String[] namespace(String[] names) {
4040
return namespaced;
4141
}
4242

43+
private volatile String[] helperClassNames;
44+
4345
@Override
4446
public String[] helperClassNames() {
47+
if (null == helperClassNames) {
48+
helperClassNames = buildHelperClassNames();
49+
}
50+
return helperClassNames;
51+
}
52+
53+
private String[] buildHelperClassNames() {
4554
List<String> helperClassNames;
4655
List<String> additionalClassNames = getAdditionalHelperClassNames();
4756
if (additionalClassNames.isEmpty()) {
@@ -93,13 +102,17 @@ public interface VirtualFieldBuilder {
93102
@Override
94103
public ReferenceProvider runtimeMuzzleReferences() {
95104
return new ReferenceProvider() {
96-
private Iterable<Reference> muzzleReferences;
105+
private volatile Iterable<Reference> muzzleReferences;
97106

98107
@Override
99108
@SuppressWarnings({"unchecked", "rawtypes"})
100109
public Iterable<Reference> buildReferences(TypePool ignored) {
101110
if (null == muzzleReferences) {
102-
muzzleReferences = (Iterable) getMuzzleReferences().values();
111+
Map<String, ClassRef> muzzleMap = getMuzzleReferences();
112+
for (String helper : helperClassNames()) {
113+
muzzleMap.remove(helper);
114+
}
115+
muzzleReferences = (Iterable) muzzleMap.values();
103116
}
104117
return muzzleReferences;
105118
}

0 commit comments

Comments
 (0)