Source:
private void previewRepair(UUID parentSession, long startTime, List<CommonRange> commonRanges, String... cfnames) { logger.debug("Starting preview repair for {}", parentSession); ListeningExecutorService executor = createExecutor(); final ListenableFuture<List<RepairSessionResult>> allSessions = submitRepairSessions(parentSession, false, executor, commonRanges, cfnames); Futures.addCallback(allSessions, new FutureCallback<List<RepairSessionResult>>() { public void onSuccess(List<RepairSessionResult> results) { try { if (results == null || results.stream().anyMatch(s -> s == null)) { fail(null); return; } PreviewKind previewKind = options.getPreviewKind(); assert previewKind != PreviewKind.NONE; SyncStatSummary summary = new SyncStatSummary(true); summary.consumeSessionResults(results); final String message; if (summary.isEmpty()) { message = previewKind == PreviewKind.REPAIRED ? "Repaired data is in sync" : "Previewed data was in sync"; logger.info(message); fireProgressEvent(new ProgressEvent(ProgressEventType.NOTIFICATION, progressCounter.get(), totalProgress, message)); } else { message = (previewKind == PreviewKind.REPAIRED ? "Repaired data is inconsistent\n" : "Preview complete\n") + summary.toString(); logger.info(message); fireProgressEvent(new ProgressEvent(ProgressEventType.NOTIFICATION, progressCounter.get(), totalProgress, message)); } success("Repair preview completed successfully"); } catch (Throwable t) { logger.error("Error completing preview repair", t); onFailure(t); } finally { executor.shutdownNow(); } } public void onFailure(Throwable t) { notifyError(t); fail("Error completing preview repair: " + t.getMessage()); executor.shutdownNow(); } }, MoreExecutors.directExecutor()); }

Target:
private void previewRepair(UUID parentSession, long startTime, List<CommonRange> commonRanges, String... cfnames) { logger.debug("Starting preview repair for {}", parentSession); ListeningExecutorService executor = createExecutor(); final ListenableFuture<List<RepairSessionResult>> allSessions = submitRepairSessions(parentSession, false, executor, commonRanges, cfnames); Futures.addCallback(allSessions, new FutureCallback<List<RepairSessionResult>>() { public void onSuccess(List<RepairSessionResult> results) { try { if (results == null || results.stream().anyMatch(s -> s == null)) { fail(null); return; } PreviewKind previewKind = options.getPreviewKind(); Preconditions.checkState(previewKind != PreviewKind.NONE, "Preview is NONE"); SyncStatSummary summary = new SyncStatSummary(true); summary.consumeSessionResults(results); final String message; if (summary.isEmpty()) { message = previewKind == PreviewKind.REPAIRED ? "Repaired data is in sync" : "Previewed data was in sync"; } else { message = (previewKind == PreviewKind.REPAIRED ? "Repaired data is inconsistent\n" : "Preview complete\n") + summary.toString(); } notification(message); success("Repair preview completed successfully"); } catch (Throwable t) { logger.error("Error completing preview repair", t); onFailure(t); } finally { executor.shutdownNow(); } } public void onFailure(Throwable t) { notifyError(t); fail("Error completing preview repair: " + t.getMessage()); executor.shutdownNow(); } }, MoreExecutors.directExecutor()); }