private void processRecord()

in src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java [67:96]


  private void processRecord(Event event) {
    String sourceInstanceId = event.instanceId;

    if ((Strings.isNullOrEmpty(sourceInstanceId) || instanceId.equals(sourceInstanceId))
        || !shouldConsumeEvent(event)) {
      if (Strings.isNullOrEmpty(sourceInstanceId)) {
        logger.atWarning().log(
            String.format(
                "Dropping event %s because sourceInstanceId cannot be null", event.toString()));
      } else if (instanceId.equals(sourceInstanceId)) {
        logger.atFiner().log(
            String.format(
                "Dropping event %s produced by our instanceId %s", event.toString(), instanceId));
      }
      droppedEventListeners.forEach(l -> l.onEventDropped(event));
    } else {
      try {
        msgLog.log(Direction.CONSUME, topic, event);
        eventRouter.route(event);
        subscriberMetrics.incrementSubscriberConsumedMessage();
      } catch (IOException e) {
        logger.atSevere().withCause(e).log("Malformed event '%s'", event);
        subscriberMetrics.incrementSubscriberFailedToConsumeMessage();
      } catch (PermissionBackendException | CacheNotFoundException e) {
        logger.atSevere().withCause(e).log("Cannot handle message '%s'", event);
        subscriberMetrics.incrementSubscriberFailedToConsumeMessage();
      }
    }
    subscriberMetrics.updateReplicationStatusMetrics(event);
  }