m_readWriteLock.readLock().acquire();
try {
final BTreeObjectIterator iterator =
m_database.createIterator((BTreeIndex)indexFrom);
if (!iterator.moveTo((KeyObject)fromFactory.newInstance())) {
throw new RuntimeException("record " + from + " does not exist");
}
do {
final Object item = iterator.getObject();
if (item != null) {