code: protected boolean nextBuffer() {
  
      if (this.buffersIndex == this.buffersEndIndex) {
        return false;
      }
      this.bufferStepCount++;
      this.buffersIndex++;
      if (this.buffersIndex >= this.buffers.length) {
        this.buffersIndex = 0;
      }
      ByteArrayBuffer buffer = this.buffers[this.buffersIndex];
      this.currentBufferBytes = buffer.getBytes();
      this.currentBufferIndex = buffer.getCurrentIndex();
      this.currentBufferMax = buffer.getMaximumIndex();
      return true;
    }
docs: This method switches the {@link #getCurrentBuffer() current buffer} to the next available buffer. If this method is
  called when the last buffer has already been reached, the {@link #getCurrentBufferIndex() index} will be set to
  <code>{@link #getCurrentBuffer()}.{@link ByteArrayBufferImpl#getMaximumIndex() getMaximumIndex()}+1</code> so the
  end of this buffer is reached and {@link #hasNext()} will return {@code false}.
  
  @return {@code true} if there was a next buffer to switch to, {@code false} if the {@link #getCurrentBuffer()
  current buffer} is already the last one.