-
Notifications
You must be signed in to change notification settings - Fork 83
Open
Labels
3.xafterburnerneed-test-caseTo work on issue, a reproduction (ideally unit test) neededTo work on issue, a reproduction (ideally unit test) needed
Description
result :
Jackson version: 3.0.1 fail
interface A:
public interface A<T> {
T getBody();
}
implements
public class MD implements A<String> {
private String body;
/**
* @return
*/
@Override
public String getBody() {
return body;
}
}
convert toJSON:
public static void main(String[] args) {
MD md = new MD();
ObjectMapper objectMapper =
JsonMapper.builder()
.addModule(new AfterburnerModule())
.build();
String json = objectMapper.writeValueAsString(md);
System.out.println(json);
}
Exception :
Exception in thread "main" java.lang.IllegalStateException: Multiple definitions of method getBody found
at tools.jackson.module.afterburner.ser.PropertyAccessorCollector$SingleMethodStackManipulation.invocationOperation(PropertyAccessorCollector.java:338)
at tools.jackson.module.afterburner.ser.PropertyAccessorCollector$AbstractSinglePropStackManipulation.apply(PropertyAccessorCollector.java:247)
at net.bytebuddy.implementation.bytecode.StackManipulation$Compound.apply(StackManipulation.java:243)
at tools.jackson.module.afterburner.util.bytebuddy.AbstractDelegatingAppender.apply(AbstractDelegatingAppender.java:56)
at net.bytebuddy.implementation.bytecode.ByteCodeAppender$Compound.apply(ByteCodeAppender.java:158)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyCode(TypeWriter.java:732)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod$WithBody.applyBody(TypeWriter.java:717)
at net.bytebuddy.dynamic.scaffold.TypeWriter$MethodPool$Record$ForDefinedMethod.apply(TypeWriter.java:624)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default$ForCreation.create(TypeWriter.java:6134)
at net.bytebuddy.dynamic.scaffold.TypeWriter$Default.make(TypeWriter.java:2246)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$UsingTypeWriter.make(DynamicType.java:4085)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase.make(DynamicType.java:3769)
at net.bytebuddy.dynamic.DynamicType$Builder$AbstractBase$Delegator.make(DynamicType.java:4021)
at tools.jackson.module.afterburner.ser.PropertyAccessorCollector.generateAccessorClass(PropertyAccessorCollector.java:165)
at tools.jackson.module.afterburner.ser.PropertyAccessorCollector.findAccessor(PropertyAccessorCollector.java:113)
at tools.jackson.module.afterburner.ser.ABSerializerModifier.changeProperties(ABSerializerModifier.java:64)
at tools.jackson.databind.ser.BeanSerializerFactory.constructBeanOrAddOnSerializer(BeanSerializerFactory.java:338)
at tools.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:249)
at tools.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:182)
at tools.jackson.databind.SerializationContext._createAndCacheUntypedSerializer(SerializationContext.java:968)
at tools.jackson.databind.SerializationContext.findValueSerializer(SerializationContext.java:774)
at tools.jackson.databind.SerializationContext.findTypedValueSerializer(SerializationContext.java:586)
at tools.jackson.databind.ser.SerializationContextExt.serializeValue(SerializationContextExt.java:297)
at tools.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:1879)
at tools.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:1823)
at JsonTest.main(JsonTest.java:45)
Metadata
Metadata
Assignees
Labels
3.xafterburnerneed-test-caseTo work on issue, a reproduction (ideally unit test) neededTo work on issue, a reproduction (ideally unit test) needed