in statefun-flink/statefun-flink-core/src/main/java/org/apache/flink/statefun/flink/core/message/MessagePayloadSerializerKryo.java [61:83]
public Object copy(@Nonnull ClassLoader targetClassLoader, @Nonnull Object what) {
target.clear();
try {
kryo.serialize(what, target);
source.setBuffer(target.getSharedBuffer(), 0, target.length());
final ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(targetClassLoader);
try {
final ClassLoader originalKryoCl = kryo.getKryo().getClassLoader();
kryo.getKryo().setClassLoader(targetClassLoader);
try {
return kryo.deserialize(source);
} finally {
kryo.getKryo().setClassLoader(originalKryoCl);
}
} finally {
Thread.currentThread().setContextClassLoader(currentClassLoader);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}