private static int readConfigSpecFromStream()

in clearcase-server/src/jetbrains/buildServer/buildTriggers/vcs/clearcase/configSpec/ConfigSpecParseUtil.java [69:111]


  private static int readConfigSpecFromStream(final ConfigSpecRulesProcessor processor,
                                              final InputStream configSpecInputStream,
                                              @Nullable final File inputConfigSpecFile,
                                              @Nullable final OutputStream configSpecOutputStream,
                                              @Nullable final File outputConfigSpecFile,
                                              final int configSpecIncludesIndex) throws VcsException {
    BufferedReader reader = null;
    BufferedWriter writer = null;
    try {
      reader = new BufferedReader(new InputStreamReader(configSpecInputStream));
      if (configSpecOutputStream != null) {
        writer = new BufferedWriter(new OutputStreamWriter(configSpecOutputStream));
      }
      String line;

      int result = configSpecIncludesIndex;

      while ((line = reader.readLine()) != null) {
        if (writer != null) {
          writer.write(line);
          writer.newLine();
        }
        result = processLine(processor, line, inputConfigSpecFile, outputConfigSpecFile, result);
      }

      return result;
    }
    catch (IOException e) {
      throw new VcsException(e);
    }
    finally {
      try {
        if (reader != null) {
          reader.close();
        }
      } catch (IOException ignored) {}
      try {
        if (writer != null) {
          writer.close();
        }
      } catch (IOException ignored) {}
    }
  }