code: protected void flushInternal(Ingester ingester, boolean force)
              throws IOException
      {
          moveRetentionBuffersToFlushable(force);
  
          TaggableBuffer flushableBuffer;
          while (!Thread.currentThread().isInterrupted() &&
                  (flushableBuffer = flushableBuffers.poll()) != null) {
              boolean keepBuffer = false;
              try {
                  LOG.trace("flushInternal(): bufferUsage={}, flushableBuffer={}", getBufferUsage(), flushableBuffer);
                  String tag = flushableBuffer.getTag();
                  ByteBuffer dataBuffer = flushableBuffer.getByteBuffer();
                  ingester.ingest(tag, dataBuffer);
              }
              catch (IOException e) {
                  LOG.warn("Failed to send data. The data is going to be saved into the buffer again: data={}", flushableBuffer);
                  keepBuffer = true;
                  throw e;
              }
              finally {
                  if (keepBuffer) {
                      try {
                          flushableBuffers.put(flushableBuffer);
                      }
                      catch (InterruptedException e1) {
                          LOG.warn("Failed to save the data into the buffer. Trying to save it in extra buffer: chunk={}", flushableBuffer);
                          Thread.currentThread().interrupt();
                          backupBuffers.add(flushableBuffer);
                      }
                  }
                  else {
                      bufferPool.returnBuffer(flushableBuffer.getByteBuffer());
                  }
              }
          }
      }
docs: TODO: Can't Buffer hold `intester` as an instance variable?