diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInter.java b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInter.java index 2d51ba93f..be8c9c0eb 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInter.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/skywalking/apm/agent/core/plugin/interceptor/enhance/InstMethodsInter.java @@ -39,8 +39,6 @@ public class InstMethodsInter { * @param obj target class instance. * @param allArguments all method arguments * @param method method description. - * @param dynamicFieldGetter a proxy to set the dynamic field - * @param dynamicFieldSetter a proxy to get the dynamic field * @param zuper the origin call ref. * @return the return value of target instance method. * @throws Exception only throw exception because of zuper.call() or unexpected exception in sky-walking ( This is a @@ -50,18 +48,15 @@ public class InstMethodsInter { public Object intercept(@This Object obj, @AllArguments Object[] allArguments, @SuperCall Callable zuper, - @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldSetter dynamicFieldSetter, - @FieldProxy(ClassEnhancePluginDefine.CONTEXT_ATTR_NAME) FieldGetter dynamicFieldGetter, @Origin Method method ) throws Throwable { InstanceMethodsAroundInterceptor interceptor = InterceptorInstanceLoader .load(instanceMethodsAroundInterceptorClassName, obj.getClass().getClassLoader()); + EnhancedInstance targetObject = (EnhancedInstance)obj; MethodInterceptResult result = new MethodInterceptResult(); try { - interceptor.beforeMethod(obj, method.getName(), allArguments, method.getParameterTypes(), - dynamicFieldSetter, - dynamicFieldGetter, + interceptor.beforeMethod(targetObject, method.getName(), allArguments, method.getParameterTypes(), result); } catch (Throwable t) { logger.error(t, "class[{}] before method[{}] intercept failure", obj.getClass(), method.getName()); @@ -76,9 +71,7 @@ public class InstMethodsInter { } } catch (Throwable t) { try { - interceptor.handleMethodException(obj, method.getName(), allArguments, method.getParameterTypes(), - dynamicFieldSetter, - dynamicFieldGetter, + interceptor.handleMethodException(targetObject, method.getName(), allArguments, method.getParameterTypes(), t); } catch (Throwable t2) { logger.error(t2, "class[{}] handle method[{}] exception failure", obj.getClass(), method.getName()); @@ -86,9 +79,7 @@ public class InstMethodsInter { throw t; } finally { try { - ret = interceptor.afterMethod(obj, method.getName(), allArguments, method.getParameterTypes(), - dynamicFieldSetter, - dynamicFieldGetter, + ret = interceptor.afterMethod(targetObject, method.getName(), allArguments, method.getParameterTypes(), ret); } catch (Throwable t) { logger.error(t, "class[{}] after method[{}] intercept failure", obj.getClass(), method.getName());