Program: 30988
Project: 30988
Buggy source:
private void doUTXOLookupsForPledges(Project project,ObservableSet<LHProtos.Pledge> pledges,List<Peer> peers,boolean checkingAllPledges,CompletableFuture<Set<LHProtos.Pledge>> result){
  executor.checkOnThread();
  try {
    log.info("String_Node_Str",peers.size());
    PeerUTXOMultiplexor multiplexor=new PeerUTXOMultiplexor(peers);
    BatchingUTXOSource utxoSource=new BatchingUTXOSource(multiplexor);
    List<CompletableFuture<LHProtos.Pledge>> futures=new ArrayList<>(pledges.size());
    for (    LHProtos.Pledge pledge : pledges)     futures.add(project.verifyPledge(utxoSource,pledge));
    try {
      utxoSource.run();
      futureOfFutures(futures).get(10,TimeUnit.SECONDS);
    }
 catch (    TimeoutException e) {
    }
    Set<TransactionOutPoint> allOutpoints=checkingAllPledges ? new HashSet<>() : getAllPledgedOutPointsFor(project);
    List<LHProtos.Pledge> verifiedPledges=new ArrayList<>(futures.size());
    for (    CompletableFuture<LHProtos.Pledge> future : futures) {
      if (!future.isDone()) {
        log.warn("String_Node_Str",future);
        continue;
      }
      try {
        LHProtos.Pledge pledge=future.get();
        Transaction tx=project.fastSanityCheck(pledge);
        for (        TransactionInput input : tx.getInputs()) {
          if (allOutpoints.contains(input.getOutpoint()))           throw new ExecutionException(new VerificationException.DuplicatedOutPoint());
          allOutpoints.add(input.getOutpoint());
        }
        verifiedPledges.add(pledge);
      }
 catch (      ExecutionException e) {
        if (!(getRootCause(e) instanceof Ex.UnknownUTXO))         throw e;
      }
    }
    log.info("String_Node_Str",verifiedPledges.size(),pledges.size());
    syncPledges(project,pledges,verifiedPledges);
    refreshBloomFilter();
    markAsCheckDone(project);
    result.complete(new HashSet<>(verifiedPledges));
  }
 catch (  InterruptedException|ExecutionException e) {
    log.error("String_Node_Str",e);
    markAsErrored(project,e);
    result.completeExceptionally(e);
  }
}

Fixed version (ground truth):
private void doUTXOLookupsForPledges(Project project,ObservableSet<LHProtos.Pledge> pledges,List<Peer> peers,boolean checkingAllPledges,CompletableFuture<Set<LHProtos.Pledge>> result){
  executor.checkOnThread();
  try {
    log.info("String_Node_Str",peers.size(),checkingAllPledges ? "String_Node_Str" : "String_Node_Str");
    PeerUTXOMultiplexor multiplexor=new PeerUTXOMultiplexor(peers);
    BatchingUTXOSource utxoSource=new BatchingUTXOSource(multiplexor);
    List<CompletableFuture<LHProtos.Pledge>> futures=new ArrayList<>(pledges.size());
    for (    LHProtos.Pledge pledge : pledges)     futures.add(project.verifyPledge(utxoSource,pledge));
    try {
      utxoSource.run();
      futureOfFutures(futures).get(10,TimeUnit.SECONDS);
    }
 catch (    TimeoutException e) {
    }
    Set<TransactionOutPoint> allOutpoints=checkingAllPledges ? new HashSet<>() : getAllPledgedOutPointsFor(project);
    List<LHProtos.Pledge> verifiedPledges=new ArrayList<>(futures.size());
    for (    CompletableFuture<LHProtos.Pledge> future : futures) {
      if (!future.isDone()) {
        log.warn("String_Node_Str",future);
        continue;
      }
      try {
        LHProtos.Pledge pledge=future.get();
        Transaction tx=project.fastSanityCheck(pledge);
        for (        TransactionInput input : tx.getInputs()) {
          if (allOutpoints.contains(input.getOutpoint()))           throw new ExecutionException(new VerificationException.DuplicatedOutPoint());
          allOutpoints.add(input.getOutpoint());
        }
        verifiedPledges.add(pledge);
      }
 catch (      ExecutionException e) {
        if (!(getRootCause(e) instanceof Ex.UnknownUTXO))         throw e;
      }
    }
    log.info("String_Node_Str",verifiedPledges.size(),pledges.size());
    syncPledges(project,pledges,verifiedPledges);
    refreshBloomFilter();
    markAsCheckDone(project);
    result.complete(new HashSet<>(verifiedPledges));
  }
 catch (  InterruptedException|ExecutionException e) {
    log.error("String_Node_Str",e);
    markAsErrored(project,e);
    result.completeExceptionally(e);
  }
}