From 38470bd2e64bd59266020d4aca5dfb60f0d027c1 Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Mon, 30 Aug 2021 21:29:37 +0300 Subject: [PATCH] Use unsafe to inject classes to boot loader (#4026) --- .../io/opentelemetry/javaagent/tooling/HelperInjector.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/HelperInjector.java b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/HelperInjector.java index 60f8dcde769f..8e31763c42a3 100644 --- a/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/HelperInjector.java +++ b/muzzle/src/main/java/io/opentelemetry/javaagent/tooling/HelperInjector.java @@ -222,6 +222,10 @@ private ClassLoader injectHelperClasses( private Map> injectBootstrapClassLoader(Map classnameToBytes) throws IOException { + if (ClassInjector.UsingUnsafe.isAvailable()) { + return ClassInjector.UsingUnsafe.ofBootLoader().injectRaw(classnameToBytes); + } + // Mar 2020: Since we're proactively cleaning up tempDirs, we cannot share dirs per thread. // If this proves expensive, we could do a per-process tempDir with // a reference count -- but for now, starting simple.