public void run()

in agent/src/jetbrains/buildServer/xmlReportPlugin/MonitorRulesCommand.java [59:106]


  public void run() {
    if (myFirstRun) {
      if (!myQuietMode) {
        logWatchingPaths();
      }

      myFirstRun = false;
    }

    monitorRules(
      new MonitorRulesFileProcessor() {
        public void processFile(@NotNull File file) {
          if (acceptFile(file)) {

            final long fileLastModified = file.lastModified();
            final long fileLength = file.length();

            if (timeConstraintsSatisfied(fileLastModified)) {
              switch (myReportStateHolder.getReportState(file)) {
                case ON_PROCESSING:
                  return;
                case UNKNOWN:
                  myReportStateHolder.setReportState(file, ReportStateHolder.ReportState.ON_PROCESSING, fileLastModified, fileLength);
                  modificationDetected(file);
                  return;
                case PROCESSED:
                  if (!myParameters.isReparseUpdated()) return;
                case ERROR:
                case OUT_OF_DATE:
                  final Long lastModified = myReportStateHolder.getLastModified(file);
                  final Long length = myReportStateHolder.getLength(file);

                  assert lastModified != null;
                  assert length != null;

                  if (fileLastModified > lastModified || fileLength > length) {
                    myReportStateHolder.setReportState(file, ReportStateHolder.ReportState.ON_PROCESSING, fileLastModified, fileLength);
                    modificationDetected(file);
                  }
              }
            } else {
              myReportStateHolder.setReportState(file, ReportStateHolder.ReportState.OUT_OF_DATE, fileLastModified, fileLength);
            }
          }
        }
      }
    );
  }