package com.sleepycat.je.recovery;
import com.sleepycat.je.latch.LatchSupport;
public class RecoveryManager {
protected void hook585( IN in) throws DatabaseException {
in.latch();
original(in);
}
protected void hook586( RecoveryInfo info, LNFileReader reader, TreeLocation location, LN ln, long logLsn, long abortLsn, boolean abortKnownDeleted, DatabaseImpl db) throws IOException, DatabaseException, Exception {
try {
original(info,reader,location,ln,logLsn,abortLsn,abortKnownDeleted,db);
}
finally {
if (location.bin != null) {
location.bin.releaseLatchIfOwner();
}
}
}
protected void hook587( IN inFromLog, long logLsn) throws DatabaseException {
inFromLog.releaseLatchIfOwner();
assert (LatchSupport.countLatchesHeld() == 0) : LatchSupport.latchesHeldToString() + "LSN = " + DbLsn.toString(logLsn)+ " inFromLog = "+ inFromLog.getNodeId();
original(inFromLog,logLsn);
}
protected void hook588( SearchResult result) throws DatabaseException {
if (result.parent != null) {
result.parent.releaseLatch();
}
original(result);
}
protected void hook589( IN parent) throws DatabaseException {
if (parent != null) {
parent.releaseLatch();
}
original(parent);
}
protected void hook590( SearchResult result) throws DatabaseException {
if (result.parent != null) {
result.parent.releaseLatch();
}
original(result);
}
protected void hook591( TreeLocation location) throws DatabaseException {
if (location.bin != null) {
location.bin.releaseLatchIfOwner();
}
original(location);
}
protected static boolean hook592( TreeLocation location, long logLsn, long abortLsn, boolean replaced, DIN duplicateRoot) throws DatabaseException {
duplicateRoot.latch();
try {
replaced=original(location,logLsn,abortLsn,replaced,duplicateRoot);
}
finally {
duplicateRoot.releaseLatch();
}
return replaced;
}
}