From f3f1af7d6e3377c1f960f72af02151f176e56fa3 Mon Sep 17 00:00:00 2001 From: wusheng Date: Tue, 2 Aug 2016 23:00:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BC=98=E5=85=88=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E7=BC=93=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 { From 171896ca54ce72843eeb016e62a783eea752743f Mon Sep 17 00:00:00 2001 From: wusheng Date: Tue, 2 Aug 2016 23:03:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/interceptor/loader/InterceptorInstanceLoader.java | 4 +--- 1 file changed, 1 insertion(+), 3 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 26e009dcb..90ad0e2d0 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 @@ -50,9 +50,7 @@ public class InterceptorInstanceLoader { } catch (Exception e) { throw new ClassNotFoundException(targetClassLoader.toString() + " load interceptor class:" + className + " failure.", e); } - } finally - - { + } finally { instanceLoadLock.unlock(); }