Program: 99035
Project: 99035
Buggy source:
private TxnPacket receiveTxnProposal(TxnPacket pkt){
  String request=pkt.getRequest();
  try {
    UUID txnID=pkt.getID();
    if (participantTxns.containsKey(txnID)) {
      writeError("String_Node_Str");
      fail();
    }
    writeOutput("String_Node_Str" + txnID + "String_Node_Str");
    TxnState txnState=new TxnState(txnID,pkt.getParticipants(),pkt.getRequest(),pkt.getPayload());
    participantTxns.put(txnID,txnState);
    Class<? extends TransactionNode> me=this.getClass();
    Method handler=me.getDeclaredMethod(PROPOSAL_PREFIX + request,java.lang.String.class,java.util.UUID.class);
    Boolean accept=(Boolean)handler.invoke(me,pkt.getPayload(),txnState.txnID);
    if (accept) {
      txnLogger.logAccept(txnState);
      txnState.status=TxnState.TxnStatus.WAITING;
      Callback decisionTimeout=createCallback("String_Node_Str",new String[]{UUID.class.getName()},new Object[]{pkt.getID()});
      addTimeout(decisionTimeout,DECISION_TIMEOUT);
      return TxnPacket.getAcceptPacket(this,pkt.getID());
    }
 else {
      txnLogger.logReject(txnState);
      txnState.status=TxnState.TxnStatus.ABORTED;
      recieveTxnAbort(pkt);
      return TxnPacket.getRejectPacket(this,pkt.getID(),"String_Node_Str");
    }
  }
 catch (  NoSuchMethodException e) {
    writeError("String_Node_Str" + request);
    return TxnPacket.getRejectPacket(this,pkt.getID(),"String_Node_Str");
  }
catch (  IllegalArgumentException e) {
    writeError("String_Node_Str" + request + "String_Node_Str");
    return TxnPacket.getRejectPacket(this,pkt.getID(),"String_Node_Str");
  }
catch (  Exception e) {
    writeError("String_Node_Str" + request + "String_Node_Str"+ e.getMessage());
    this.fail();
    return null;
  }
}

Fixed version (ground truth):
private TxnPacket receiveTxnProposal(TxnPacket pkt){
  String request=pkt.getRequest();
  try {
    UUID txnID=pkt.getID();
    if (participantTxns.containsKey(txnID)) {
      writeError("String_Node_Str");
      fail();
    }
    writeOutput("String_Node_Str" + txnID + "String_Node_Str");
    TxnState txnState=new TxnState(txnID,pkt.getParticipants(),pkt.getRequest(),pkt.getPayload());
    participantTxns.put(txnID,txnState);
    Class<? extends TransactionNode> me=this.getClass();
    Method handler=me.getDeclaredMethod(PROPOSAL_PREFIX + request,java.util.UUID.class,java.lang.String.class);
    Boolean accept=(Boolean)handler.invoke(this,txnState.txnID,pkt.getPayload());
    if (accept) {
      txnLogger.logAccept(txnState);
      txnState.status=TxnState.TxnStatus.WAITING;
      Callback decisionTimeout=createCallback("String_Node_Str",new String[]{UUID.class.getName()},new Object[]{pkt.getID()});
      addTimeout(decisionTimeout,DECISION_TIMEOUT);
      return TxnPacket.getAcceptPacket(this,pkt.getID());
    }
 else {
      txnLogger.logReject(txnState);
      txnState.status=TxnState.TxnStatus.ABORTED;
      recieveTxnAbort(pkt);
      return TxnPacket.getRejectPacket(this,pkt.getID(),"String_Node_Str");
    }
  }
 catch (  NoSuchMethodException e) {
    e.printStackTrace();
    writeError("String_Node_Str" + request);
    return TxnPacket.getRejectPacket(this,pkt.getID(),"String_Node_Str");
  }
catch (  IllegalArgumentException e) {
    e.printStackTrace();
    writeError("String_Node_Str" + request + "String_Node_Str");
    return TxnPacket.getRejectPacket(this,pkt.getID(),"String_Node_Str");
  }
catch (  Exception e) {
    e.printStackTrace();
    writeError("String_Node_Str" + request + "String_Node_Str"+ e.getMessage());
    this.fail();
    return null;
  }
}