diff --git a/openapi-codegen-runtime/src/main/java/org/davidmoten/oa3/codegen/runtime/Config.java b/openapi-codegen-runtime/src/main/java/org/davidmoten/oa3/codegen/runtime/Config.java index 94d5cb63..8a3ed537 100644 --- a/openapi-codegen-runtime/src/main/java/org/davidmoten/oa3/codegen/runtime/Config.java +++ b/openapi-codegen-runtime/src/main/java/org/davidmoten/oa3/codegen/runtime/Config.java @@ -4,6 +4,7 @@ import org.openapitools.jackson.nullable.JsonNullableModule; +import com.fasterxml.jackson.core.StreamReadConstraints; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; @@ -31,14 +32,23 @@ public static Builder builder() { public static final class Builder { - private ObjectMapper mapper = JsonMapper // - .builder() // - .disable(MapperFeature.ALLOW_COERCION_OF_SCALARS) // - .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) // - .build() // - .registerModule(new JavaTimeModule()) // - .registerModule(new Jdk8Module()) // - .registerModule(new JsonNullableModule()); + private ObjectMapper mapper = createObjectMapper(); + + private static ObjectMapper createObjectMapper() { + ObjectMapper mapper = JsonMapper // + .builder() // + .disable(MapperFeature.ALLOW_COERCION_OF_SCALARS) // + .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) // + .build() // + .registerModule(new JavaTimeModule()) // + .registerModule(new Jdk8Module()) // + .registerModule(new JsonNullableModule()); + // in Jackson 2.15 a 5MB limit on streams was introduced. Configure this off + StreamReadConstraints streamReadConstraints = StreamReadConstraints.builder() + .maxStringLength(Integer.MAX_VALUE).build(); + mapper.getFactory().setStreamReadConstraints(streamReadConstraints); + return mapper; + } private Predicate> validateInConstructor = x -> true; private Predicate validateInControllerMethod = x -> true;