Closed
Description
Looks like there is a problem with caching of generic types with self-referential types.
It results in exceptions like:
java.lang.NullPointerException:
at com.fasterxml.jackson.databind.type.ResolvedRecursiveType.equals(ResolvedRecursiveType.java:103)
at com.fasterxml.jackson.databind.type.TypeBindings$AsKey.equals(TypeBindings.java:458)
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:947)
at com.fasterxml.jackson.databind.util.LRUMap.get(LRUMap.java:68)
at com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:1211)
at com.fasterxml.jackson.databind.type.TypeFactory._fromParamType(TypeFactory.java:1384)
at com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1154)
at com.fasterxml.jackson.databind.type.TypeFactory._resolveSuperInterfaces(TypeFactory.java:1298)
at com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:1243)
at com.fasterxml.jackson.databind.type.TypeFactory._fromParamType(TypeFactory.java:1384)
due to partially resolved self-reference. Note that this only happens if generic type is of something with self-referencial type parameter.
There are multiple potential ways to solve this; one would be to try to detect existence of ResolvedRecursiveType
; another to ensure that ResolvedRecursiveType.equals()
can deal with not-yet-referenced state.
Metadata
Metadata
Assignees
Labels
No labels