Program: 85771
Project: 85771
Buggy source:
public static void main(String[] args) throws Exception {
  OptionParser parser=new OptionParser();
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  walletFileName=parser.accepts("String_Node_Str").withRequiredArg().defaultsTo("String_Node_Str");
  actionFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(ActionEnum.class);
  netFlag=parser.accepts("String_Node_Str").withOptionalArg().ofType(NetworkEnum.class).defaultsTo(NetworkEnum.PROD);
  dateFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(Date.class).withValuesConvertedBy(DateConverter.datePattern("String_Node_Str"));
  waitForFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(WaitForEnum.class);
  modeFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(ValidationMode.class).defaultsTo(ValidationMode.SPV);
  OptionSpec<String> chainFlag=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  OptionSpec<String> outputFlag=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  unixtimeFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(Integer.class);
  conditionFlag=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str");
  OptionSpec<String> passwordFlag=parser.accepts("String_Node_Str").withRequiredArg();
  options=parser.parse(args);
  if (args.length == 0 || options.has("String_Node_Str") || options.nonOptionArguments().size() > 0) {
    System.out.println(HELP_TEXT);
    return;
  }
  if (options.has("String_Node_Str")) {
    BriefLogFormatter.init();
    log.info("String_Node_Str");
  }
 else {
    logger=LogManager.getLogManager().getLogger("String_Node_Str");
    logger.setLevel(Level.SEVERE);
  }
switch (netFlag.value(options)) {
case PROD:
    params=MainNetParams.get();
  chainFileName=new File("String_Node_Str");
break;
case TEST:
params=TestNet3Params.get();
chainFileName=new File("String_Node_Str");
break;
case REGTEST:
params=RegTestParams.get();
chainFileName=new File("String_Node_Str");
break;
default :
throw new RuntimeException("String_Node_Str");
}
mode=modeFlag.value(options);
if (options.has(chainFlag)) {
chainFileName=new File(chainFlag.value(options));
}
if (options.has("String_Node_Str")) {
condition=new Condition(conditionFlag.value(options));
}
if (options.has(passwordFlag)) {
password=passwordFlag.value(options);
}
ActionEnum action=ActionEnum.NONE;
if (options.has(actionFlag)) action=actionFlag.value(options);
walletFile=new File(walletFileName.value(options));
if (action == ActionEnum.CREATE) {
createWallet(options,params,walletFile);
return;
}
if (!walletFile.exists()) {
System.err.println("String_Node_Str" + walletFile + "String_Node_Str");
return;
}
if (action == ActionEnum.RAW_DUMP) {
FileInputStream stream=new FileInputStream(walletFile);
try {
Protos.Wallet proto=WalletProtobufSerializer.parseToProto(stream);
System.out.println(proto.toString());
return;
}
  finally {
stream.close();
}
}
try {
WalletProtobufSerializer loader=new WalletProtobufSerializer();
wallet=loader.readWallet(new BufferedInputStream(new FileInputStream(walletFile)));
if (!wallet.getParams().equals(params)) {
System.err.println("String_Node_Str" + wallet.getParams().getId() + "String_Node_Str"+ params.getId());
return;
}
}
 catch (Exception e) {
System.err.println("String_Node_Str" + walletFile + "String_Node_Str"+ e.getMessage());
e.printStackTrace();
return;
}
switch (action) {
case DUMP:
dumpWallet();
break;
case ADD_KEY:
addKey();
break;
case DELETE_KEY:
deleteKey();
break;
case RESET:
reset();
break;
case SYNC:
syncChain();
break;
case SEND:
if (!options.has(outputFlag)) {
System.err.println("String_Node_Str");
return;
}
BigInteger fee=BigInteger.ZERO;
if (options.has("String_Node_Str")) {
fee=Utils.toNanoCoins((String)options.valueOf("String_Node_Str"));
}
String lockTime=null;
if (options.has("String_Node_Str")) {
lockTime=(String)options.valueOf("String_Node_Str");
}
boolean allowUnconfirmed=options.has("String_Node_Str");
send(outputFlag.values(options),fee,lockTime,allowUnconfirmed);
break;
}
if (!wallet.isConsistent()) {
System.err.println("String_Node_Str");
return;
}
saveWallet(walletFile);
if (options.has(waitForFlag)) {
WaitForEnum value;
try {
value=waitForFlag.value(options);
}
 catch (Exception e) {
System.err.println("String_Node_Str" + "String_Node_Str");
return;
}
wait(value);
if (!wallet.isConsistent()) {
System.err.println("String_Node_Str");
return;
}
saveWallet(walletFile);
}
shutdown();
}

Fixed version (ground truth):
public static void main(String[] args) throws Exception {
  OptionParser parser=new OptionParser();
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  walletFileName=parser.accepts("String_Node_Str").withRequiredArg().defaultsTo("String_Node_Str");
  actionFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(ActionEnum.class);
  netFlag=parser.accepts("String_Node_Str").withOptionalArg().ofType(NetworkEnum.class).defaultsTo(NetworkEnum.PROD);
  dateFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(Date.class).withValuesConvertedBy(DateConverter.datePattern("String_Node_Str"));
  waitForFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(WaitForEnum.class);
  modeFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(ValidationMode.class).defaultsTo(ValidationMode.SPV);
  OptionSpec<String> chainFlag=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  OptionSpec<String> outputFlag=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  unixtimeFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(Integer.class);
  conditionFlag=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  OptionSpec<String> passwordFlag=parser.accepts("String_Node_Str").withRequiredArg();
  options=parser.parse(args);
  if (args.length == 0 || options.has("String_Node_Str") || options.nonOptionArguments().size() > 0) {
    System.out.println(HELP_TEXT);
    return;
  }
  if (options.has("String_Node_Str")) {
    BriefLogFormatter.init();
    log.info("String_Node_Str");
  }
 else {
    logger=LogManager.getLogManager().getLogger("String_Node_Str");
    logger.setLevel(Level.SEVERE);
  }
switch (netFlag.value(options)) {
case PROD:
    params=MainNetParams.get();
  chainFileName=new File("String_Node_Str");
break;
case TEST:
params=TestNet3Params.get();
chainFileName=new File("String_Node_Str");
break;
case REGTEST:
params=RegTestParams.get();
chainFileName=new File("String_Node_Str");
break;
default :
throw new RuntimeException("String_Node_Str");
}
mode=modeFlag.value(options);
if (options.has(chainFlag)) {
chainFileName=new File(chainFlag.value(options));
}
if (options.has("String_Node_Str")) {
condition=new Condition(conditionFlag.value(options));
}
if (options.has(passwordFlag)) {
password=passwordFlag.value(options);
}
ActionEnum action=ActionEnum.NONE;
if (options.has(actionFlag)) action=actionFlag.value(options);
walletFile=new File(walletFileName.value(options));
if (action == ActionEnum.CREATE) {
createWallet(options,params,walletFile);
return;
}
if (!walletFile.exists()) {
System.err.println("String_Node_Str" + walletFile + "String_Node_Str");
return;
}
if (action == ActionEnum.RAW_DUMP) {
FileInputStream stream=new FileInputStream(walletFile);
try {
Protos.Wallet proto=WalletProtobufSerializer.parseToProto(stream);
System.out.println(proto.toString());
return;
}
  finally {
stream.close();
}
}
try {
WalletProtobufSerializer loader=new WalletProtobufSerializer();
wallet=loader.readWallet(new BufferedInputStream(new FileInputStream(walletFile)));
if (!wallet.getParams().equals(params)) {
System.err.println("String_Node_Str" + wallet.getParams().getId() + "String_Node_Str"+ params.getId());
return;
}
}
 catch (Exception e) {
System.err.println("String_Node_Str" + walletFile + "String_Node_Str"+ e.getMessage());
e.printStackTrace();
return;
}
switch (action) {
case DUMP:
dumpWallet();
break;
case ADD_KEY:
addKey();
break;
case DELETE_KEY:
deleteKey();
break;
case RESET:
reset();
break;
case SYNC:
syncChain();
break;
case SEND:
if (!options.has(outputFlag)) {
System.err.println("String_Node_Str");
return;
}
BigInteger fee=BigInteger.ZERO;
if (options.has("String_Node_Str")) {
fee=Utils.toNanoCoins((String)options.valueOf("String_Node_Str"));
}
String lockTime=null;
if (options.has("String_Node_Str")) {
lockTime=(String)options.valueOf("String_Node_Str");
}
boolean allowUnconfirmed=options.has("String_Node_Str");
send(outputFlag.values(options),fee,lockTime,allowUnconfirmed);
break;
}
if (!wallet.isConsistent()) {
System.err.println("String_Node_Str");
return;
}
saveWallet(walletFile);
if (options.has(waitForFlag)) {
WaitForEnum value;
try {
value=waitForFlag.value(options);
}
 catch (Exception e) {
System.err.println("String_Node_Str" + "String_Node_Str");
return;
}
wait(value);
if (!wallet.isConsistent()) {
System.err.println("String_Node_Str");
return;
}
saveWallet(walletFile);
}
shutdown();
}