package com.sleepycat.je.recovery; public class Checkpointer { protected void hook526( CheckpointReference targetRef, Map dirtyMap, int currentLevel, boolean logProvisionally, boolean allowDeltas, long checkpointStart, Tree tree, SearchResult result, boolean mustLogParent) throws DatabaseException { try { original(targetRef,dirtyMap,currentLevel,logProvisionally,allowDeltas,checkpointStart,tree,result,mustLogParent); } finally { result.parent.releaseLatch(); } } protected void hook527( IN target, IN parent, boolean allowDeltas, long checkpointStart, boolean logProvisionally, long newLsn, boolean mustLogParent) throws DatabaseException { try { original(target,parent,allowDeltas,checkpointStart,logProvisionally,newLsn,mustLogParent); } finally { target.releaseLatch(); } } @MethodObject static class Checkpointer_selectDirtyINs { protected void hook528() throws DatabaseException { try { original(); } finally { inMemINs.releaseMajorLatchIfHeld(); } } protected void hook529() throws DatabaseException { inMemINs.latchMajor(); original(); } protected void hook530() throws DatabaseException { try { original(); } finally { in.releaseLatch(); } } } }