You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Affects versions: 2.8.0
Worked with version: 2.7.5
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:940)
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._fromVariable(TypeFactory.java:1409)
at com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1164)
at com.fasterxml.jackson.databind.type.TypeFactory._fromParamType(TypeFactory.java:1380)
at com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1154)
at com.fasterxml.jackson.databind.type.TypeFactory._fromParamType(TypeFactory.java:1380)
at com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1154)
at com.fasterxml.jackson.databind.type.TypeFactory._resolveSuperClass(TypeFactory.java:1285)
at com.fasterxml.jackson.databind.type.TypeFactory._fromClass(TypeFactory.java:1246)
at com.fasterxml.jackson.databind.type.TypeFactory._fromAny(TypeFactory.java:1150)
at com.fasterxml.jackson.databind.type.TypeFactory.constructType(TypeFactory.java:618)
at com.fasterxml.jackson.databind.cfg.MapperConfig.constructType(MapperConfig.java:290)
at com.fasterxml.jackson.databind.cfg.MapperConfig.introspectClassAnnotations(MapperConfig.java:320)
at com.fasterxml.jackson.databind.ser.BasicSerializerFactory.createTypeSerializer(BasicSerializerFactory.java:264)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findPropertyTypeSerializer(BeanSerializerFactory.java:324)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._constructWriter(BeanSerializerFactory.java:817)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanProperties(BeanSerializerFactory.java:611)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanSerializer(BeanSerializerFactory.java:390)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanSerializer(BeanSerializerFactory.java:273)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:225)
at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:159)
at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1272)
at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1222)
at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:499)
at com.fasterxml.jackson.databind.SerializerProvider.findTypedValueSerializer(SerializerProvider.java:697)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:270)
at com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3672)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3048)
at com.fasterxml.jackson.databind.CircularGenericsTest.testWrite(CircularGenericsTest.java:20)
package com.fasterxml.jackson.databind;
import org.junit.Test;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.ObjectMapper;
public class CircularGenericsTest {
@Test
public void testWrite() throws Exception {
final Class<?>[] types = new Class[] { Bean.class, Nested.class };
Bean bean = new Bean();
bean.name = "NAME";
bean.nested = new Nested<>();
bean.nested.bean = bean;
bean.nested.value = "VALUE";
ObjectMapper mapper = new ObjectMapper();
mapper.registerSubtypes(types);
System.out.println(mapper.writeValueAsString(bean));
}
public static abstract class AbstractBean<B extends AbstractBean<B, N>, N extends AbstractNested<B, N>> {
public N nested;
}
public static abstract class AbstractNested<B extends AbstractBean<B, N>, N extends AbstractNested<B, N>> {
@JsonIgnore
public B bean;
}
public static class Nested<B extends AbstractBean<B, Nested<B>>> extends AbstractNested<B, Nested<B>> {
public String value;
}
public static class Bean extends AbstractBean<Bean, Nested<Bean>> {
public String name;
}
}
The text was updated successfully, but these errors were encountered:
Thank you for reporting this. I think it is very likely same as #1302 for which fix is in master, and will be resolved in 2.8.1. If you can try 2.8.1-SNASPHOT (either via Sonatype snapshots, or locally built) it should be easy to see if it works.
Affects versions: 2.8.0
Worked with version: 2.7.5
The text was updated successfully, but these errors were encountered: