in modules/accumulo/src/main/java/org/apache/fluo/accumulo/iterators/SnapshotIterator.java [218:261]
public void seek(Range range, Collection<ByteSequence> columnFamilies, boolean inclusive)
throws IOException {
Range newRange = range;
Collection<ByteSequence> cols;
boolean inc;
clearReadLock();
// handle continue case
hasTop = true;
if (range.getStartKey() != null && range.getStartKey().getTimestamp() != Long.MAX_VALUE
&& !range.isStartKeyInclusive()) {
if (ColumnType.from(range.getStartKey()) == ColumnType.RLOCK) {
Key currCol = new Key(range.getStartKey());
currCol.setTimestamp(Long.MAX_VALUE);
newRange = new Range(currCol, true, range.getEndKey(), range.isEndKeyInclusive());
ignoreReadLock(currCol);
} else {
Key nextCol = range.getStartKey().followingKey(PartialKey.ROW_COLFAM_COLQUAL_COLVIS);
if (range.afterEndKey(nextCol)) {
hasTop = false;
return;
} else {
newRange = new Range(nextCol, true, range.getEndKey(), range.isEndKeyInclusive());
}
}
} else {
newRange = range;
}
if (columnFamilies.isEmpty() && inclusive == false) {
cols = NOTIFY_CF_SET;
inc = false;
} else {
cols = columnFamilies;
inc = inclusive;
}
source.seek(newRange, cols, inc);
findTop();
}