Program: 31020
Project: 31020
Buggy source:
@Test public void mergePeerAnswers() throws Exception {
  InboundMessageQueuer p1=connectPeer(1,supportingVer);
  InboundMessageQueuer p2=connectPeer(2,supportingVer);
  InboundMessageQueuer p3=connectPeer(3,supportingVer);
  ObservableList<Project> projects=backend.mirrorProjects(gate);
  ObservableMap<Project,LighthouseBackend.CheckStatus> statuses=backend.mirrorCheckStatuses(gate);
  Path dropDir=Files.createTempDirectory("String_Node_Str");
  Path downloadedFile=writeProjectToDisk(dropDir);
  backend.importProjectFrom(downloadedFile);
  gate.waitAndRun();
  assertEquals(1,projects.size());
  checkBloomFilter(p1,p2,p3);
  Triplet<Transaction,Transaction,LHProtos.Pledge> data=TestUtils.makePledge(project,to,project.getGoalAmount());
  Transaction stubTx=data.getValue0();
  Transaction pledgeTx=data.getValue1();
  LHProtos.Pledge pledge=data.getValue2();
  try (OutputStream stream=Files.newOutputStream(dropDir.resolve("String_Node_Str" + DiskManager.PLEDGE_FILE_EXTENSION))){
    pledge.writeTo(stream);
  }
   gate.waitAndRun();
  assertEquals(1,statuses.size());
  assertTrue(statuses.get(project).inProgress);
  GetUTXOsMessage getutxos1, getutxos2, getutxos3;
  getutxos1=(GetUTXOsMessage)waitForOutbound(p1);
  getutxos2=(GetUTXOsMessage)waitForOutbound(p2);
  getutxos3=(GetUTXOsMessage)waitForOutbound(p3);
  assertNotNull(getutxos1);
  assertNotNull(getutxos2);
  assertNotNull(getutxos3);
  assertEquals(getutxos1,getutxos2);
  assertEquals(getutxos2,getutxos3);
  assertEquals(pledgeTx.getInput(0).getOutpoint(),getutxos1.getOutPoints().get(0));
  UTXOsMessage lie=new UTXOsMessage(params,ImmutableList.of(stubTx.getOutput(0)),new long[]{UTXOsMessage.MEMPOOL_HEIGHT},blockStore.getChainHead().getHeader().getHash(),blockStore.getChainHead().getHeight());
  UTXOsMessage correct=new UTXOsMessage(params,ImmutableList.of(),new long[]{},blockStore.getChainHead().getHeader().getHash(),blockStore.getChainHead().getHeight());
  inbound(p1,correct);
  inbound(p2,lie);
  inbound(p3,correct);
  gate.waitAndRun();
  assertEquals(1,statuses.size());
  assertFalse(statuses.get(project).inProgress);
  assertTrue(statuses.get(project).error instanceof Ex.InconsistentUTXOAnswers);
}

Fixed version (ground truth):
@Test public void mergePeerAnswers() throws Exception {
  InboundMessageQueuer p1=connectPeer(1,supportingVer);
  InboundMessageQueuer p2=connectPeer(2,supportingVer);
  InboundMessageQueuer p3=connectPeer(3,supportingVer);
  ObservableList<Project> projects=backend.mirrorProjects(gate);
  ObservableMap<Project,LighthouseBackend.CheckStatus> statuses=backend.mirrorCheckStatuses(gate);
  Path dropDir=Files.createTempDirectory("String_Node_Str");
  Path downloadedFile=writeProjectToDisk(dropDir);
  backend.importProjectFrom(downloadedFile);
  gate.waitAndRun();
  assertEquals(1,projects.size());
  checkBloomFilter(p1,p2,p3);
  Triplet<Transaction,Transaction,LHProtos.Pledge> data=TestUtils.makePledge(project,to,project.getGoalAmount());
  Transaction stubTx=data.getValue0();
  Transaction pledgeTx=data.getValue1();
  LHProtos.Pledge pledge=data.getValue2();
  writePledgeToDisk(dropDir,pledge);
  gate.waitAndRun();
  assertEquals(1,statuses.size());
  assertTrue(statuses.get(project).inProgress);
  GetUTXOsMessage getutxos1, getutxos2, getutxos3;
  getutxos1=(GetUTXOsMessage)waitForOutbound(p1);
  getutxos2=(GetUTXOsMessage)waitForOutbound(p2);
  getutxos3=(GetUTXOsMessage)waitForOutbound(p3);
  assertNotNull(getutxos1);
  assertNotNull(getutxos2);
  assertNotNull(getutxos3);
  assertEquals(getutxos1,getutxos2);
  assertEquals(getutxos2,getutxos3);
  assertEquals(pledgeTx.getInput(0).getOutpoint(),getutxos1.getOutPoints().get(0));
  UTXOsMessage lie=new UTXOsMessage(params,ImmutableList.of(stubTx.getOutput(0)),new long[]{UTXOsMessage.MEMPOOL_HEIGHT},blockStore.getChainHead().getHeader().getHash(),blockStore.getChainHead().getHeight());
  UTXOsMessage correct=new UTXOsMessage(params,ImmutableList.of(),new long[]{},blockStore.getChainHead().getHeader().getHash(),blockStore.getChainHead().getHeight());
  inbound(p1,correct);
  inbound(p2,lie);
  inbound(p3,correct);
  gate.waitAndRun();
  assertEquals(1,statuses.size());
  assertFalse(statuses.get(project).inProgress);
  assertTrue(statuses.get(project).error instanceof Ex.InconsistentUTXOAnswers);
}