Program: 85927
Project: 85927
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);
  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();
  conditionFlag=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=NetworkParameters.prodNet();
  chainFileName=new File("String_Node_Str");
discovery=new DnsDiscovery(params);
break;
case TEST:
params=NetworkParameters.testNet();
chainFileName=new File("String_Node_Str");
discovery=new IrcDiscovery("String_Node_Str");
break;
default :
throw new RuntimeException("String_Node_Str");
}
if (options.has(chainFlag)) {
chainFileName=new File(chainFlag.value(options));
}
if (options.has("String_Node_Str")) {
condition=new Condition(conditionFlag.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 {
wallet=Wallet.loadFromFile(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;
}
send(outputFlag.values(options));
break;
}
if (!wallet.isConsistent()) {
System.err.println("String_Node_Str");
return;
}
saveWallet(walletFile);
if (options.has(waitForFlag)) {
wait(waitForFlag.value(options));
if (!wallet.isConsistent()) {
System.err.println("String_Node_Str");
return;
}
saveWallet(walletFile);
}
 else {
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);
  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();
  conditionFlag=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=NetworkParameters.prodNet();
  chainFileName=new File("String_Node_Str");
discovery=new DnsDiscovery(params);
break;
case TEST:
params=NetworkParameters.testNet();
chainFileName=new File("String_Node_Str");
discovery=new IrcDiscovery("String_Node_Str");
break;
default :
throw new RuntimeException("String_Node_Str");
}
if (options.has(chainFlag)) {
chainFileName=new File(chainFlag.value(options));
}
if (options.has("String_Node_Str")) {
condition=new Condition(conditionFlag.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 {
wallet=Wallet.loadFromFile(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;
}
send(outputFlag.values(options));
break;
}
if (!wallet.isConsistent()) {
System.err.println("String_Node_Str");
return;
}
saveWallet(walletFile);
if (options.has(waitForFlag)) {
wait(waitForFlag.value(options));
if (!wallet.isConsistent()) {
System.err.println("String_Node_Str");
return;
}
saveWallet(walletFile);
}
shutdown();
}