code: public int fill(ByteBuffer fillFrom) {
          int origionalPos = fillFrom.position();
          while (capacityAvailable() > 0 && fillFrom.hasRemaining()) {
              fillHelper(fillFrom);
          }
          return fillFrom.position() - origionalPos;
      }
docs: Copies from the given ByteBuffer.
  
  @param fillFrom The ByteBuffer to read from.
  @return the number of bytes read from fillFrom