Program: 45676
Project: 45676
Buggy source:
public void decode(ResTable resTable,ExtFile apkFile,File outDir) throws AndrolibException {
  Duo<ResFileDecoder,AXmlResourceParser> duo=getResFileDecoder();
  ResFileDecoder fileDecoder=duo.m1;
  ResAttrDecoder attrDecoder=duo.m2.getAttrDecoder();
  attrDecoder.setCurrentPackage(resTable.listMainPackages().iterator().next());
  Directory inApk, in=null, out;
  try {
    inApk=apkFile.getDirectory();
    out=new FileDirectory(outDir);
    LOGGER.info("String_Node_Str");
    fileDecoder.decodeManifest(inApk,"String_Node_Str",out,"String_Node_Str");
    adjust_package_manifest(resTable,outDir.getAbsolutePath() + File.separator + "String_Node_Str");
    remove_manifest_versions(outDir.getAbsolutePath() + File.separator + "String_Node_Str");
    if (inApk.containsDir("String_Node_Str")) {
      in=inApk.getDir("String_Node_Str");
    }
    out=out.createDir("String_Node_Str");
  }
 catch (  DirectoryException ex) {
    throw new AndrolibException(ex);
  }
  ExtMXSerializer xmlSerializer=getResXmlSerializer();
  for (  ResPackage pkg : resTable.listMainPackages()) {
    attrDecoder.setCurrentPackage(pkg);
    LOGGER.info("String_Node_Str");
    for (    ResResource res : pkg.listFiles()) {
      fileDecoder.decode(res,in,out);
    }
    LOGGER.info("String_Node_Str");
    for (    ResValuesFile valuesFile : pkg.listValuesFiles()) {
      generateValuesFile(valuesFile,out,xmlSerializer);
    }
    generatePublicXml(pkg,out,xmlSerializer);
    LOGGER.info("String_Node_Str");
  }
  AndrolibException decodeError=duo.m2.getFirstError();
  if (decodeError != null) {
    throw decodeError;
  }
}

Fixed version (ground truth):
public void decode(ResTable resTable,ExtFile apkFile,File outDir) throws AndrolibException {
  Duo<ResFileDecoder,AXmlResourceParser> duo=getResFileDecoder();
  ResFileDecoder fileDecoder=duo.m1;
  ResAttrDecoder attrDecoder=duo.m2.getAttrDecoder();
  attrDecoder.setCurrentPackage(resTable.listMainPackages().iterator().next());
  Directory inApk, in=null, out;
  try {
    inApk=apkFile.getDirectory();
    out=new FileDirectory(outDir);
    LOGGER.info("String_Node_Str");
    fileDecoder.decodeManifest(inApk,"String_Node_Str",out,"String_Node_Str");
    adjust_package_manifest(resTable,outDir.getAbsolutePath() + File.separator + "String_Node_Str");
    if (resTable.getAnalysisMode() == false) {
      remove_manifest_versions(outDir.getAbsolutePath() + File.separator + "String_Node_Str");
    }
    if (inApk.containsDir("String_Node_Str")) {
      in=inApk.getDir("String_Node_Str");
    }
    out=out.createDir("String_Node_Str");
  }
 catch (  DirectoryException ex) {
    throw new AndrolibException(ex);
  }
  ExtMXSerializer xmlSerializer=getResXmlSerializer();
  for (  ResPackage pkg : resTable.listMainPackages()) {
    attrDecoder.setCurrentPackage(pkg);
    LOGGER.info("String_Node_Str");
    for (    ResResource res : pkg.listFiles()) {
      fileDecoder.decode(res,in,out);
    }
    LOGGER.info("String_Node_Str");
    for (    ResValuesFile valuesFile : pkg.listValuesFiles()) {
      generateValuesFile(valuesFile,out,xmlSerializer);
    }
    generatePublicXml(pkg,out,xmlSerializer);
    LOGGER.info("String_Node_Str");
  }
  AndrolibException decodeError=duo.m2.getFirstError();
  if (decodeError != null) {
    throw decodeError;
  }
}