Skip to content

Commit a2736d7

Browse files
authored
Preload ThreadLocalRandom to avoid java.lang.ClassCircularityError: java/util/concurrent/ThreadLocalRandom (#14030)
1 parent 74bc1be commit a2736d7

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import java.util.List;
5858
import java.util.Map;
5959
import java.util.Objects;
60+
import java.util.concurrent.ThreadLocalRandom;
6061
import java.util.logging.LogManager;
6162
import java.util.logging.Logger;
6263
import java.util.stream.Stream;
@@ -123,6 +124,11 @@ private static void installBytebuddyAgent(
123124
EmbeddedInstrumentationProperties.setPropertiesLoader(extensionClassLoader);
124125
setDefineClassHandler();
125126
FieldBackedImplementationConfiguration.configure(earlyConfig);
127+
// preload ThreadLocalRandom to avoid occasional
128+
// java.lang.ClassCircularityError: java/util/concurrent/ThreadLocalRandom
129+
// see https://github.com/raphw/byte-buddy/issues/1666 and
130+
// https://bugs.openjdk.org/browse/JDK-8164165
131+
ThreadLocalRandom.current();
126132

127133
AgentBuilder agentBuilder =
128134
new AgentBuilder.Default(

0 commit comments

Comments
 (0)