This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 4877a22  Fix Java.lang.ClassFormatError: Duplicate interface name 
"org/apache/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance"
 (#6173)
4877a22 is described below

commit 4877a22ab299e01649634aa8a22057d916aba84d
Author: zifeihan <[email protected]>
AuthorDate: Tue Jan 12 07:47:06 2021 +0800

    Fix Java.lang.ClassFormatError: Duplicate interface name 
"org/apache/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance"
 (#6173)
---
 .../interceptor/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 4963c7a..cd7760f 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();
+            }
         }
 
         /**

Reply via email to