Lombok 1.18.0 y Jackson 2.9.6 no funcionan juntos

La deserialización falla después de la actualización.

Actualicé mi microservicio desdeSpring 1.5.10.RELEASE aSpring 2.0.3.RELEASE y también actualizó ellombok desde1.16.14 a1.18.0 yjackson-datatype-jsr310 desde2.9.4 a2.9.6.

La cadena JSON -

{"heading":"Validation failed","detail":"field must not be null"}

La clase

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ErrorDetail {

   private final String heading;
   private final String detail;
   private String type;
}

lamada de método -

ErrorDetail errorDetail = asObject(jsonString, ErrorDetail.class);

El método utilizado para deserializar -

import com.fasterxml.jackson.databind.ObjectMapper;
// more imports and class defination.

private static <T> T asObject(final String str, Class<T> clazz) {
    try {
        return new ObjectMapper().readValue(str, clazz);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

Error -

java.lang.RuntimeException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.foo.bar.ErrorDetail` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
at [Source: (String)"{"heading":"Validation failed","detail":"field must not be null"}"; line: 1, column: 2]

Respuestas a la pregunta(3)

Su respuesta a la pregunta