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();
+ }
}
/**