KeyRange.copy(pkRange.beginKey, privPKey);
status = doGetSearchBoth(lockMode);
endOperation(null, status, key, pKey, data);
} else {
status = OperationStatus.NOTFOUND;
Cursor oldCursor = beginOperation();
try {
if (pkRange.beginKey == null || !sortedDups) {
status = doGetSearchKey(lockMode);
} else {
KeyRange.copy(pkRange.beginKey, privPKey);
status = doGetSearchBothRange(lockMode);
if (status == OperationStatus.SUCCESS &&
!pkRange.beginInclusive &&
pkRange.compare(privPKey, pkRange.beginKey) == 0) {
status = doGetNextDup(lockMode);
}
}
if (status == OperationStatus.SUCCESS &&
!pkRange.check(privPKey)) {
status = OperationStatus.NOTFOUND;
}
} finally {
endOperation(oldCursor, status, key, pKey, data);
}
}
} else if (range.singleKey) {
KeyRange.copy(range.beginKey, privKey);
status = doGetSearchKey(lockMode);
endOperation(null, status, key, pKey, data);
} else {
status = OperationStatus.NOTFOUND;
Cursor oldCursor = beginOperation();
try {
if (range.beginKey == null) {
status = doGetFirst(lockMode);
} else {
KeyRange.copy(range.beginKey, privKey);