code: private static Level logLevelFor(DescriptorVisibilityFilter f) {
          Long interval = SystemProperties.getLong(
                  DescriptorVisibilityFilter.class.getName() + ".badFilterLogWarningIntervalMinutes",
                  60L);
          // the healthy path will never see this synchronized block
          synchronized (ResourceHolder.BAD_FILTERS) {
              Long lastTime = ResourceHolder.BAD_FILTERS.get(f);
              if (lastTime == null || lastTime + TimeUnit.MINUTES.toMillis(interval) < System.currentTimeMillis()) {
                  ResourceHolder.BAD_FILTERS.put(f, System.currentTimeMillis());
                  return Level.WARNING;
              } else {
                  return Level.FINE;
              }
          }
      }
docs: Returns the {@link Level} to log an uncaught exception from a {@link DescriptorVisibilityFilter}. We
  need to suppress repeated exceptions as there can be many invocations of the {@link DescriptorVisibilityFilter}
  triggered by the UI and spamming the logs would be bad.
  
  @param f the {@link DescriptorVisibilityFilter}.
  @return the level to report uncaught exceptions at.