parent
35727bcffe
commit
be6816489a
|
@ -24,7 +24,7 @@ public final class AgentInitializer {
|
|||
|
||||
// Accessed via reflection from tests.
|
||||
// fields must be managed under class lock
|
||||
@Nullable private static ClassLoader agentClassloader = null;
|
||||
@Nullable private static ClassLoader agentClassLoader = null;
|
||||
|
||||
// called via reflection in the OpenTelemetryAgent class
|
||||
public static void initialize(Instrumentation inst, URL bootstrapUrl) throws Exception {
|
||||
|
@ -33,9 +33,8 @@ public final class AgentInitializer {
|
|||
|
||||
private static synchronized void startAgent(Instrumentation inst, URL bootstrapUrl)
|
||||
throws Exception {
|
||||
if (agentClassloader == null) {
|
||||
ClassLoader agentClassLoader = createAgentClassLoader("inst", bootstrapUrl);
|
||||
agentClassloader = agentClassLoader;
|
||||
if (agentClassLoader == null) {
|
||||
agentClassLoader = createAgentClassLoader("inst", bootstrapUrl);
|
||||
|
||||
Class<?> agentInstallerClass =
|
||||
agentClassLoader.loadClass("io.opentelemetry.javaagent.tooling.AgentInstaller");
|
||||
|
@ -52,8 +51,8 @@ public final class AgentInitializer {
|
|||
}
|
||||
|
||||
// TODO misleading name
|
||||
public static synchronized ClassLoader getAgentClassloader() {
|
||||
return agentClassloader;
|
||||
public static synchronized ClassLoader getAgentClassLoader() {
|
||||
return agentClassLoader;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -24,7 +24,7 @@ public class Utils {
|
|||
}
|
||||
|
||||
public static ClassLoader getExtensionsClassLoader() {
|
||||
return AgentInitializer.getAgentClassloader();
|
||||
return AgentInitializer.getAgentClassLoader();
|
||||
}
|
||||
|
||||
/** Return a classloader which can be used to look up bootstrap resources. */
|
||||
|
|
|
@ -37,7 +37,7 @@ public class IntegrationTestUtils {
|
|||
|
||||
/** Returns the classloader the core agent is running on. */
|
||||
public static ClassLoader getAgentClassLoader() {
|
||||
return getAgentFieldClassloader("agentClassloader");
|
||||
return getAgentFieldClassloader("agentClassLoader");
|
||||
}
|
||||
|
||||
private static ClassLoader getAgentFieldClassloader(String fieldName) {
|
||||
|
|
|
@ -16,9 +16,9 @@ public final class AgentClassLoaderAccess {
|
|||
Class<?> agentInitializerClass =
|
||||
ClassLoader.getSystemClassLoader()
|
||||
.loadClass("io.opentelemetry.javaagent.bootstrap.AgentInitializer");
|
||||
Field agentClassloader = agentInitializerClass.getDeclaredField("agentClassloader");
|
||||
agentClassloader.setAccessible(true);
|
||||
agentClassLoader = (ClassLoader) agentClassloader.get(null);
|
||||
Field agentClassLoaderField = agentInitializerClass.getDeclaredField("agentClassLoader");
|
||||
agentClassLoaderField.setAccessible(true);
|
||||
agentClassLoader = (ClassLoader) agentClassLoaderField.get(null);
|
||||
} catch (Throwable t) {
|
||||
throw new AssertionError("Could not access agent classLoader", t);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue