Description
As discussed on the dev list,
In KryoSerializer.java
Kryo Reference tracking is disabled by default:
kryo.setReferences(false);
This can causes StackOverflowError Exceptions when serializing many objects that may contain recursive objects:
java.lang.StackOverflowError at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:48) at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495) at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523) at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61) at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495) at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523) at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61) at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495) at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:523) at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:61) at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:495)
By enabling reference tracking, we can fix this problem.
[1]https://gist.github.com/andrewpalumbo/40c7422a5187a24cd03d7d81feb2a419