{
LockUtils.lock(lock.readLock());
try
{
i = index(i);
DataIStream dis = Streams.dis.get();
ByteArrayIS bis = dis.getUnderlyingStream();
bis.setBuffer(bytes, keyOffsetsArray[i], keyOffsetsArray[i+1]);
entry.key.readFields(dis);
bis.setBuffer(bytes, valueOffsetsArray[i], valueOffsetsArray[i+1]);
entry.value.readFields(dis);
}