Reputation: 852
I am using Kryo 5.2.0 and occasionally getting below exception. However, when I restart the tomcat then issue not happening, after some time it again throw this exception.
com.esotericsoftware.kryo.KryoException: Unable to find class: Ethiopian Airlines
Serialization trace:
hmAdminAirInfo (com.biz.shared.airlines.AirlineInfoBean)
at com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:182)
at com.esotericsoftware.kryo.util.DefaultClassResolver.readClass(DefaultClassResolver.java:151)
at com.esotericsoftware.kryo.Kryo.readClass(Kryo.java:758)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:869)
at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:226)
at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:42)
at com.esotericsoftware.kryo.Kryo.readObject(Kryo.java:796)
at com.esotericsoftware.kryo.serializers.ReflectField.read(ReflectField.java:123)
at com.esotericsoftware.kryo.serializers.FieldSerializer.read(FieldSerializer.java:129)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:877)
at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:235)
at com.esotericsoftware.kryo.serializers.MapSerializer.read(MapSerializer.java:42)
at com.esotericsoftware.kryo.Kryo.readClassAndObject(Kryo.java:877)
at com.tech.cacheengine.kryo.KryoUtil.deserialize(KryoUtil.java:104)
Caused by: java.lang.ClassNotFoundException: Ethiopian Airlines
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at com.esotericsoftware.kryo.util.DefaultClassResolver.readName(DefaultClassResolver.java:176)
... 26 more
Kryo pool
private static final Pool<Kryo> kryoPool = new Pool<Kryo>(KRYO_INSTANCE_THREAD_SAFE, true, KRYO_POOL_MAXIMUM_CAPACITY) {
protected Kryo create() {
final Kryo kryo = new Kryo();
// kryo.setClassLoader(classLoader);
kryo.setRegistrationRequired(false);
// kryo.setWarnUnregisteredClasses(true);
kryo.setInstantiatorStrategy(new DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));
try {
kryo.register(Class.forName("java.util.Collections$SynchronizedMap"), new SynchronizedCollectionsSerializer());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
SynchronizedCollectionsSerializer.registerSerializers(kryo);
return kryo;
}
};
Upvotes: 1
Views: 2110