partitioner.getTokenFactory().fromString(range.end_token),
partitioner);
if (dhtRange.intersects(jobRange))
{
Set<Range> intersections = dhtRange.intersectionWith(jobRange);
assert intersections.size() == 1 : "wrapping ranges not yet supported";
Range intersection = intersections.iterator().next();
range.start_token = partitioner.getTokenFactory().toString(intersection.left);
range.end_token = partitioner.getTokenFactory().toString(intersection.right);
// for each range, pick a live owner and ask it to compute bite-sized splits