@Override
 public WriteFileBuffer afterWrite() {
   this.isBufferFilling = false;
   super.afterWrite();
   // LOG.info("After write file buffer after write: {}", this);
   return this;
 }
 @Override
 public ByteBuffer getByteBufferToFlush() {
   // Must ensure read visibility before checking the flag that dictates whether or not the
   // buffer has had all content loaded into it and is ready to flip for reading.
   // LOG.info("Before read file buffer: {}", this);
   super.beforeRead();
   assert (!isBufferFilling);
   this.fileWriteOffset = this.nextWriteFileOffset.get();
   return (ByteBuffer) writeBuffer.flip();
 }