output: #fixed code
                                  private String getCommandOutput(Command thisCommand, StreamConsumer stdOutConsumer, StreamConsumer stdErrConsumer, File tslintOutputFile, Integer timeoutMs) {
          LOG.debug("Executing TsLint with command: " + thisCommand.toCommandLine());
  
          // Timeout is specified per file, not per batch (which can vary a lot)
          // so multiply it up
          this.createExecutor().execute(thisCommand, stdOutConsumer, stdErrConsumer, timeoutMs);
  
          return getFileContent(tslintOutputFile);
      }
input: #vulnerable code 
                                  private String getCommandOutput(Command thisCommand, StreamConsumer stdOutConsumer, StreamConsumer stdErrConsumer, File tslintOutputFile, Integer timeoutMs) {
          LOG.debug("Executing TsLint with command: " + thisCommand.toCommandLine());
  
          // Timeout is specified per file, not per batch (which can vary a lot)
          // so multiply it up
          this.createExecutor().execute(thisCommand, stdOutConsumer, stdErrConsumer, timeoutMs);
  
          StringBuilder outputBuilder = new StringBuilder();
  
          try {
              BufferedReader reader = this.getBufferedReaderForFile(tslintOutputFile);
              
              String str;
              while ((str = reader.readLine()) != null) {
                  outputBuilder.append(str);
              }
              
              reader.close();
              
              return outputBuilder.toString();
          }
          catch (IOException ex) {
              LOG.error("Failed to re-read TsLint output", ex);
          }
          
          return "";
      } 
                              #location 22 
                              #vulnerability type RESOURCE_LEAK