public void updateRecordHard(int id,byte[] record) throws IOException {
  if (!database.isOpen())   throw new IllegalStateException("don't access the table before opening the database");
  if (!hardWriteMode)   throw new IllegalStateException("hard write attempted during soft write mode");
  if (id < committedNextRowId && !softModeSavedRows.get(id,false))   throw new IllegalStateException("hard write attempted for row not soft written: " + id);
synchronized (this) {
    rwRaf.seek(HEADER_SIZE + id * recordSize);
    rwRaf.write(record);
  }
}

public void updateRecordHard ( int id , byte [ ] record ) throws IOException { if ( ! database . isOpen ( ) ) throw new IllegalStateException ( "don't access the table before opening the database" ) ; if ( ! hardWriteMode ) throw new IllegalStateException ( "hard write attempted during soft write mode" ) ; if ( id < committedNextRowId && ! softModeSavedRows . get ( id , false ) ) throw new IllegalStateException ( "hard write attempted for row not soft written: " + id ) ; synchronized ( this ) { rwRaf . seek ( HEADER_SIZE + id * recordSize ) ; rwRaf . write ( record ) ; } }
a hard update can only occur during hard mode and must only be the ids from the soft updates , or an inserted record .
