* @throws IOException
* @throws InterruptedException
*/
synchronized public void setMark(final RecordLocationImpl recordLocator, boolean force) throws InvalidRecordLocationException, InterruptedException, IOException {
if( recordLocator==null )
throw new InvalidRecordLocationException("The location cannot be null.");
if( lastMarkedLocation!=null && recordLocator.compareTo(lastMarkedLocation)<0 )
throw new InvalidRecordLocationException("The location is less than the last mark.");
lastMarkedLocation = recordLocator;
Mark mark = new Mark(recordLocator);
byte data[] = mark.writeExternal();
write(LogFile.MARK_RECORD_TYPE,data,force,mark);
}