diff options
author | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2023-05-09 15:46:32 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2023-05-09 15:59:59 +0200 |
commit | ad7aed9bb7b529cc98acf46763cd869523296fbc (patch) | |
tree | 1025fa907e90eefd7587b81f90ad6fbb575dc8c6 /document/src/main | |
parent | 9904aaf25710c6affca4140c22fa99501eb325fd (diff) |
Disable string length restriction introduced in Jackson 2.15
Disable restriction only for parsers/generators which is likely to handle literals exceeding 5M
Diffstat (limited to 'document/src/main')
3 files changed, 16 insertions, 3 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java b/document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java index 8b44910e75c..30d4176250c 100644 --- a/document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java +++ b/document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java @@ -2,7 +2,9 @@ package com.yahoo.document.json; import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonFactoryBuilder; import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.StreamReadConstraints; import com.yahoo.document.DataType; import com.yahoo.document.Document; import com.yahoo.document.DocumentUpdate; @@ -67,7 +69,9 @@ import static com.yahoo.document.json.JsonSerializationHelper.*; */ public class DocumentUpdateJsonSerializer { - private final JsonFactory jsonFactory = new JsonFactory(); + private static final JsonFactory jsonFactory = new JsonFactoryBuilder() + .streamReadConstraints(StreamReadConstraints.builder().maxStringLength(Integer.MAX_VALUE).build()) + .build(); private final JsonDocumentUpdateWriter writer = new JsonDocumentUpdateWriter(); private JsonGenerator generator; diff --git a/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java b/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java index 6a75e35ebe5..740fc612524 100644 --- a/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java +++ b/document/src/main/java/com/yahoo/document/json/JsonFeedReader.java @@ -3,6 +3,7 @@ package com.yahoo.document.json; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonFactoryBuilder; +import com.fasterxml.jackson.core.StreamReadConstraints; import com.yahoo.document.DocumentOperation; import com.yahoo.document.DocumentPut; import com.yahoo.document.DocumentRemove; @@ -28,7 +29,10 @@ public class JsonFeedReader implements FeedReader { private final JsonReader reader; private final InputStream stream; - private static final JsonFactory jsonFactory = new JsonFactoryBuilder().disable(JsonFactory.Feature.CANONICALIZE_FIELD_NAMES).build(); + private static final JsonFactory jsonFactory = new JsonFactoryBuilder() + .disable(JsonFactory.Feature.CANONICALIZE_FIELD_NAMES) + .streamReadConstraints(StreamReadConstraints.builder().maxStringLength(Integer.MAX_VALUE).build()) + .build(); public JsonFeedReader(InputStream stream, DocumentTypeManager docMan) { reader = new JsonReader(docMan, stream, jsonFactory); diff --git a/document/src/main/java/com/yahoo/document/json/JsonWriter.java b/document/src/main/java/com/yahoo/document/json/JsonWriter.java index 33243ab832c..29d44dad761 100644 --- a/document/src/main/java/com/yahoo/document/json/JsonWriter.java +++ b/document/src/main/java/com/yahoo/document/json/JsonWriter.java @@ -2,7 +2,9 @@ package com.yahoo.document.json; import com.fasterxml.jackson.core.JsonFactory; +import com.fasterxml.jackson.core.JsonFactoryBuilder; import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.StreamReadConstraints; import com.yahoo.document.Document; import com.yahoo.document.DocumentId; import com.yahoo.document.DocumentType; @@ -74,7 +76,10 @@ import static com.yahoo.document.json.document.DocumentParser.REMOVE; */ public class JsonWriter implements DocumentWriter { - private static final JsonFactory jsonFactory = new JsonFactory(); + private static final JsonFactory jsonFactory = new JsonFactoryBuilder() + .streamReadConstraints(StreamReadConstraints.builder().maxStringLength(Integer.MAX_VALUE).build()) + .build(); + private final JsonGenerator generator; private final boolean tensorShortForm; |