Program: 85772
Project: 85772
Buggy source:
private static void send(List<String> outputs,BigInteger fee,String lockTimeStr,boolean allowUnconfirmed){
  try {
    Transaction t=new Transaction(params);
    for (    String spec : outputs) {
      String[] parts=spec.split("String_Node_Str");
      if (parts.length != 2) {
        System.err.println("String_Node_Str");
        return;
      }
      String destination=parts[0];
      try {
        BigInteger value=Utils.toNanoCoins(parts[1]);
        if (destination.startsWith("String_Node_Str") && (destination.length() == 130 || destination.length() == 66)) {
          BigInteger pubKey=new BigInteger(destination,16);
          ECKey key=new ECKey(null,pubKey);
          t.addOutput(value,key);
        }
 else {
          Address addr=new Address(params,destination);
          t.addOutput(value,addr);
        }
      }
 catch (      WrongNetworkException e) {
        System.err.println("String_Node_Str" + parts[0]);
        return;
      }
catch (      AddressFormatException e) {
        System.err.println("String_Node_Str" + parts[0]);
        return;
      }
catch (      NumberFormatException e) {
        System.err.println("String_Node_Str" + parts[1]);
      }
    }
    Wallet.SendRequest req=Wallet.SendRequest.forTx(t);
    if (t.getOutputs().size() == 1 && t.getOutput(0).getValue().equals(wallet.getBalance())) {
      log.info("String_Node_Str");
      req.emptyWallet=true;
    }
    req.fee=fee;
    if (allowUnconfirmed) {
      wallet.allowSpendingUnconfirmedTransactions();
    }
    if (password != null) {
      if (!wallet.checkPassword(password)) {
        System.err.println("String_Node_Str");
        return;
      }
      req.aesKey=wallet.getKeyCrypter().deriveKey(password);
    }
    if (!wallet.completeTx(req)) {
      System.err.println("String_Node_Str" + Utils.bitcoinValueToFriendlyString(wallet.getBalance()));
      return;
    }
    try {
      if (lockTimeStr != null) {
        t.setLockTime(Transaction.parseLockTimeStr(lockTimeStr));
        t.getInputs().get(0).setSequenceNumber(0);
        t.signInputs(Transaction.SigHash.ALL,wallet);
      }
    }
 catch (    ParseException e) {
      System.err.println("String_Node_Str" + lockTimeStr);
      return;
    }
catch (    ScriptException e) {
      throw new RuntimeException(e);
    }
catch (    KeyCrypterException e) {
      throw new RuntimeException(e);
    }
    t=req.tx;
    setup();
    peers.startAndWait();
    peers.broadcastTransaction(t).get();
    if (peers.getMinBroadcastConnections() == 1) {
      Thread.sleep(5000);
    }
    System.out.println(t.getHashAsString());
  }
 catch (  BlockStoreException e) {
    throw new RuntimeException(e);
  }
catch (  KeyCrypterException e) {
    throw new RuntimeException(e);
  }
catch (  InterruptedException e) {
    throw new RuntimeException(e);
  }
catch (  ExecutionException e) {
    throw new RuntimeException(e);
  }
}

Fixed version (ground truth):
private static void send(List<String> outputs,BigInteger fee,String lockTimeStr,boolean allowUnconfirmed) throws VerificationException {
  try {
    Transaction t=new Transaction(params);
    for (    String spec : outputs) {
      String[] parts=spec.split("String_Node_Str");
      if (parts.length != 2) {
        System.err.println("String_Node_Str");
        return;
      }
      String destination=parts[0];
      try {
        BigInteger value=Utils.toNanoCoins(parts[1]);
        if (destination.startsWith("String_Node_Str") && (destination.length() == 130 || destination.length() == 66)) {
          BigInteger pubKey=new BigInteger(destination,16);
          ECKey key=new ECKey(null,pubKey);
          t.addOutput(value,key);
        }
 else {
          Address addr=new Address(params,destination);
          t.addOutput(value,addr);
        }
      }
 catch (      WrongNetworkException e) {
        System.err.println("String_Node_Str" + parts[0]);
        return;
      }
catch (      AddressFormatException e) {
        System.err.println("String_Node_Str" + parts[0]);
        return;
      }
catch (      NumberFormatException e) {
        System.err.println("String_Node_Str" + parts[1]);
      }
    }
    Wallet.SendRequest req=Wallet.SendRequest.forTx(t);
    if (t.getOutputs().size() == 1 && t.getOutput(0).getValue().equals(wallet.getBalance())) {
      log.info("String_Node_Str");
      req.emptyWallet=true;
    }
    req.fee=fee;
    if (allowUnconfirmed) {
      wallet.allowSpendingUnconfirmedTransactions();
    }
    if (password != null) {
      if (!wallet.checkPassword(password)) {
        System.err.println("String_Node_Str");
        return;
      }
      req.aesKey=wallet.getKeyCrypter().deriveKey(password);
    }
    if (!wallet.completeTx(req)) {
      System.err.println("String_Node_Str" + Utils.bitcoinValueToFriendlyString(wallet.getBalance()));
      return;
    }
    try {
      if (lockTimeStr != null) {
        t.setLockTime(Transaction.parseLockTimeStr(lockTimeStr));
        t.getInputs().get(0).setSequenceNumber(0);
        t.signInputs(Transaction.SigHash.ALL,wallet);
      }
    }
 catch (    ParseException e) {
      System.err.println("String_Node_Str" + lockTimeStr);
      return;
    }
catch (    ScriptException e) {
      throw new RuntimeException(e);
    }
catch (    KeyCrypterException e) {
      throw new RuntimeException(e);
    }
    t=req.tx;
    System.out.println(t.getHashAsString());
    if (options.has("String_Node_Str")) {
      wallet.commitTx(t);
      return;
    }
    setup();
    peers.startAndWait();
    peers.broadcastTransaction(t).get();
    if (peers.getMinBroadcastConnections() == 1) {
      Thread.sleep(5000);
    }
  }
 catch (  BlockStoreException e) {
    throw new RuntimeException(e);
  }
catch (  KeyCrypterException e) {
    throw new RuntimeException(e);
  }
catch (  InterruptedException e) {
    throw new RuntimeException(e);
  }
catch (  ExecutionException e) {
    throw new RuntimeException(e);
  }
}