docs: protected boolean doBugLinkValidationPass(final ProcessorData processorData) {
          final ContentSpec contentSpec = processorData.getContentSpec();
          boolean valid = true;
          if (processingOptions.isValidateBugLinks() && contentSpec.isInjectBugLinks()) {
              // Find out if we should re-validate bug links
              boolean reValidateBugLinks = true;
              if (contentSpec.getId() != null) {
                  ContentSpecWrapper contentSpecEntity = null;
                  try {
                      contentSpecEntity = providerFactory.getProvider(ContentSpecProvider.class).getContentSpec(contentSpec.getId(),
                              contentSpec.getRevision());
                  } catch (ProviderException e) {
  
                  }
  
                  // This shouldn't happen but if it does, then it'll be picked up in the postValidationContentSpec method
                  if (contentSpecEntity != null) {
                      boolean weekPassed = false;
                      if (processingOptions.isDoBugLinkLastValidateCheck()) {
                          final PropertyTagInContentSpecWrapper lastValidated = contentSpecEntity.getProperty(
                                  serverEntities.getBugLinksLastValidatedPropertyTagId());
                          final Date now = new Date();
                          final long then;
                          if (lastValidated != null && lastValidated.getValue() != null && lastValidated.getValue().matches("^[0-9]+$")) {
                              then = Long.parseLong(lastValidated.getValue());
                          } else {
                              then = 0L;
                          }
  
                          // Check that a week has passed
                          weekPassed = (then + WEEK_MILLI_SECS) <= now.getTime();
                      } else {
                          weekPassed = true;
                      }
  
                      if (!weekPassed) {
                          // A week hasn't passed so check to see if anything has changed
                          boolean changed = false;
                          final String bugLinksValue = contentSpec.getBugLinksActualValue() == null ? null : contentSpec
                                  .getBugLinksActualValue().toString();
                          if (EntityUtilities.hasContentSpecMetaDataChanged(CommonConstants.CS_BUG_LINKS_TITLE, bugLinksValue,
                                  contentSpecEntity)) {
                              changed = true;
                          } else {
                              BugLinkType bugLinkType = null;
                              BugLinkOptions bugOptions = null;
                              if (contentSpec.getBugLinks() == BugLinkType.JIRA) {
                                  bugLinkType = BugLinkType.JIRA;
                                  bugOptions = contentSpec.getJIRABugLinkOptions();
                              } else {
                                  bugLinkType = BugLinkType.BUGZILLA;
                                  bugOptions = contentSpec.getBugzillaBugLinkOptions();
                              }
                              final BaseBugLinkStrategy bugLinkStrategy = BugLinkStrategyFactory.getInstance().create(bugLinkType,
                                      bugOptions.getBaseUrl());
  
                              if (bugLinkType != null && bugLinkStrategy.hasValuesChanged(contentSpecEntity, bugOptions)) {
                                  changed = true;
                              }
                          }
  
                          // If the content hasn't changed then don't re-validate the bug links
                          if (!changed) {
                              reValidateBugLinks = false;
                          }
                      }
                  }
              }
  
              // Validate the bug links
              if (reValidateBugLinks) {
                  processorData.setBugLinksReValidated(reValidateBugLinks);
                  LOG.info("Starting bug link validation pass...");
                  if (!validator.postValidateBugLinks(contentSpec, processingOptions.isStrictBugLinks())) {
                      valid = false;
                  }
              }
          }
  
          return valid;
      }