From 4877a22ab299e01649634aa8a22057d916aba84d Mon Sep 17 00:00:00 2001 From: zifeihan Date: Tue, 12 Jan 2021 07:47:06 +0800 Subject: [PATCH] Fix Java.lang.ClassFormatError: Duplicate interface name "org/apache/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance" (#6173) --- .../enhance/ClassEnhancePluginDefine.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java index 4963c7a2fd..cd7760fd95 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/plugin/interceptor/enhance/ClassEnhancePluginDefine.java @@ -115,11 +115,14 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi * And make sure the source codes manipulation only occurs once. * */ - if (!context.isObjectExtended()) { - newClassBuilder = newClassBuilder.defineField(CONTEXT_ATTR_NAME, Object.class, ACC_PRIVATE | ACC_VOLATILE) - .implement(EnhancedInstance.class) - .intercept(FieldAccessor.ofField(CONTEXT_ATTR_NAME)); - context.extendObjectCompleted(); + if (!typeDescription.isAssignableTo(EnhancedInstance.class)) { + if (!context.isObjectExtended()) { + newClassBuilder = newClassBuilder.defineField( + CONTEXT_ATTR_NAME, Object.class, ACC_PRIVATE | ACC_VOLATILE) + .implement(EnhancedInstance.class) + .intercept(FieldAccessor.ofField(CONTEXT_ATTR_NAME)); + context.extendObjectCompleted(); + } } /** -- GitLab