Program: 85633
Project: 85633
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");
  OptionSpec<String> walletFileName=parser.accepts("String_Node_Str").withRequiredArg().defaultsTo("String_Node_Str");
  seedFlag=parser.accepts("String_Node_Str").withRequiredArg();
  watchFlag=parser.accepts("String_Node_Str").withRequiredArg();
  OptionSpec<NetworkEnum> 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"));
  OptionSpec<WaitForEnum> waitForFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(WaitForEnum.class);
  OptionSpec<ValidationMode> 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();
  xpubkeysFlag=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);
  OptionSpec<String> conditionFlag=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  lookaheadSize=parser.accepts("String_Node_Str").withRequiredArg().ofType(Integer.class);
  OptionSpec<String> passwordFlag=parser.accepts("String_Node_Str").withRequiredArg();
  OptionSpec<String> paymentRequestLocation=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  options=parser.parse(args);
  final String HELP_TEXT=Resources.toString(WalletTool.class.getResource("String_Node_Str"),Charsets.UTF_8);
  if (args.length == 0 || options.has("String_Node_Str") || options.nonOptionArguments().size() < 1 || options.nonOptionArguments().contains("String_Node_Str")) {
    System.out.println(HELP_TEXT);
    return;
  }
  ActionEnum action;
  try {
    String actionStr=options.nonOptionArguments().get(0);
    actionStr=actionStr.toUpperCase().replace("String_Node_Str","String_Node_Str");
    action=ActionEnum.valueOf(actionStr);
  }
 catch (  IllegalArgumentException e) {
    System.err.println("String_Node_Str" + options.nonOptionArguments().get(0));
    return;
  }
  if (options.has("String_Node_Str")) {
    BriefLogFormatter.init();
    log.info("String_Node_Str");
  }
 else {
    java.util.logging.Logger 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);
}
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"+ walletFile+ "String_Node_Str");
return;
}
if (action == ActionEnum.RAW_DUMP) {
FileInputStream stream=new FileInputStream(walletFile);
try {
Protos.Wallet proto=WalletProtobufSerializer.parseToProto(stream);
proto=attemptHexConversion(proto);
System.out.println(proto.toString());
return;
}
  finally {
stream.close();
}
}
InputStream walletInputStream=null;
try {
WalletProtobufSerializer loader=new WalletProtobufSerializer();
if (options.has("String_Node_Str")) loader.setRequireMandatoryExtensions(false);
walletInputStream=new BufferedInputStream(new FileInputStream(walletFile));
wallet=loader.readWallet(walletInputStream);
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;
}
 finally {
if (walletInputStream != null) {
walletInputStream.close();
}
}
switch (action) {
case DUMP:
dumpWallet();
break;
case ADD_KEY:
addKey();
break;
case ADD_ADDR:
addAddr();
break;
case DELETE_KEY:
deleteKey();
break;
case RESET:
reset();
break;
case SYNC:
syncChain();
break;
case SEND:
if (options.has(paymentRequestLocation) && options.has(outputFlag)) {
System.err.println("String_Node_Str");
return;
}
 else if (options.has(outputFlag)) {
Coin fee=Coin.ZERO;
if (options.has("String_Node_Str")) {
fee=parseCoin((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);
}
 else if (options.has(paymentRequestLocation)) {
sendPaymentRequest(paymentRequestLocation.value(options),!options.has("String_Node_Str"));
}
 else {
System.err.println("String_Node_Str");
return;
}
break;
case ENCRYPT:
encrypt();
break;
case DECRYPT:
decrypt();
break;
case MARRY:
marry();
break;
case ROTATE:
rotate();
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");
  OptionSpec<String> walletFileName=parser.accepts("String_Node_Str").withRequiredArg().defaultsTo("String_Node_Str");
  seedFlag=parser.accepts("String_Node_Str").withRequiredArg();
  watchFlag=parser.accepts("String_Node_Str").withRequiredArg();
  OptionSpec<NetworkEnum> 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"));
  OptionSpec<WaitForEnum> waitForFlag=parser.accepts("String_Node_Str").withRequiredArg().ofType(WaitForEnum.class);
  OptionSpec<ValidationMode> 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();
  xpubkeysFlag=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(Long.class);
  OptionSpec<String> conditionFlag=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  lookaheadSize=parser.accepts("String_Node_Str").withRequiredArg().ofType(Integer.class);
  OptionSpec<String> passwordFlag=parser.accepts("String_Node_Str").withRequiredArg();
  OptionSpec<String> paymentRequestLocation=parser.accepts("String_Node_Str").withRequiredArg();
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  parser.accepts("String_Node_Str");
  options=parser.parse(args);
  final String HELP_TEXT=Resources.toString(WalletTool.class.getResource("String_Node_Str"),Charsets.UTF_8);
  if (args.length == 0 || options.has("String_Node_Str") || options.nonOptionArguments().size() < 1 || options.nonOptionArguments().contains("String_Node_Str")) {
    System.out.println(HELP_TEXT);
    return;
  }
  ActionEnum action;
  try {
    String actionStr=options.nonOptionArguments().get(0);
    actionStr=actionStr.toUpperCase().replace("String_Node_Str","String_Node_Str");
    action=ActionEnum.valueOf(actionStr);
  }
 catch (  IllegalArgumentException e) {
    System.err.println("String_Node_Str" + options.nonOptionArguments().get(0));
    return;
  }
  if (options.has("String_Node_Str")) {
    BriefLogFormatter.init();
    log.info("String_Node_Str");
  }
 else {
    java.util.logging.Logger 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);
}
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"+ walletFile+ "String_Node_Str");
return;
}
if (action == ActionEnum.RAW_DUMP) {
FileInputStream stream=new FileInputStream(walletFile);
try {
Protos.Wallet proto=WalletProtobufSerializer.parseToProto(stream);
proto=attemptHexConversion(proto);
System.out.println(proto.toString());
return;
}
  finally {
stream.close();
}
}
InputStream walletInputStream=null;
try {
WalletProtobufSerializer loader=new WalletProtobufSerializer();
if (options.has("String_Node_Str")) loader.setRequireMandatoryExtensions(false);
walletInputStream=new BufferedInputStream(new FileInputStream(walletFile));
wallet=loader.readWallet(walletInputStream);
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;
}
 finally {
if (walletInputStream != null) {
walletInputStream.close();
}
}
switch (action) {
case DUMP:
dumpWallet();
break;
case ADD_KEY:
addKey();
break;
case ADD_ADDR:
addAddr();
break;
case DELETE_KEY:
deleteKey();
break;
case RESET:
reset();
break;
case SYNC:
syncChain();
break;
case SEND:
if (options.has(paymentRequestLocation) && options.has(outputFlag)) {
System.err.println("String_Node_Str");
return;
}
 else if (options.has(outputFlag)) {
Coin fee=Coin.ZERO;
if (options.has("String_Node_Str")) {
fee=parseCoin((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);
}
 else if (options.has(paymentRequestLocation)) {
sendPaymentRequest(paymentRequestLocation.value(options),!options.has("String_Node_Str"));
}
 else {
System.err.println("String_Node_Str");
return;
}
break;
case ENCRYPT:
encrypt();
break;
case DECRYPT:
decrypt();
break;
case MARRY:
marry();
break;
case ROTATE:
rotate();
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();
}