private void doAction(RawTransaction t, BasePage page, Loggable lop)
throws StandardException
{
long oldversion = 0; // sanity check
LogInstant oldLogInstant = null; // sanity check
if (SanityManager.DEBUG)
{
oldLogInstant = page.getLastLogInstant();
oldversion = page.getPageVersion();
}
// mark the page as pre-dirtied so that if a checkpoint happens after
// the log record is sent to the log stream, the cache cleaning will
// wait for this change.
page.preDirty();
t.logAndDo(lop);
if (SanityManager.DEBUG) {
// log instant may not supported by underlying log factory, in that
// case, it is expected to stay null
if (oldLogInstant != null && page.getLastLogInstant() != null &&
! oldLogInstant.lessThan(page.getLastLogInstant()))
SanityManager.THROWASSERT(
"old log instant = " + oldLogInstant +
" lastlog = " + page.getLastLogInstant() );
SanityManager.ASSERT(