package com.sleepycat.je; import com.sleepycat.je.latch.LatchSupport; public class Cursor { protected void hook19( CursorImpl dup) throws DatabaseException { dup.latchBINs(); original(dup); } protected void hook20( CursorImpl origCursor, CursorImpl dup) throws DatabaseException { if (origCursor != null) { origCursor.releaseBINs(); } if (dup != null) { dup.releaseBINs(); } original(origCursor,dup); } protected void hook21( CursorImpl origCursor) throws DatabaseException { if (origCursor != null) { origCursor.releaseBINs(); } original(origCursor); } protected void hook22() throws DatabaseException { assert LatchSupport.countLatchesHeld() == 0 : LatchSupport.latchesHeldToString(); original(); } protected void hook23() throws DatabaseException { assert LatchSupport.countLatchesHeld() == 1 : LatchSupport.latchesHeldToString(); original(); } protected void hook24() throws DatabaseException { cursorImpl.releaseBINs(); original(); } protected void hook25( CursorImpl dup, DatabaseEntry key, DatabaseEntry data, LockType searchLockType, LockType advanceLockType, SearchMode searchMode, boolean advanceAfterRangeSearch, OperationStatus status, boolean keyChange) throws DatabaseException { try { original(dup,key,data,searchLockType,advanceLockType,searchMode,advanceAfterRangeSearch,status,keyChange); } finally { cursorImpl.releaseBINs(); if (status != OperationStatus.SUCCESS && dup != cursorImpl) { dup.releaseBINs(); } } } protected void hook26() throws DatabaseException { assert LatchSupport.countLatchesHeld() == 0; original(); } protected void hook27() throws DatabaseException { assert LatchSupport.countLatchesHeld() == 0; original(); } protected void hook28() throws DatabaseException { assert LatchSupport.countLatchesHeld() == 0; original(); } protected void hook29() throws DatabaseException { assert LatchSupport.countLatchesHeld() == 0; original(); } protected void hook30() throws DatabaseException { assert LatchSupport.countLatchesHeld() == 0; original(); } protected void hook31() throws DatabaseException { assert LatchSupport.countLatchesHeld() == 0; original(); } protected void hook32( CursorImpl origCursor) throws DatabaseException { origCursor.releaseBINs(); original(origCursor); } protected void hook33( CursorImpl origCursor) throws DatabaseException { origCursor.latchBINs(); original(origCursor); } protected void hook34( CursorImpl origCursor) throws DatabaseException { origCursor.releaseBINs(); original(origCursor); } protected void hook35( CursorImpl origCursor) throws DatabaseException { origCursor.latchBINs(); original(origCursor); } }