Closed vpeurala closed 2 years ago
This test code causes the deserialization failure:
val mapperWithSettings =
ObjectMapper()
.registerArrowModule()
val original = nonEmptyListOf("foo", "bar")
val serialized: String = mapperWithSettings.writeValueAsString(original)
// This line throws a NullPointerException
val deserialized: NonEmptyList<*> = mapperWithSettings.readValue(serialized, NonEmptyList::class.java)
Stack trace:
java.lang.NullPointerException: type.bindings.getBoundType(0) must not be null
at arrow.integrations.jackson.module.NonEmptyListDeserializerResolver.findCollectionDeserializer(NonEmptyListModule.kt:60)
at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._findCustomCollectionDeserializer(BasicDeserializerFactory.java:2205)
at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.createCollectionDeserializer(BasicDeserializerFactory.java:1370)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:403)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:350)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)
at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:642)
at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:4805)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4675)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)
thanks @vpeurala that's a good find 🙌
See the failing minimal test case in Pull Request #77 (https://github.com/arrow-kt/arrow-integrations/pull/77).