You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Laurent Goujon (Jira)" <ji...@apache.org> on 2021/12/22 17:42:00 UTC

[jira] [Created] (ARROW-15192) Allow use of Jackson 2.12 or higher

Laurent Goujon created ARROW-15192:
--------------------------------------

             Summary: Allow use of Jackson 2.12 or higher
                 Key: ARROW-15192
                 URL: https://issues.apache.org/jira/browse/ARROW-15192
             Project: Apache Arrow
          Issue Type: Improvement
          Components: Java
            Reporter: Laurent Goujon


Since Jackson 2.12, serializers/deserializers for java.time.* are not enabled by default and need to be enabled back by adding the jackson jsr310 optional module.

As the ObjectMapper instances used by json classes in the vector module do not include the extra jackson module, this precludes Arrow vector library to be used with Jackson 2.12 or higher.

Here's an example of the error generated by Arrow when used with Jackson 2.12:
{noformat}
java.lang.IllegalStateException: Cannot serialize hash map to JSON string
	at org.apache.arrow.vector.ipc.TestJSONFile.testWriteReadComplexJSON(TestJSONFile.java:125)
Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDateTime` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (through reference chain: org.apache.arrow.vector.util.JsonStringHashMap["timestamp"])
	at org.apache.arrow.vector.ipc.TestJSONFile.testWriteReadComplexJSON(TestJSONFile.java:125)
{noformat}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)