// shortcut exit, we had a exact match
nearest.setValue(maxBelow, null);
} else {
// grab mind of values higher than the target
Query qAbove = new Query(query);
Filter aboveFilter = ff.greater(ff.property(attribute), ff.literal(targetValue));
qAbove.setFilter(ff.and(query.getFilter(), aboveFilter));
MinVisitor min = new MinVisitor(attribute);
handleVisitor(qAbove, min);
Comparable minAbove = (Comparable) min.getResult().getValue();
nearest.setValue(maxBelow, minAbove);