output: #fixed code
                                  Parser(Parser p, String text) {
          this.logger = p.logger;
          this.properties = p.properties;
          this.infoMap = p.infoMap;
          this.tokens = new TokenIndexer(infoMap, new Tokenizer(text).tokenize());
          this.lineSeparator = p.lineSeparator;
      }
input: #vulnerable code 
                                  void parse(File outputFile, Context context, String[] includePath, String ... includes) throws IOException, ParserException {
          ArrayList<Token> tokenList = new ArrayList<Token>();
          for (String include : includes) {
              File file = null;
              String filename = include;
              if (filename.startsWith("<") && filename.endsWith(">")) {
                  filename = filename.substring(1, filename.length() - 1);
              } else {
                  File f = new File(filename);
                  if (f.exists()) {
                      file = f;
                  }
              }
              if (file == null && includePath != null) {
                  for (String path : includePath) {
                      File f = new File(path, filename);
                      if (f.exists()) {
                          file = f;
                          break;
                      }
                  }
              }
              if (file == null) {
                  file = new File(filename);
              }
              Info info = infoMap.getFirst(file.getName());
              if (info != null && info.skip) {
                  continue;
              } else if (!file.exists()) {
                  throw new FileNotFoundException("Could not parse \"" + file + "\": File does not exist");
              }
              logger.info("Parsing " + file);
              Token token = new Token();
              token.type = Token.COMMENT;
              token.value = "\n// Parsed from " + include + "\n\n";
              tokenList.add(token);
              Tokenizer tokenizer = new Tokenizer(file);
              while (!(token = tokenizer.nextToken()).isEmpty()) {
                  if (token.type == -1) {
                      token.type = Token.COMMENT;
                  }
                  tokenList.add(token);
              }
              if (lineSeparator == null) {
                  lineSeparator = tokenizer.lineSeparator;
              }
              tokenizer.close();
              token = new Token();
              token.type = Token.COMMENT;
              token.spacing = "\n";
              tokenList.add(token);
          }
          tokens = new TokenIndexer(infoMap, tokenList.toArray(new Token[tokenList.size()]));
  
          final String newline = lineSeparator != null ? lineSeparator : "\n";
          Writer out = outputFile != null ? new FileWriter(outputFile) {
              @Override public Writer append(CharSequence text) throws IOException {
                  return super.append(((String)text).replace("\n", newline).replace("\\u", "\\u005Cu"));
              }} : new Writer() {
              @Override public void write(char[] cbuf, int off, int len) { }
              @Override public void flush() { }
              @Override public void close() { }
          };
          LinkedList<Info> infoList = leafInfoMap.get(null);
          for (Info info : infoList) {
              if (info.javaText != null && !info.javaText.startsWith("import")) {
                  out.append(info.javaText + "\n");
              }
          }
          out.append("    static { Loader.load(); }\n");
  
          DeclarationList declList = new DeclarationList();
          containers(context, declList);
          declarations(context, declList);
          for (Declaration d : declList) {
              out.append(d.text);
          }
          out.append("\n}\n").close();
      } 
                              #location 78 
                              #vulnerability type RESOURCE_LEAK