{
free( pageIo );
}
catch ( IOException ioe )
{
throw new RecordManagerException( ioe.getMessage() );
}
}
// Release the allocated and freed pages list
freedPages.clear();
allocatedPages.clear();
// And update the RMHeader again, removing the old references to BOB and CPB b-tree headers
// here, we have to erase the old references to keep only the new ones.
updateRecordManagerHeader();
// And decrement the number of started transactions
decrementTxnLevel();
// Finally, release the global lock
transactionLock.unlock();
return;
default :
// We are inner an existing transaction. Just update the necessary elements
// Update the RMHeader to be sure that we have a way to restore from a crash
updateRecordManagerHeader();
// Swap the BtreeHeaders maps
//swapCurrentBtreeHeaders();
// We can now free pages
for ( PageIO pageIo : freedPages )
{
try
{
free( pageIo );
}
catch ( IOException ioe )
{
throw new RecordManagerException( ioe.getMessage() );
}
}
// Release the allocated and freed pages list
freedPages.clear();