private void updateProducerProjectVersionUpdate()

in src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdate.java [93:126]


  private void updateProducerProjectVersionUpdate(RefUpdatedEvent refUpdatedEvent) {
    String refName = refUpdatedEvent.getRefName();

    if (isSpecialRefName(refName)) {
      logger.atFine().log(
          "Found a special ref name %s, skipping update for %s",
          refName, refUpdatedEvent.getProjectNameKey().get());
      return;
    }
    try {
      Project.NameKey projectNameKey = refUpdatedEvent.getProjectNameKey();
      long newVersion = getCurrentGlobalVersionNumber();

      Optional<RefUpdate> newProjectVersionRefUpdate =
          updateLocalProjectVersion(projectNameKey, newVersion);

      if (newProjectVersionRefUpdate.isPresent()) {
        verLogger.log(projectNameKey, newVersion, 0L);

        if (updateSharedProjectVersion(
            projectNameKey, newProjectVersionRefUpdate.get().getNewObjectId(), newVersion)) {
          gitReferenceUpdated.fire(projectNameKey, newProjectVersionRefUpdate.get(), null);
        }
      } else {
        logger.atWarning().log(
            "Ref %s not found on projet %s: skipping project version update",
            refUpdatedEvent.getRefName(), projectNameKey);
      }
    } catch (LocalProjectVersionUpdateException | SharedProjectVersionUpdateException e) {
      logger.atSevere().withCause(e).log(
          "Issue encountered when updating version for project "
              + refUpdatedEvent.getProjectNameKey());
    }
  }