Has anyone had any experience with trying to get classes that extend java.lang.Exception to work with Kryo?
I'm registering the classes using the plain register( ) method, e.g.
kryo.register(MyClassThatExtendsException.class);
I'm also doing the following:
kryo.setReferences(false);
... which results in a StackOverFlowError during the serializing/writing stage:
java.lang.StackOverflowError
at java.lang.reflect.Field.doSecurityCheck(Field.java:947)
at java.lang.reflect.Field.getFieldAccessor(Field.java:896)
at java.lang.reflect.Field.get(Field.java:358)
at com.esotericsoftware.kryo.serializers.FieldSerializer$CachedField.get(FieldSerializer.java:302)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:156)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:488)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:167)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:488)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:167)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:488)
at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:167)
at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:488)
...
(this alternating goes on indefinitely, well until it has caused a stack overflow anyway).
Also, I've tried doing setReferences(true) and that seems to just result in it hanging (but no StackOverflowError thrown). I need to properly debug and trace this to figure out what is causing a probable infinite loop somewhere, I was just wondering if anyone else had had this before and if there was a simple solution?