Program: 113495
Project: 113495
Buggy source:
/** 
 * Handles paxos accept (vote) messages.
 * @param msg incomming message
 * @return a response message or null
 */
public FleaseMessage handleACCEPT(FleaseMessage msg){
  final FleaseAcceptorCell cc=getCell(msg);
  cc.touch();
  if ((cc.getPrepared() != null) && (cc.getPrepared().after(msg))) {
    if (Logging.isDebug()) {
      final String preped=(cc.getPrepared() == null) ? ProposalNumber.EMPTY_PROPOSAL_NUMBER.toString() : cc.getPrepared().getProposalNo().toString();
      Logging.logMessage(Logging.LEVEL_DEBUG,Category.replication,this,"String_Node_Str" + preped + "String_Node_Str"+ msg.getProposalNo()+ "String_Node_Str");
    }
    FleaseMessage tmp=new FleaseMessage(FleaseMessage.MsgType.MSG_ACCEPT_NACK,msg);
    tmp.setSendTimestamp(TimeSync.getGlobalTime());
    tmp.setLeaseHolder(null);
    tmp.setLeaseTimeout(0);
    tmp.setPrevProposalNo(cc.getPrepared().getProposalNo());
    return tmp;
  }
 else {
    if (Logging.isDebug()) {
      final String preped=(cc.getPrepared() == null) ? ProposalNumber.EMPTY_PROPOSAL_NUMBER.toString() : cc.getPrepared().getProposalNo().toString();
      final String acced=(cc.getAccepted() == null) ? ProposalNumber.EMPTY_PROPOSAL_NUMBER.toString() : cc.getAccepted().getProposalNo() + "String_Node_Str" + cc.getAccepted().getLeaseHolder()+ "String_Node_Str"+ cc.getAccepted().getLeaseTimeout();
      Logging.logMessage(Logging.LEVEL_DEBUG,Category.replication,this,"String_Node_Str" + preped + "String_Node_Str"+ acced+ "String_Node_Str"+ msg.getProposalNo()+ "String_Node_Str"+ msg.getLeaseHolder()+ "String_Node_Str"+ msg.getLeaseTimeout());
    }
    assert(msg.getLeaseHolder() != null);
    cc.setAccepted(msg);
    cc.setPrepared(msg);
    FleaseMessage tmp=new FleaseMessage(FleaseMessage.MsgType.MSG_ACCEPT_ACK,msg);
    tmp.setSendTimestamp(TimeSync.getGlobalTime());
    return tmp;
  }
}

Fixed version (ground truth):
/** 
 * Handles paxos accept (vote) messages.
 * @param msg incomming message
 * @return a response message or null
 */
public FleaseMessage handleACCEPT(FleaseMessage msg){
  final FleaseAcceptorCell cc=getCell(msg);
  cc.touch();
  if ((cc.getPrepared() != null) && (cc.getPrepared().after(msg))) {
    if (Logging.isDebug() && config.isDebugPrintMessages()) {
      final String preped=(cc.getPrepared() == null) ? ProposalNumber.EMPTY_PROPOSAL_NUMBER.toString() : cc.getPrepared().getProposalNo().toString();
      Logging.logMessage(Logging.LEVEL_DEBUG,Category.replication,this,"String_Node_Str" + preped + "String_Node_Str"+ msg.getProposalNo()+ "String_Node_Str");
    }
    FleaseMessage tmp=new FleaseMessage(FleaseMessage.MsgType.MSG_ACCEPT_NACK,msg);
    tmp.setSendTimestamp(TimeSync.getGlobalTime());
    tmp.setLeaseHolder(null);
    tmp.setLeaseTimeout(0);
    tmp.setPrevProposalNo(cc.getPrepared().getProposalNo());
    return tmp;
  }
 else {
    if (Logging.isDebug() && config.isDebugPrintMessages()) {
      final String preped=(cc.getPrepared() == null) ? ProposalNumber.EMPTY_PROPOSAL_NUMBER.toString() : cc.getPrepared().getProposalNo().toString();
      final String acced=(cc.getAccepted() == null) ? ProposalNumber.EMPTY_PROPOSAL_NUMBER.toString() : cc.getAccepted().getProposalNo() + "String_Node_Str" + cc.getAccepted().getLeaseHolder()+ "String_Node_Str"+ cc.getAccepted().getLeaseTimeout();
      Logging.logMessage(Logging.LEVEL_DEBUG,Category.replication,this,"String_Node_Str" + preped + "String_Node_Str"+ acced+ "String_Node_Str"+ msg.getProposalNo()+ "String_Node_Str"+ msg.getLeaseHolder()+ "String_Node_Str"+ msg.getLeaseTimeout());
    }
    assert(msg.getLeaseHolder() != null);
    cc.setAccepted(msg);
    cc.setPrepared(msg);
    FleaseMessage tmp=new FleaseMessage(FleaseMessage.MsgType.MSG_ACCEPT_ACK,msg);
    tmp.setSendTimestamp(TimeSync.getGlobalTime());
    return tmp;
  }
}