protected int getOffset(int record, int section) {
    assert record > 0 : "record = " + record;
    int offset = getHeaderSize() + (record - 1) * getRecordSize() + section;
    if (offset < 0) {
      throw new IllegalArgumentException("offset is negative (" + offset + "): " +
                                         "record = " + record + ", " +
                                         "section " + section + ", " +
                                         "header size " + getHeaderSize() + ", " +
                                         "record size = " + getRecordSize());
    }
    return offset;
  }
protected int getOffset(int record, int section)