Program: 57771
Project: 57771
Buggy source:
/** 
 * Converts a purchase to our transaction object. 
 */
Transaction transaction(SKPaymentTransaction t){
  SKPayment payment=t.getPayment();
  String productIdentifier=payment.getProductIdentifier();
  SKProduct product=getProductByStoreIdentifier(productIdentifier);
  if (product == null) {
    System.err.println("String_Node_Str" + productIdentifier);
    return null;
  }
  Transaction transaction=new Transaction();
  transaction.setIdentifier(config.getOfferForStore(PurchaseManagerConfig.STORE_NAME_IOS_APPLE,payment.getProductIdentifier()).getIdentifier());
  transaction.setStoreName(PurchaseManagerConfig.STORE_NAME_IOS_APPLE);
  transaction.setOrderId(t.getTransactionIdentifier());
  transaction.setPurchaseTime(t.getTransactionDate().toDate());
  transaction.setPurchaseText("String_Node_Str" + product.getLocalizedTitle());
  transaction.setPurchaseCost((int)Math.round(product.getPrice().doubleValue() * 100));
  transaction.setPurchaseCostCurrency(product.getPriceLocale().getCurrencyCode());
  transaction.setReversalTime(null);
  transaction.setReversalText(null);
  if (payment.getRequestData() != null) {
    final String transactionData;
    if (Foundation.getMajorSystemVersion() >= 7) {
      transactionData=payment.getRequestData().toBase64EncodedString(NSDataBase64EncodingOptions.None);
    }
 else {
      transactionData=Base64.encode(payment.getRequestData().getBytes());
    }
    transaction.setTransactionData(transactionData);
  }
 else {
    transaction.setTransactionData(null);
  }
  transaction.setTransactionDataSignature(null);
  return transaction;
}

Fixed version (ground truth):
/** 
 * Converts a purchase to our transaction object. 
 */
Transaction transaction(SKPaymentTransaction t){
  SKPayment payment=t.getPayment();
  String productIdentifier=payment.getProductIdentifier();
  SKProduct product=getProductByStoreIdentifier(productIdentifier);
  if (product == null) {
    System.err.println("String_Node_Str" + productIdentifier);
    return null;
  }
  Transaction transaction=new Transaction();
  transaction.setIdentifier(config.getOfferForStore(PurchaseManagerConfig.STORE_NAME_IOS_APPLE,payment.getProductIdentifier()).getIdentifier());
  transaction.setStoreName(PurchaseManagerConfig.STORE_NAME_IOS_APPLE);
  transaction.setOrderId(t.getTransactionIdentifier());
  transaction.setPurchaseTime(t.getTransactionDate().toDate());
  transaction.setPurchaseText("String_Node_Str" + product.getLocalizedTitle());
  transaction.setPurchaseCost((int)Math.round(product.getPrice().doubleValue() * 100));
  transaction.setPurchaseCostCurrency(product.getPriceLocale().getCurrencyCode());
  transaction.setReversalTime(null);
  transaction.setReversalText(null);
  if (payment.getRequestData() != null) {
    final String transactionData;
    if (Foundation.getMajorSystemVersion() >= 7) {
      transactionData=payment.getRequestData().toBase64EncodedString(NSDataBase64EncodingOptions.None);
    }
 else {
      transactionData=Base64.encode(payment.getRequestData().getBytes());
    }
    transaction.setTransactionData(transactionData);
  }
 else {
    transaction.setTransactionData(null);
  }
  String transactionDataSignature;
  try {
    Selector sel=Selector.register("String_Node_Str");
    if (ObjCRuntime.class_respondsToSelector(t.getHandle(),sel.getHandle())) {
      NSData transactionReceipt=ObjCObject.toObjCObject(NSData.class,ObjCRuntime.ptr_objc_msgSend(t.getHandle(),sel.getHandle()),0);
      transactionDataSignature=transactionReceipt.toBase64EncodedString(NSDataBase64EncodingOptions.None);
    }
 else {
      transactionDataSignature=null;
      log(LOGTYPELOG,"String_Node_Str");
    }
  }
 catch (  Throwable e) {
    log(LOGTYPELOG,"String_Node_Str",e);
    transactionDataSignature=null;
  }
  transaction.setTransactionDataSignature(transactionDataSignature);
  return transaction;
}