Program: 85745
Project: 85745
Buggy source:
private void parsePaymentRequest(Protos.PaymentRequest request) throws PaymentRequestException {
  try {
    if (request == null)     throw new PaymentRequestException("String_Node_Str");
    if (!request.hasPaymentDetailsVersion())     throw new PaymentRequestException.InvalidVersion("String_Node_Str");
    if (request.getPaymentDetailsVersion() != 1)     throw new PaymentRequestException.InvalidVersion("String_Node_Str" + request.getPaymentDetailsVersion());
    paymentRequest=request;
    if (!request.hasSerializedPaymentDetails())     throw new PaymentRequestException("String_Node_Str");
    paymentDetails=Protos.PaymentDetails.newBuilder().mergeFrom(request.getSerializedPaymentDetails()).build();
    if (paymentDetails == null)     throw new PaymentRequestException("String_Node_Str");
    if (!paymentDetails.hasNetwork())     params=MainNetParams.get();
 else     params=NetworkParameters.fromPmtProtocolID(paymentDetails.getNetwork());
    if (params == null)     throw new PaymentRequestException.InvalidNetwork("String_Node_Str" + paymentDetails.getNetwork());
    if (paymentDetails.getOutputsCount() < 1)     throw new PaymentRequestException.InvalidOutputs("String_Node_Str");
    for (    Protos.Output output : paymentDetails.getOutputsList()) {
      if (output.hasAmount())       totalValue=totalValue.add(BigInteger.valueOf(output.getAmount()));
    }
    if (totalValue.compareTo(BigInteger.valueOf(Long.MAX_VALUE)) > 0)     throw new PaymentRequestException.InvalidOutputs("String_Node_Str");
  }
 catch (  InvalidProtocolBufferException e) {
    throw new PaymentRequestException(e);
  }
}

Fixed version (ground truth):
private void parsePaymentRequest(Protos.PaymentRequest request) throws PaymentRequestException {
  try {
    if (request == null)     throw new PaymentRequestException("String_Node_Str");
    if (!request.hasPaymentDetailsVersion())     throw new PaymentRequestException.InvalidVersion("String_Node_Str");
    if (request.getPaymentDetailsVersion() != 1)     throw new PaymentRequestException.InvalidVersion("String_Node_Str" + request.getPaymentDetailsVersion());
    paymentRequest=request;
    if (!request.hasSerializedPaymentDetails())     throw new PaymentRequestException("String_Node_Str");
    paymentDetails=Protos.PaymentDetails.newBuilder().mergeFrom(request.getSerializedPaymentDetails()).build();
    if (paymentDetails == null)     throw new PaymentRequestException("String_Node_Str");
    if (!paymentDetails.hasNetwork())     params=MainNetParams.get();
 else     params=NetworkParameters.fromPmtProtocolID(paymentDetails.getNetwork());
    if (params == null)     throw new PaymentRequestException.InvalidNetwork("String_Node_Str" + paymentDetails.getNetwork());
    if (paymentDetails.getOutputsCount() < 1)     throw new PaymentRequestException.InvalidOutputs("String_Node_Str");
    for (    Protos.Output output : paymentDetails.getOutputsList()) {
      if (output.hasAmount())       totalValue=totalValue.add(BigInteger.valueOf(output.getAmount()));
    }
    if (totalValue.compareTo(NetworkParameters.MAX_MONEY) > 0)     throw new PaymentRequestException.InvalidOutputs("String_Node_Str");
  }
 catch (  InvalidProtocolBufferException e) {
    throw new PaymentRequestException(e);
  }
}