Skip to content

Commit 5626e25

Browse files
authored
Ignore classes in java.lang.invoke in early instrumentations (#13602)
1 parent 7e5d4cc commit 5626e25

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
import java.util.HashMap;
5757
import java.util.List;
5858
import java.util.Map;
59-
import java.util.Objects;
6059
import java.util.logging.LogManager;
6160
import java.util.logging.Logger;
6261
import java.util.stream.Stream;
@@ -227,8 +226,11 @@ private static void installEarlyInstrumentation(
227226
AgentBuilder.Identified.Extendable extendableAgentBuilder =
228227
agentBuilder
229228
.ignore(
230-
target -> instrumentationInstalled, // turn off after instrumentation is installed
231-
Objects::nonNull)
229+
target ->
230+
// turn off after instrumentation is installed, exclude classes in
231+
// java.lang.invoke to avoid circularity when bootstrapping indy instrumentation
232+
instrumentationInstalled
233+
|| target.getTypeName().startsWith("java.lang.invoke."))
232234
.type(none())
233235
.transform(
234236
(builder, typeDescription, classLoader, module, protectionDomain) -> builder);

0 commit comments

Comments
 (0)