diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefine.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefine.java index c9e2bfcdf..008d49e8b 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefine.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/AbstractClassEnhancePluginDefine.java @@ -52,7 +52,7 @@ public abstract class AbstractClassEnhancePluginDefine { /** * find origin class source code for interceptor */ - DynamicType.Builder newClassBuilder = this.enhance(transformClassName, builder); + DynamicType.Builder newClassBuilder = this.enhance(transformClassName, builder, classLoader); logger.debug("enhance class {} by {} completely.", transformClassName, interceptorDefineClassName); @@ -60,7 +60,7 @@ public abstract class AbstractClassEnhancePluginDefine { } protected abstract DynamicType.Builder enhance(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException; + DynamicType.Builder newClassBuilder, ClassLoader classLoader) throws PluginException; /** * Define the classname of target class. diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java index 3b30ae8dc..cf1f67c20 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java @@ -49,10 +49,10 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi */ @Override protected DynamicType.Builder enhance(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { - newClassBuilder = this.enhanceClass(enhanceOriginClassName, newClassBuilder); + DynamicType.Builder newClassBuilder, ClassLoader classLoader) throws PluginException { + newClassBuilder = this.enhanceClass(enhanceOriginClassName, newClassBuilder, classLoader); - newClassBuilder = this.enhanceInstance(enhanceOriginClassName, newClassBuilder); + newClassBuilder = this.enhanceInstance(enhanceOriginClassName, newClassBuilder, classLoader); return newClassBuilder; } @@ -65,7 +65,7 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * @return new byte-buddy's builder for further manipulation. */ private DynamicType.Builder enhanceInstance(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { + DynamicType.Builder newClassBuilder, ClassLoader classLoader) throws PluginException { ConstructorInterceptPoint[] constructorInterceptPoints = getConstructorsInterceptPoints(); InstanceMethodsInterceptPoint[] instanceMethodsInterceptPoints = getInstanceMethodsInterceptPoints(); @@ -173,7 +173,7 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * @return new byte-buddy's builder for further manipulation. */ private DynamicType.Builder enhanceClass(String enhanceOriginClassName, - DynamicType.Builder newClassBuilder) throws PluginException { + DynamicType.Builder newClassBuilder, ClassLoader classLoader) throws PluginException { StaticMethodsInterceptPoint[] staticMethodsInterceptPoints = getStaticMethodsInterceptPoints(); if (staticMethodsInterceptPoints == null || staticMethodsInterceptPoints.length == 0) {