public Object copy()

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);
    }
  }