ObjectMapper with "jackson-module-afterburner": java.lang.IllegalStateException: Multiple definitions of method getBody found (original) (raw)

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)