docs: public static void free(ByteBuffer buffer) {
          if (SUPPORTED && buffer != null && buffer.isDirect()) {
              try {
                  if (UNSAFE != null) {
                      //use the JDK9 method
                      cleanerClean.invoke(UNSAFE, buffer);
                  } else {
                      Object cleaner = DirectByteBufferDeallocator.cleaner.invoke(buffer);
                      cleanerClean.invoke(cleaner);
                  }
              } catch (Throwable t) {
                  UndertowLogger.ROOT_LOGGER.directBufferDeallocationFailed(t);
              }
          }
      }