code: private void ensureBufferAvailable(TableBlock block) throws IOException {
          if (!block.hasBuffer()) {
              synchronized (this) {
                  if (!block.hasBuffer()) {
                      ByteBuffer buffer = getBuffer();
                      block.setBuffer(buffer);
                  }
              }
          }
      }
docs: Checks whether the given block has a buffer assigned to it.  If not, it synchronously gets an available buffer
  and assigns it to the block.