Program: 30970
Project: 30970
Buggy source:
public LighthouseBackend(Mode mode,PeerGroup regularP2P,PeerGroup xtP2P,AbstractBlockChain chain,PledgingWallet wallet,DiskManager diskManager,AffinityExecutor.ServiceAffinityExecutor executor){
  this.diskManager=diskManager;
  this.executor=executor;
  this.regularP2P=regularP2P;
  this.xtP2P=xtP2P;
  this.openPledges=new HashMap<>();
  this.claimedPledges=new HashMap<>();
  this.wallet=wallet;
  this.mode=mode;
  this.checkStatuses=FXCollections.observableHashMap();
  this.projectsByUrlPath=new HashMap<>();
  if (wallet.getParams() == RegTestParams.get()) {
    setMinPeersForUTXOQuery(1);
    setMaxJitterSeconds(1);
  }
  diskManager.observeProjects(this::onDiskProjectAdded);
  executor.execute(() -> {
    chain.addListener(this,executor);
    for (    LHProtos.Pledge pledge : wallet.getPledges()) {
      Project project=diskManager.getProjectById(pledge.getPledgeDetails().getProjectId());
      if (project != null) {
        getOpenPledgesFor(project).add(pledge);
      }
 else {
        log.error("String_Node_Str",pledge.getPledgeDetails().getProjectId());
      }
    }
    wallet.addOnPledgeHandler((project,pledge) -> {
      log.info("String_Node_Str",pledge);
      final ObservableSet<LHProtos.Pledge> pledgesFor=getOpenPledgesFor(project);
      pledgesFor.add(pledge);
    }
,executor);
    wallet.addOnRevokeHandler(pledge -> {
      Project project=diskManager.getProjectById(pledge.getPledgeDetails().getProjectId());
      if (project != null) {
        getOpenPledgesFor(project).remove(pledge);
      }
 else {
        log.error("String_Node_Str",pledge.getPledgeDetails().getProjectId());
      }
    }
,executor);
    wallet.addEventListener(new AbstractWalletEventListener(){
      @Override public void onCoinsReceived(      Wallet wallet,      Transaction tx,      Coin prevBalance,      Coin newBalance){
        checkPossibleClaimTX(tx);
      }
    }
,executor);
    for (    Transaction tx : wallet.getTransactions(false)) {
      Project project=diskManager.getProjectFromClaim(tx);
      if (project != null) {
        log.info("String_Node_Str",tx.getHash());
        addClaimConfidenceListener(executor,tx,project);
        movePledgesFromOpenToClaimed(tx,project);
      }
    }
    installBloomFilterProvider();
    refreshBloomFilter();
    log.info("String_Node_Str");
    initialized.complete(true);
  }
);
}

Fixed version (ground truth):
public LighthouseBackend(Mode mode,PeerGroup regularP2P,PeerGroup xtP2P,AbstractBlockChain chain,PledgingWallet wallet,DiskManager diskManager,AffinityExecutor.ServiceAffinityExecutor executor){
  this.diskManager=diskManager;
  this.executor=executor;
  this.regularP2P=regularP2P;
  this.xtP2P=xtP2P;
  this.openPledges=new HashMap<>();
  this.claimedPledges=new HashMap<>();
  this.wallet=wallet;
  this.mode=mode;
  this.checkStatuses=FXCollections.observableHashMap();
  this.projectsByUrlPath=new HashMap<>();
  if (wallet.getParams() == RegTestParams.get()) {
    setMinPeersForUTXOQuery(1);
    setMaxJitterSeconds(1);
  }
  diskManager.observeProjects(this::onDiskProjectAdded);
  executor.execute(() -> {
    chain.addListener(this,executor);
    for (    LHProtos.Pledge pledge : wallet.getPledges()) {
      Project project=diskManager.getProjectById(pledge.getPledgeDetails().getProjectId());
      if (project != null) {
        getOpenPledgesFor(project).add(pledge);
      }
 else {
        log.error("String_Node_Str",pledge.getPledgeDetails().getProjectId());
      }
    }
    wallet.addOnPledgeHandler((project,pledge) -> {
      final ObservableSet<LHProtos.Pledge> pledgesFor=getOpenPledgesFor(project);
      pledgesFor.add(pledge);
    }
,executor);
    wallet.addOnRevokeHandler(pledge -> {
      Project project=diskManager.getProjectById(pledge.getPledgeDetails().getProjectId());
      if (project != null) {
        getOpenPledgesFor(project).remove(pledge);
      }
 else {
        log.error("String_Node_Str",pledge.getPledgeDetails().getProjectId());
      }
    }
,executor);
    wallet.addEventListener(new AbstractWalletEventListener(){
      @Override public void onCoinsReceived(      Wallet wallet,      Transaction tx,      Coin prevBalance,      Coin newBalance){
        checkPossibleClaimTX(tx);
      }
    }
,executor);
    for (    Transaction tx : wallet.getTransactions(false)) {
      Project project=diskManager.getProjectFromClaim(tx);
      if (project != null) {
        log.info("String_Node_Str",tx.getHash());
        addClaimConfidenceListener(executor,tx,project);
        movePledgesFromOpenToClaimed(tx,project);
      }
    }
    installBloomFilterProvider();
    refreshBloomFilter();
    log.info("String_Node_Str");
    initialized.complete(true);
  }
);
}