Program: 189191
Project: 189191
Buggy source:
protected void loadFromInfoFile(File infoFile){
  BufferedReader in=null;
  try {
    if (infoFile != null && infoFile.exists()) {
      Manager.getLogger(getClass().getName()).info("String_Node_Str" + infoFile.getPath());
      boolean foundShortString=false;
      platform=XCODE_PLATFORM_MACOSX;
      String line;
      in=new BufferedReader(new InputStreamReader(new FileInputStream(infoFile),"String_Node_Str"));
      while ((line=in.readLine()) != null) {
        if (line.contains("String_Node_Str")) {
          foundShortString=true;
          String versionString=in.readLine();
          int start=versionString.indexOf('>') + 1;
          int stop=versionString.indexOf('<',start);
          this.version=versionString.substring(start,stop);
        }
 else         if (line.contains("String_Node_Str")) {
          if (!foundShortString) {
            String versionString=in.readLine();
            int start=versionString.indexOf('>') + 1;
            int stop=versionString.indexOf('<',start);
            this.version=versionString.substring(start,stop);
          }
        }
 else         if (line.contains("String_Node_Str")) {
          String bundleString=in.readLine();
          int start=bundleString.indexOf('>') + 1;
          int stop=bundleString.indexOf('<',start);
          this.bundleId=bundleString.substring(start,stop);
        }
 else         if (line.contains("String_Node_Str")) {
          platform=XCODE_PLATFORM_IOS;
        }
      }
    }
  }
 catch (  IOException e) {
    Manager.getLogger(getClass().getName()).error("String_Node_Str",e);
  }
 finally {
    if (in != null) {
      IOUtil.close(in);
    }
  }
}

Fixed version (ground truth):
protected void loadFromInfoFile(File infoFile,Map<String,String> variables){
  BufferedReader in=null;
  try {
    if (infoFile != null && infoFile.exists()) {
      Manager.getLogger(getClass().getName()).info("String_Node_Str" + infoFile.getPath());
      boolean foundShortString=false;
      platform=XCODE_PLATFORM_MACOSX;
      String line;
      in=new BufferedReader(new InputStreamReader(new FileInputStream(infoFile),"String_Node_Str"));
      while ((line=in.readLine()) != null) {
        if (line.contains("String_Node_Str")) {
          foundShortString=true;
          String versionString=in.readLine();
          int start=versionString.indexOf('>') + 1;
          int stop=versionString.indexOf('<',start);
          this.version=replaceVariables(versionString.substring(start,stop),variables);
        }
 else         if (line.contains("String_Node_Str")) {
          if (!foundShortString) {
            String versionString=in.readLine();
            int start=versionString.indexOf('>') + 1;
            int stop=versionString.indexOf('<',start);
            this.version=replaceVariables(versionString.substring(start,stop),variables);
          }
        }
 else         if (line.contains("String_Node_Str")) {
          String bundleString=in.readLine();
          int start=bundleString.indexOf('>') + 1;
          int stop=bundleString.indexOf('<',start);
          this.bundleId=replaceVariables(bundleString.substring(start,stop),variables);
        }
 else         if (line.contains("String_Node_Str")) {
          platform=XCODE_PLATFORM_IOS;
        }
      }
    }
  }
 catch (  IOException e) {
    Manager.getLogger(getClass().getName()).error("String_Node_Str",e);
  }
 finally {
    if (in != null) {
      IOUtil.close(in);
    }
  }
}