-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Closed
Milestone
Description
Jackson version: 2.3.0
The following code snippet
static class A { }
static class B {
@JsonSerialize(contentConverter = AToStringConverter.class)
public List<A> list = Arrays.asList(new A());
}
static class AToStringConverter extends StdConverter<A, List<String>> {
@Override
public List<String> convert(A value) {
return Arrays.asList("Hello world.");
}
}
@Test
void testBSerialization() throws Exception {
new ObjectMapper().writeValueAsString(new B());
}
produces the following endless recursion:
[...]
at com.fasterxml.jackson.databind.ser.std.StdSerializer.findConvertingContentSerializer(StdSerializer.java:252)
at com.fasterxml.jackson.databind.ser.impl.StringCollectionSerializer.createContextual(StringCollectionSerializer.java:91)
at com.fasterxml.jackson.databind.SerializerProvider.handleSecondaryContextualization(SerializerProvider.java:835)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:503)
at com.fasterxml.jackson.databind.ser.std.StdSerializer.findConvertingContentSerializer(StdSerializer.java:252)
at com.fasterxml.jackson.databind.ser.impl.StringCollectionSerializer.createContextual(StringCollectionSerializer.java:91)
at com.fasterxml.jackson.databind.SerializerProvider.handleSecondaryContextualization(SerializerProvider.java:835)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:503)
[...]
It seems that the @JsonSerialize annotation is applied both before and after the conversion.
Metadata
Metadata
Assignees
Labels
No labels