diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/loader/InterceptorInstanceLoader.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/loader/InterceptorInstanceLoader.java index e1bdb39b07fe7d6c41578b9ceef7b500a124661e..01bab5149e4ff068ead20f975534131029cea619 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/loader/InterceptorInstanceLoader.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/loader/InterceptorInstanceLoader.java @@ -63,16 +63,17 @@ public class InterceptorInstanceLoader { Object inst = INSTANCE_CACHE.get(instanceKey); if (inst == null) { INSTANCE_LOAD_LOCK.lock(); + ClassLoader pluginLoader; try { - ClassLoader pluginLoader = EXTEND_PLUGIN_CLASSLOADERS.get(targetClassLoader); + pluginLoader = EXTEND_PLUGIN_CLASSLOADERS.get(targetClassLoader); if (pluginLoader == null) { pluginLoader = new AgentClassLoader(targetClassLoader); EXTEND_PLUGIN_CLASSLOADERS.put(targetClassLoader, pluginLoader); } - inst = Class.forName(className, true, pluginLoader).newInstance(); } finally { INSTANCE_LOAD_LOCK.unlock(); } + inst = Class.forName(className, true, pluginLoader).newInstance(); if (inst != null) { INSTANCE_CACHE.put(instanceKey, inst); }