code: @Override
    public byte []nextBuffer(int offset)
      throws IOException
    {
      if (offset < 0 || SIZE < offset) {
        throw new IllegalStateException(L.l("Invalid offset: " + offset));
      }
      
      if (_bufferCapacity <= SIZE
          || _bufferCapacity <= offset + _bufferSize) {
        _offset = offset;
        flushByteBuffer();
  
        return buffer();
      }
      else {
        _tBuf.length(offset);
        _bufferSize += offset;
  
        TempBuffer tempBuf = TempBuffer.create();
        _tBuf.next(tempBuf);
        _tBuf = tempBuf;
  
        _buffer = _tBuf.buffer();
        _offset = _startOffset;
  
        return _buffer;
      }
    }
docs: Returns the next byte buffer.