Santosh
Santosh

Reputation: 852

KryoException Unable to find class Serialization trace

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

Answers (0)

Related Questions