@Override
  public void close() {
    ByteBuffer buffer = this.buffer;
    if (buffer == null) {
      // already closed
      return;
    }

    this.buffer = null;
    if (isPooled) {
      DirectByteBufferPool.DEFAULT_POOL.release(buffer);
    }
  }
@Override
  public void close()