Program: 45656
Project: 45656
Buggy source:
private static void cmdDecode(CommandLine cli) throws AndrolibException {
  ApkDecoder decoder=new ApkDecoder();
  int paraCount=cli.getArgList().size();
  String apkName=(String)cli.getArgList().get(paraCount - 1);
  File outDir=null;
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setDecodeSources(ApkDecoder.DECODE_SOURCES_NONE);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setDebugMode(true);
  }
  if (cli.hasOption("String_Node_Str")) {
    decoder.setDebugLinePrefix(cli.getOptionValue("String_Node_Str"));
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setBaksmaliDebugMode(false);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setFrameworkTag(cli.getOptionValue("String_Node_Str"));
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setForceDelete(true);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setDecodeResources(ApkDecoder.DECODE_RESOURCES_NONE);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setKeepBrokenResources(true);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setFrameworkDir(cli.getOptionValue("String_Node_Str"));
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setAnalysisMode(true,false);
  }
  if (cli.hasOption("String_Node_Str")) {
    decoder.setApi(Integer.parseInt(cli.getOptionValue("String_Node_Str")));
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    outDir=new File(cli.getOptionValue("String_Node_Str"));
    decoder.setOutDir(outDir);
  }
 else {
    String outName=apkName;
    outName=outName.endsWith("String_Node_Str") ? outName.substring(0,outName.length() - 4) : outName + "String_Node_Str";
    outName=new File(outName).getName();
    outDir=new File(outName);
    decoder.setOutDir(outDir);
  }
  decoder.setApkFile(new File(apkName));
  try {
    decoder.decode();
  }
 catch (  OutDirExistsException ex) {
    System.err.println("String_Node_Str" + outDir.getAbsolutePath() + "String_Node_Str"+ "String_Node_Str");
    System.exit(1);
  }
catch (  InFileNotFoundException ex) {
    System.err.println("String_Node_Str" + apkName + "String_Node_Str"+ "String_Node_Str");
    System.exit(1);
  }
catch (  CantFindFrameworkResException ex) {
    System.err.println("String_Node_Str" + String.valueOf(ex.getPkgId()) + "String_Node_Str"+ "String_Node_Str");
    System.exit(1);
  }
catch (  IOException ex) {
    System.err.println("String_Node_Str");
    System.exit(1);
  }
catch (  DirectoryException ex) {
    System.err.println("String_Node_Str");
    System.exit(1);
  }
}

Fixed version (ground truth):
private static void cmdDecode(CommandLine cli) throws AndrolibException {
  ApkDecoder decoder=new ApkDecoder();
  int paraCount=cli.getArgList().size();
  String apkName=(String)cli.getArgList().get(paraCount - 1);
  File outDir=null;
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setDecodeSources(ApkDecoder.DECODE_SOURCES_NONE);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setDebugMode(true);
  }
  if (cli.hasOption("String_Node_Str")) {
    decoder.setDebugLinePrefix(cli.getOptionValue("String_Node_Str"));
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setBaksmaliDebugMode(false);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setFrameworkTag(cli.getOptionValue("String_Node_Str"));
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setForceDelete(true);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setDecodeResources(ApkDecoder.DECODE_RESOURCES_NONE);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setKeepBrokenResources(true);
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setFrameworkDir(cli.getOptionValue("String_Node_Str"));
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    decoder.setAnalysisMode(true,false);
  }
  if (cli.hasOption("String_Node_Str")) {
    decoder.setApi(Integer.parseInt(cli.getOptionValue("String_Node_Str")));
  }
  if (cli.hasOption("String_Node_Str") || cli.hasOption("String_Node_Str")) {
    outDir=new File(cli.getOptionValue("String_Node_Str"));
    decoder.setOutDir(outDir);
  }
 else {
    String outName=apkName;
    outName=outName.endsWith("String_Node_Str") ? outName.substring(0,outName.length() - 4).trim() : outName + "String_Node_Str";
    outName=new File(outName).getName();
    outDir=new File(outName);
    decoder.setOutDir(outDir);
  }
  decoder.setApkFile(new File(apkName));
  try {
    decoder.decode();
  }
 catch (  OutDirExistsException ex) {
    System.err.println("String_Node_Str" + outDir.getAbsolutePath() + "String_Node_Str"+ "String_Node_Str");
    System.exit(1);
  }
catch (  InFileNotFoundException ex) {
    System.err.println("String_Node_Str" + apkName + "String_Node_Str"+ "String_Node_Str");
    System.exit(1);
  }
catch (  CantFindFrameworkResException ex) {
    System.err.println("String_Node_Str" + String.valueOf(ex.getPkgId()) + "String_Node_Str"+ "String_Node_Str");
    System.exit(1);
  }
catch (  IOException ex) {
    System.err.println("String_Node_Str");
    System.exit(1);
  }
catch (  DirectoryException ex) {
    System.err.println("String_Node_Str");
    System.exit(1);
  }
}