{
throw new IllegalStateException("Cannot find add info " + id);
}
}
JournalInternalRecord updateRecord = new JournalAddRecord(false, id, recordType, record);
if (callback != null)
{
callback.storeLineUp();
}
lockAppend.lock();
try
{
JournalFile usedFile = appendRecord(updateRecord, false, sync, null, callback);
if (JournalImpl.TRACE_RECORDS)
{
JournalImpl.traceRecord("appendUpdateRecord::id=" + id +
", userRecordType=" +
recordType +
", usedFile = " +
usedFile);
}
// record== null here could only mean there is a compactor, and computing the delete should be done after
// compacting is done
if (jrnRecord == null)
{
compactor.addCommandUpdate(id, usedFile, updateRecord.getEncodeSize());
}
else
{
jrnRecord.addUpdateFile(usedFile, updateRecord.getEncodeSize());
}
}
finally
{
lockAppend.unlock();