private synchronized static @NotNull MethodHandle getByteBufferCleaner() throws Throwable {
    MethodHandle cleaner = ByteBufferCleaner.cleaner;
    if (cleaner != null) {
      return cleaner;
    }

    Class<?> unsafeClass = ClassLoader.getPlatformClassLoader().loadClass("sun.misc.Unsafe");
    MethodHandles.Lookup lookup = MethodHandles.privateLookupIn(unsafeClass, MethodHandles.lookup());
    Object unsafe = lookup.findStaticGetter(unsafeClass, "theUnsafe", unsafeClass).invoke();
    cleaner = lookup.findVirtual(unsafeClass, "invokeCleaner", MethodType.methodType(Void.TYPE, ByteBuffer.class)).bindTo(unsafe);
    ByteBufferCleaner.cleaner = cleaner;
    return cleaner;
  }
private synchronized static @NotNull MethodHandle getByteBufferCleaner()