From f3f1af7d6e3377c1f960f72af02151f176e56fa3 Mon Sep 17 00:00:00 2001 From: wusheng Date: Tue, 2 Aug 2016 23:00:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=85=88=E5=88=A4=E6=96=AD=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E5=AE=B9=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interceptor/loader/InterceptorInstanceLoader.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/loader/InterceptorInstanceLoader.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/loader/InterceptorInstanceLoader.java index 0996f3002..26e009dcb 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/loader/InterceptorInstanceLoader.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/loader/InterceptorInstanceLoader.java @@ -25,15 +25,16 @@ public class InterceptorInstanceLoader { public static T load(String className, ClassLoader targetClassLoader) throws InvocationTargetException, IllegalAccessException, InstantiationException, ClassNotFoundException { - if (InterceptorInstanceLoader.class.getClassLoader().equals(targetClassLoader)) { - return (T) targetClassLoader.loadClass(className).newInstance(); - } - String instanceKey = className + "_OF_" + targetClassLoader.getClass().getName() + "@" + Integer.toHexString(targetClassLoader.hashCode()); Object inst = INSTANCE_CACHE.get(instanceKey); if (inst != null) { return (T) inst; } + + if (InterceptorInstanceLoader.class.getClassLoader().equals(targetClassLoader)) { + return (T) targetClassLoader.loadClass(className).newInstance(); + } + instanceLoadLock.lock(); try { try {