code: @SuppressWarnings("unchecked")
      public static <T> T fromByteArrayFst(final byte[] data, final Class<T> clazz,
              final ClassLoader classLoader) {
          if (data == null) {
              return null;
          }
          ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
          if (classLoader != null) {
              Thread.currentThread().setContextClassLoader(classLoader);
          }
          try {
              FSTConfiguration conf = fstConf.get();
              conf.setClassLoader(classLoader != null ? classLoader : oldClassLoader);
              Object result = conf.asObject(data);
              if (result != null && clazz.isAssignableFrom(result.getClass())) {
                  return (T) result;
              } else {
                  return null;
              }
          } catch (Exception e) {
              throw e instanceof DeserializationException ? (DeserializationException) e
                      : new DeserializationException(e);
          } finally {
              Thread.currentThread().setContextClassLoader(oldClassLoader);
          }
      }
docs: Deserialize a byte array back to an object, with custom class loader.
  
  <p>
  This method uses FST lib.
  </p>
  
  @param data
  @param clazz
  @param classLoader
  @return
  @since 0.6.0