Program: 87186
Project: 87186
Buggy source:
@Test public void post() throws Exception {
  ClientDispatcher myClient=new ClientDispatcher();
  TransportImpl myTransport=new TransportImpl(null);
  myClient.init(myTransport);
  FDUtil.ensureFD(_tport1.getFD());
  FDUtil.ensureFD(_tport2.getFD());
  System.err.println("String_Node_Str");
  for (int i=0; i < 5; i++) {
    ByteBuffer myBuffer=ByteBuffer.allocate(4);
    myBuffer.putInt(i);
    Proposal myProp=new Proposal("String_Node_Str",myBuffer.array());
    myClient.send(new Envelope(myProp),_tport2.getLocalAddress());
    VoteOutcome myEv=myClient.getNext(10000);
    Assert.assertFalse((myEv == null));
    Assert.assertTrue(myEv.getResult() == VoteOutcome.Reason.VALUE);
    Assert.assertTrue(myEv.getSeqNum() == i);
  }
  Thread.sleep(5000);
  System.err.println("String_Node_Str");
  _node3=new ServerDispatcher(new HowlLogger(_node3Log),true);
  _tport3=new TransportImpl(new FailureDetectorImpl(5000,FailureDetectorImpl.OPEN_PIN));
  _node3.init(_tport3);
  _node3.getAcceptorLearner().setRecoveryGracePeriod(1000);
  FDUtil.ensureFD(_tport3.getFD());
  System.err.println("String_Node_Str");
  Thread.sleep(Leader.LeaseDuration.get() + 1000);
  ByteBuffer myBuffer=ByteBuffer.allocate(4);
  myBuffer.putInt(67);
  Proposal myProp=new Proposal("String_Node_Str",myBuffer.array());
  myClient.send(new Envelope(myProp),_tport3.getLocalAddress());
  VoteOutcome myMsg=myClient.getNext(10000);
  Assert.assertEquals(VoteOutcome.Reason.OTHER_LEADER,myMsg.getResult());
  myBuffer=ByteBuffer.allocate(4);
  myBuffer.putInt(69);
  Proposal myProp2=new Proposal("String_Node_Str",myBuffer.array());
  System.err.println("String_Node_Str");
  myClient.send(new Envelope(myProp2),_tport3.getLocalAddress());
  myMsg=myClient.getNext(10000);
  Assert.assertTrue((VoteOutcome.Reason.VALUE == myMsg.getResult()) || (VoteOutcome.Reason.VOTE_TIMEOUT == myMsg.getResult()));
  System.err.println("String_Node_Str");
  Thread.sleep(10000);
  Assert.assertEquals("String_Node_Str",_node2.getAcceptorLearner().getLowWatermark().getSeqNum(),_node3.getAcceptorLearner().getLowWatermark().getSeqNum());
  System.err.println("String_Node_Str");
  myTransport.terminate();
}

Fixed version (ground truth):
@Test public void post() throws Exception {
  ClientDispatcher myClient=new ClientDispatcher();
  TransportImpl myTransport=new TransportImpl(null);
  myClient.init(myTransport);
  FDUtil.ensureFD(_tport1.getFD());
  FDUtil.ensureFD(_tport2.getFD());
  System.err.println("String_Node_Str");
  for (int i=0; i < 5; i++) {
    ByteBuffer myBuffer=ByteBuffer.allocate(4);
    myBuffer.putInt(i);
    Proposal myProp=new Proposal("String_Node_Str",myBuffer.array());
    myClient.send(new Envelope(myProp),_tport2.getLocalAddress());
    VoteOutcome myEv=myClient.getNext(10000);
    Assert.assertFalse((myEv == null));
    Assert.assertTrue(myEv.getResult() == VoteOutcome.Reason.VALUE);
    Assert.assertTrue(myEv.getSeqNum() == i);
  }
  Thread.sleep(5000);
  System.err.println("String_Node_Str");
  _node3=new ServerDispatcher(new HowlLogger(_node3Log),Listener.NULL_LISTENER,true);
  _tport3=new TransportImpl(new FailureDetectorImpl(5000,FailureDetectorImpl.OPEN_PIN));
  _node3.init(_tport3);
  _node3.getAcceptorLearner().setRecoveryGracePeriod(1000);
  FDUtil.ensureFD(_tport3.getFD());
  System.err.println("String_Node_Str");
  Thread.sleep(Leader.LeaseDuration.get() + 1000);
  ByteBuffer myBuffer=ByteBuffer.allocate(4);
  myBuffer.putInt(67);
  Proposal myProp=new Proposal("String_Node_Str",myBuffer.array());
  myClient.send(new Envelope(myProp),_tport3.getLocalAddress());
  VoteOutcome myMsg=myClient.getNext(10000);
  Assert.assertEquals(VoteOutcome.Reason.OTHER_LEADER,myMsg.getResult());
  myBuffer=ByteBuffer.allocate(4);
  myBuffer.putInt(69);
  Proposal myProp2=new Proposal("String_Node_Str",myBuffer.array());
  System.err.println("String_Node_Str");
  myClient.send(new Envelope(myProp2),_tport3.getLocalAddress());
  myMsg=myClient.getNext(10000);
  Assert.assertTrue((VoteOutcome.Reason.VALUE == myMsg.getResult()) || (VoteOutcome.Reason.VOTE_TIMEOUT == myMsg.getResult()));
  System.err.println("String_Node_Str");
  Thread.sleep(10000);
  Assert.assertEquals("String_Node_Str",_node2.getAcceptorLearner().getLowWatermark().getSeqNum(),_node3.getAcceptorLearner().getLowWatermark().getSeqNum());
  System.err.println("String_Node_Str");
  myTransport.terminate();
}