aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/main/java/com/yahoo/document
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahooinc.com>2023-05-09 15:46:32 +0200
committerBjørn Christian Seime <bjorncs@yahooinc.com>2023-05-09 15:59:59 +0200
commitad7aed9bb7b529cc98acf46763cd869523296fbc (patch)
tree1025fa907e90eefd7587b81f90ad6fbb575dc8c6 /document/src/main/java/com/yahoo/document
parent9904aaf25710c6affca4140c22fa99501eb325fd (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/java/com/yahoo/document')
-rw-r--r--document/src/main/java/com/yahoo/document/json/DocumentUpdateJsonSerializer.java6
-rw-r--r--document/src/main/java/com/yahoo/document/json/JsonFeedReader.java6
-rw-r--r--document/src/main/java/com/yahoo/document/json/JsonWriter.java7
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;