未验证 提交 4877a22a 编写于 作者: Z zifeihan 提交者: GitHub

Fix Java.lang.ClassFormatError: Duplicate interface name...

Fix Java.lang.ClassFormatError: Duplicate interface name "org/apache/skywalking/apm/agent/core/plugin/interceptor/enhance/EnhancedInstance" (#6173)
上级 3e4d5508
...@@ -115,11 +115,14 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi ...@@ -115,11 +115,14 @@ public abstract class ClassEnhancePluginDefine extends AbstractClassEnhancePlugi
* And make sure the source codes manipulation only occurs once. * And make sure the source codes manipulation only occurs once.
* *
*/ */
if (!context.isObjectExtended()) { if (!typeDescription.isAssignableTo(EnhancedInstance.class)) {
newClassBuilder = newClassBuilder.defineField(CONTEXT_ATTR_NAME, Object.class, ACC_PRIVATE | ACC_VOLATILE) if (!context.isObjectExtended()) {
.implement(EnhancedInstance.class) newClassBuilder = newClassBuilder.defineField(
.intercept(FieldAccessor.ofField(CONTEXT_ATTR_NAME)); CONTEXT_ATTR_NAME, Object.class, ACC_PRIVATE | ACC_VOLATILE)
context.extendObjectCompleted(); .implement(EnhancedInstance.class)
.intercept(FieldAccessor.ofField(CONTEXT_ATTR_NAME));
context.extendObjectCompleted();
}
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册