Source:
<code>private ListenableFuture<List<SyncStat>> standardSyncing(List<TreeResponse> trees) { InetAddressAndPort local = FBUtilities.getLocalAddressAndPort(); List<AbstractSyncTask> syncTasks = new ArrayList<>(); for (int i = 0; i < trees.size() - 1; ++i) { TreeResponse r1 = trees.get(i); for (int j = i + 1; j < trees.size(); ++j) { TreeResponse r2 = trees.get(j); if (isTransient(r1.endpoint) && isTransient(r2.endpoint)) continue; AbstractSyncTask task; if (r1.endpoint.equals(local) || r2.endpoint.equals(local)) { TreeResponse self = r1.endpoint.equals(local) ? r1 : r2; TreeResponse remote = r2.endpoint.equals(local) ? r1 : r2; boolean requestRanges = !isTransient(self.endpoint); <START> boolean transfterRanges = !isTransient(remote.endpoint) && !session.pullRepair; <END> if (!requestRanges && !transfterRanges) continue; task = new LocalSyncTask(desc, self, remote, isIncremental ? desc.parentSessionId : null, requestRanges, transfterRanges, session.previewKind); } else if (isTransient(r1.endpoint) || isTransient(r2.endpoint)) { TreeResponse streamFrom = isTransient(r1.endpoint) ? r1 : r2; TreeResponse streamTo = isTransient(r1.endpoint) ? r2 : r1; task = new AsymmetricRemoteSyncTask(desc, streamTo, streamFrom, previewKind); session.waitForSync(Pair.create(desc, task.nodePair()), (AsymmetricRemoteSyncTask) task); } else { task = new SymmetricRemoteSyncTask(desc, r1, r2, session.previewKind); session.waitForSync(Pair.create(desc, task.nodePair()), (SymmetricRemoteSyncTask) task); } syncTasks.add(task); taskExecutor.submit(task); } } return Futures.allAsList(syncTasks); }</code><technical_language>Typo in transfer</technical_language>

Target:
private ListenableFuture<List<SyncStat>> standardSyncing(List<TreeResponse> trees) { InetAddressAndPort local = FBUtilities.getLocalAddressAndPort(); List<AbstractSyncTask> syncTasks = new ArrayList<>(); for (int i = 0; i < trees.size() - 1; ++i) { TreeResponse r1 = trees.get(i); for (int j = i + 1; j < trees.size(); ++j) { TreeResponse r2 = trees.get(j); if (isTransient(r1.endpoint) && isTransient(r2.endpoint)) continue; AbstractSyncTask task; if (r1.endpoint.equals(local) || r2.endpoint.equals(local)) { TreeResponse self = r1.endpoint.equals(local) ? r1 : r2; TreeResponse remote = r2.endpoint.equals(local) ? r1 : r2; boolean requestRanges = !isTransient(self.endpoint); boolean transferRanges = !isTransient(remote.endpoint) && !session.pullRepair; if (!requestRanges && !transferRanges) continue; task = new LocalSyncTask(desc, self, remote, isIncremental ? desc.parentSessionId : null, requestRanges, transferRanges, session.previewKind); } else if (isTransient(r1.endpoint) || isTransient(r2.endpoint)) { TreeResponse streamFrom = isTransient(r1.endpoint) ? r1 : r2; TreeResponse streamTo = isTransient(r1.endpoint) ? r2 : r1; task = new AsymmetricRemoteSyncTask(desc, streamTo, streamFrom, previewKind); session.waitForSync(Pair.create(desc, task.nodePair()), (AsymmetricRemoteSyncTask) task); } else { task = new SymmetricRemoteSyncTask(desc, r1, r2, session.previewKind); session.waitForSync(Pair.create(desc, task.nodePair()), (SymmetricRemoteSyncTask) task); } syncTasks.add(task); taskExecutor.submit(task); } } return Futures.allAsList(syncTasks); }