Program: 91037
Project: 91037
Buggy source:
@Subscribe public void spvSendFundsResult(SpvSendFundsResult event){
  if (!event.operationId.equals(lastOperationId)) {
    return;
  }
  if (!event.isSuccess) {
    new AlertDialog.Builder(getActivity()).setTitle(Html.fromHtml("String_Node_Str" + getString(R.string.error) + "String_Node_Str")).setMessage("String_Node_Str" + event.message).setNegativeButton(R.string.close,null).setOnDismissListener(new DialogInterface.OnDismissListener(){
      @Override public void onDismiss(      DialogInterface dialogInterface){
        getActivity().finish();
      }
    }
).create().show();
    return;
  }
  final Order order=new Order();
  order.transactionId=event.txHash;
  order.exchangingAmount=decimalFormat.format(amount);
  order.exchangingCurrency=CurrencyValue.BCH;
  order.receivingAddress=toAccount.getReceivingAddress().get().toString();
  order.receivingAmount=decimalFormat.format(offer.amountTo);
  order.receivingCurrency=CurrencyValue.BTC;
  order.timestamp=SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG,SimpleDateFormat.LONG,Locale.ENGLISH).format(new Date());
  new AlertDialog.Builder(getActivity()).setTitle(Html.fromHtml("String_Node_Str" + getString(R.string.success) + "String_Node_Str")).setMessage(Html.fromHtml(getString(R.string.exchange_order_placed_dialog,order.timestamp,order.transactionId,order.exchangingAmount,order.receivingAmount))).setPositiveButton(R.string.save_receipt,new DialogInterface.OnClickListener(){
    @Override public void onClick(    DialogInterface dialogInterface,    int i){
      String pdf=new BCHExchangeReceiptBuilder().setTransactionId(order.transactionId).setDate(order.timestamp).setReceivingAmount(order.receivingAmount + "String_Node_Str" + order.receivingCurrency).setReceivingAddress(order.receivingAddress).setSpendingAmount(order.exchangingAmount + "String_Node_Str" + order.exchangingCurrency).setSpendingAccountLabel(mbwManager.getMetadataStorage().getLabelByAccount(fromAccount.getId())).build();
      String filePart=new SimpleDateFormat("String_Node_Str",Locale.US).format(new Date());
      File pdfFile=new File(getActivity().getExternalFilesDir(DIRECTORY_DOWNLOADS),"String_Node_Str" + filePart + "String_Node_Str");
      try {
        OutputStream pdfStream=new FileOutputStream(pdfFile);
        pdfStream.write(pdf.getBytes("String_Node_Str"));
        pdfStream.close();
      }
 catch (      IOException e) {
        Log.e(TAG,"String_Node_Str",e);
      }
      DownloadManager downloadManager=(DownloadManager)getActivity().getSystemService(DOWNLOAD_SERVICE);
      downloadManager.addCompletedDownload(pdfFile.getName(),pdfFile.getName(),true,"String_Node_Str",pdfFile.getAbsolutePath(),pdfFile.length(),true);
    }
  }
).setNegativeButton(R.string.close,null).setOnDismissListener(new DialogInterface.OnDismissListener(){
    @Override public void onDismiss(    DialogInterface dialogInterface){
      getActivity().finish();
    }
  }
).create().show();
  try {
    ExchangeLoggingService.exchangeLoggingService.saveOrder(order).enqueue(new Callback<Void>(){
      @Override public void onResponse(      Call<Void> call,      Response<Void> response){
        Log.d(TAG,"String_Node_Str");
      }
      @Override public void onFailure(      Call<Void> call,      Throwable t){
        Log.d(TAG,"String_Node_Str",t);
      }
    }
);
  }
 catch (  RetrofitError e) {
    Log.e(TAG,"String_Node_Str",e);
  }
}

Fixed version (ground truth):
@Subscribe public void spvSendFundsResult(SpvSendFundsResult event){
  if (progressDialog != null && progressDialog.isShowing()) {
    progressDialog.dismiss();
  }
  if (!event.operationId.equals(lastOperationId)) {
    return;
  }
  if (!event.isSuccess) {
    new AlertDialog.Builder(getActivity()).setTitle(Html.fromHtml("String_Node_Str" + getString(R.string.error) + "String_Node_Str")).setMessage("String_Node_Str" + event.message).setNegativeButton(R.string.close,null).setOnDismissListener(new DialogInterface.OnDismissListener(){
      @Override public void onDismiss(      DialogInterface dialogInterface){
        getActivity().finish();
      }
    }
).create().show();
    return;
  }
  final Order order=new Order();
  order.transactionId=event.txHash;
  order.exchangingAmount=decimalFormat.format(amount);
  order.exchangingCurrency=CurrencyValue.BCH;
  order.receivingAddress=toAccount.getReceivingAddress().get().toString();
  order.receivingAmount=decimalFormat.format(offer.amountTo);
  order.receivingCurrency=CurrencyValue.BTC;
  order.timestamp=SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.LONG,SimpleDateFormat.LONG,Locale.ENGLISH).format(new Date());
  new AlertDialog.Builder(getActivity()).setTitle(Html.fromHtml("String_Node_Str" + getString(R.string.success) + "String_Node_Str")).setMessage(Html.fromHtml(getString(R.string.exchange_order_placed_dialog,order.timestamp,order.transactionId,order.exchangingAmount,order.receivingAmount))).setPositiveButton(R.string.save_receipt,new DialogInterface.OnClickListener(){
    @Override public void onClick(    DialogInterface dialogInterface,    int i){
      String pdf=new BCHExchangeReceiptBuilder().setTransactionId(order.transactionId).setDate(order.timestamp).setReceivingAmount(order.receivingAmount + "String_Node_Str" + order.receivingCurrency).setReceivingAddress(order.receivingAddress).setSpendingAmount(order.exchangingAmount + "String_Node_Str" + order.exchangingCurrency).setSpendingAccountLabel(mbwManager.getMetadataStorage().getLabelByAccount(fromAccount.getId())).build();
      String filePart=new SimpleDateFormat("String_Node_Str",Locale.US).format(new Date());
      File pdfFile=new File(getActivity().getExternalFilesDir(DIRECTORY_DOWNLOADS),"String_Node_Str" + filePart + "String_Node_Str");
      try {
        OutputStream pdfStream=new FileOutputStream(pdfFile);
        pdfStream.write(pdf.getBytes("String_Node_Str"));
        pdfStream.close();
      }
 catch (      IOException e) {
        Log.e(TAG,"String_Node_Str",e);
      }
      DownloadManager downloadManager=(DownloadManager)getActivity().getSystemService(DOWNLOAD_SERVICE);
      downloadManager.addCompletedDownload(pdfFile.getName(),pdfFile.getName(),true,"String_Node_Str",pdfFile.getAbsolutePath(),pdfFile.length(),true);
    }
  }
).setNegativeButton(R.string.close,null).setOnDismissListener(new DialogInterface.OnDismissListener(){
    @Override public void onDismiss(    DialogInterface dialogInterface){
      getActivity().finish();
    }
  }
).create().show();
  try {
    ExchangeLoggingService.exchangeLoggingService.saveOrder(order).enqueue(new Callback<Void>(){
      @Override public void onResponse(      Call<Void> call,      Response<Void> response){
        Log.d(TAG,"String_Node_Str");
      }
      @Override public void onFailure(      Call<Void> call,      Throwable t){
        Log.d(TAG,"String_Node_Str",t);
      }
    }
);
  }
 catch (  RetrofitError e) {
    Log.e(TAG,"String_Node_Str",e);
  }
}