private void processFileRethrowExceptions(@NotNull VirtualFile fileOrDir) {
    if (pushers != null && pushedFilePropertiesUpdater instanceof PushedFilePropertiesUpdaterImpl) {
      ((PushedFilePropertiesUpdaterImpl)pushedFilePropertiesUpdater).applyPushersToFile(fileOrDir, pushers, moduleValues);
    }
    else if (pusherExs != null && pushedFilePropertiesUpdater instanceof PushedFilePropertiesUpdaterImpl) {
      ((PushedFilePropertiesUpdaterImpl)pushedFilePropertiesUpdater).applyPushersToFile(fileOrDir, pusherExs, moduleValues);
    }

    UnindexedFileStatus status;
    long statusTime = System.nanoTime();
    try {
      status =
        UnindexedFilesScanner.ourTestMode == UnindexedFilesScanner.TestMode.PUSHING ? null : unindexedFileFinder.getFileStatus(fileOrDir);
    }
    finally {
      statusTime = System.nanoTime() - statusTime;
    }
    if (status != null) {
      if (status.getShouldIndex() && UnindexedFilesScanner.ourTestMode == null) {
        perProviderSink.addFile(fileOrDir);
      }
      scanningStatistics.addStatus(fileOrDir, status, statusTime, project);
    }
  }
private void processFileRethrowExceptions(@NotNull VirtualFile fileOrDir)