/**
  * Requests repairs for the given table and column families, and blocks until all repairs have
  * been completed.
  */
 public RepairFuture submitRepairSession(
     Range<Token> range, String tablename, boolean isSequential, String... cfnames) {
   RepairFuture futureTask =
       new RepairSession(range, tablename, isSequential, cfnames).getFuture();
   executor.execute(futureTask);
   return futureTask;
 }
 // for testing only. Create a session corresponding to a fake request and
 // add it to the sessions (avoid NPE in tests)
 RepairFuture submitArtificialRepairSession(TreeRequest req, String tablename, String... cfnames) {
   RepairFuture futureTask = new RepairSession(req, tablename, cfnames).getFuture();
   executor.execute(futureTask);
   return futureTask;
 }
 /**
  * Requests repairs for the given table and column families, and blocks until all repairs have
  * been completed.
  */
 public RepairFuture submitRepairSession(Range range, String tablename, String... cfnames) {
   RepairFuture futureTask = new RepairSession(range, tablename, cfnames).getFuture();
   executor.execute(futureTask);
   return futureTask;
 }