in api-server/src/main/java/org/apache/cassandra/diff/api/services/DBService.java [264:285]
public JobErrorDetail fetchErrorDetail(UUID jobId) {
JobSummary summary = fetchJobSummary(jobId);
List<ResultSetFuture> rangeFutures = Lists.newArrayListWithCapacity(summary.buckets);
for (int i = 0; i < summary.buckets; i++ )
rangeFutures.add(session.executeAsync(jobErrorRangesStatement.bind(jobId, i)));
List<ResultSetFuture> errorFutures = Lists.newArrayList();
processFutures(rangeFutures,
row -> session.executeAsync(jobErrorDetailStatement.bind(jobId,
row.getInt("bucket"),
row.getString("qualified_table_name"),
row.getString("start_token"),
row.getString("end_token"))),
errorFutures::add);
Map<String, List<String>> errorsByTable = Maps.newHashMapWithExpectedSize(summary.keyspaceTables.size());
processFutures(errorFutures,
row -> errorsByTable.merge(row.getString("qualified_table_name"),
Lists.newArrayList(row.getString("error_token")),
(l1, l2) -> { l1.addAll(l2); return l1;}));
return new JobErrorDetail(jobId, errorsByTable);
}