docs: protected boolean doFixedURLsPass(final BuildData buildData) throws BuildProcessingException {
          log.info("Doing Fixed URL Pass");
  
          final Set<String> processedFileNames = new HashSet<String>();
          final Set<SpecNode> nodesWithoutFixedUrls = new HashSet<SpecNode>();
          boolean success = true;
  
          try {
              // Collect any current fixed urls or nodes that need configuring
              FixedURLGenerator.collectFixedUrlInformation(buildData.getBuildDatabase().getAllSpecNodes(), nodesWithoutFixedUrls,
                      processedFileNames);
  
              // Warn the user about using temporary fixed urls
              if (!nodesWithoutFixedUrls.isEmpty()) {
                  log.info("\tUsing " + nodesWithoutFixedUrls.size() + " temporary Fixed URLs");
              }
  
              // Generate the fixed urls for the missing nodes
              FixedURLGenerator.generateFixedUrlForNodes(nodesWithoutFixedUrls, processedFileNames,
                      buildData.getServerEntities().getFixedUrlPropertyTagId());
          } catch (Exception e) {
              success = false;
              log.debug("", e);
              throw new BuildProcessingException(
                      "Failed to update the Fixed URLs. Please try again and if the issue persists please log a bug.");
          }
  
          return success;
      }