docs: @Override
      public final void reportBug(@Nonnull BugInstance bugInstance) {
          if (isRelaxed()) {
              doReportBug(bugInstance);
              return;
          }
          if (priorityThreshold == 0) {
              throw new IllegalStateException("Priority threshold not set");
          }
  
          ClassAnnotation primaryClass = bugInstance.getPrimaryClass();
          if (primaryClass != null && !AnalysisContext.currentAnalysisContext().isApplicationClass(primaryClass.getClassName())) {
              LOG.debug("AbstractBugReporter: Filtering due to non-primary class");
              return;
          }
          int priority = bugInstance.getPriority();
          int bugRank = bugInstance.getBugRank();
          if (priority <= priorityThreshold && bugRank <= rankThreshold) {
              doReportBug(bugInstance);
          } else {
              if (priority <= priorityThreshold) {
                  LOG.debug("AbstractBugReporter: Filtering due to priorityThreshold {} > {}", priority,
                          priorityThreshold);
              } else {
                  LOG.debug("AbstractBugReporter: Filtering due to rankThreshold {} > {}", bugRank, rankThreshold);
              }
          }
      }