docs: public void removeField(int fieldNum)
  	{
  		// range check
  		if (fieldNum < 0 || fieldNum >= this.numFields) {
  			throw new IndexOutOfBoundsException();
  		}
  		int lastIndex = this.numFields - 1;		
  
  		if (fieldNum < lastIndex) {
  			int len = lastIndex - fieldNum;
  			System.arraycopy(this.offsets, fieldNum + 1, this.offsets, fieldNum, len);
  			System.arraycopy(this.lengths, fieldNum + 1, this.lengths, fieldNum, len);
  			System.arraycopy(this.readFields, fieldNum + 1, this.readFields, fieldNum, len);
  			System.arraycopy(this.writeFields, fieldNum + 1, this.writeFields, fieldNum, len);
  			markModified(fieldNum);
  		}
  		this.offsets[lastIndex] = NULL_INDICATOR_OFFSET;
  		this.lengths[lastIndex] = 0;
  		this.writeFields[lastIndex] = null;
  
  		setNumFields(lastIndex);
  	}