Merge branch 'stable-3.6'

* stable-3.6:
  Fix errorprone errors [FloggerLogString]
  Update global-refdb/events-broker to 3.6.3

Change-Id: I9508e8ce6ace464cff3e0ecb88038d9f604fe910
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index 57dc5c6..a2feb95 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -3,13 +3,13 @@
 def external_plugin_deps():
     maven_jar(
         name = "global-refdb",
-        artifact = "com.gerritforge:global-refdb:3.6.0-rc3.1",
-        sha1 = "9e28fdc65dcdecefd852f6c24dd7eec339a01870",
+        artifact = "com.gerritforge:global-refdb:3.6.3",
+        sha1 = "2b878e0e9199cc885ce25b4a4908b8413556b2e5",
     )
 
     maven_jar(
         name = "events-broker",
-        artifact = "com.gerritforge:events-broker:3.6.0-rc3",
-        sha1 = "cb398afa4f76367be5c62b99a7ffce74ae1d3d8b",
+        artifact = "com.gerritforge:events-broker:3.6.3",
+        sha1 = "2a78d4492810d5b4280c6a92e6b8bbdadaffe7d2",
     )
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java
index 7107b87..c2b9e9c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/consumer/AbstractSubcriber.java
@@ -70,13 +70,9 @@
     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()));
+        logger.atWarning().log("Dropping event %s because sourceInstanceId cannot be null", event);
       } else if (instanceId.equals(sourceInstanceId)) {
-        logger.atFiner().log(
-            String.format(
-                "Dropping event %s produced by our instanceId %s", event.toString(), instanceId));
+        logger.atFiner().log("Dropping event %s produced by our instanceId %s", event, instanceId);
       }
       droppedEventListeners.forEach(l -> l.onEventDropped(event));
     } else {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/MultisiteReplicationPushFilter.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/MultisiteReplicationPushFilter.java
index c9300c8..99ca2e2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/MultisiteReplicationPushFilter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/MultisiteReplicationPushFilter.java
@@ -100,9 +100,9 @@
           .collect(Collectors.toList());
 
     } catch (IOException ioe) {
-      String message = String.format("Error while opening project: '%s'", projectName);
-      repLog.error(message);
-      logger.atSevere().withCause(ioe).log(message);
+      final String messageFmt = "Error while opening project: '%s'";
+      repLog.error(messageFmt, projectName);
+      logger.atSevere().withCause(ioe).log(messageFmt, projectName);
       return Collections.emptyList();
     }
   }
@@ -130,16 +130,14 @@
           ? Optional.of(refUpdateReloaded)
           : Optional.empty();
     } catch (GlobalRefDbLockException gle) {
-      String message =
-          String.format("%s is locked on shared-refdb and thus will NOT BE replicated", ref);
-      repLog.error(message);
-      logger.atSevere().withCause(gle).log(message);
+      final String messageFmt = "%s is locked on shared-refdb and thus will NOT BE replicated";
+      repLog.error(messageFmt, ref);
+      logger.atSevere().withCause(gle).log(messageFmt, ref);
       return Optional.empty();
     } catch (IOException ioe) {
-      String message =
-          String.format("Error while extracting ref '%s' for project '%s'", ref, projectName);
-      repLog.error(message);
-      logger.atSevere().withCause(ioe).log(message);
+      final String messageFmt = "Error while extracting ref '%s' for project '%s'";
+      repLog.error(messageFmt, ref, projectName);
+      logger.atSevere().withCause(ioe).log(messageFmt, ref, projectName);
       return Optional.empty();
     }
   }
@@ -170,10 +168,9 @@
     try {
       Thread.sleep(randomSleepTimeMsec);
     } catch (InterruptedException ie) {
-      String message =
-          String.format("Error while waiting for next check for '%s', ref '%s'", projectName, ref);
-      repLog.error(message);
-      logger.atWarning().withCause(ie).log(message);
+      final String messageFmt = "Error while waiting for next check for '%s', ref '%s'";
+      repLog.error(messageFmt, projectName, ref);
+      logger.atWarning().withCause(ie).log(messageFmt, projectName, ref);
     }
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdateImpl.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdateImpl.java
index e9a84ac..10c0d80 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdateImpl.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdateImpl.java
@@ -71,7 +71,7 @@
 
   @Override
   public void onEvent(Event event) {
-    logger.atFine().log("Processing event type: " + event.type);
+    logger.atFine().log("Processing event type: %s", event.type);
     // Producer of the Event use RefUpdatedEvent to trigger the version update
     if (nodeInstanceId.equals(event.instanceId) && event instanceof RefUpdatedEvent) {
       updateProducerProjectVersionUpdate((RefUpdatedEvent) event);
@@ -114,8 +114,8 @@
       }
     } catch (LocalProjectVersionUpdateException | SharedProjectVersionUpdateException e) {
       logger.atSevere().withCause(e).log(
-          "Issue encountered when updating version for project "
-              + refUpdatedEvent.getProjectNameKey());
+          "Issue encountered when updating version for project %s",
+          refUpdatedEvent.getProjectNameKey());
     }
   }
 
@@ -134,6 +134,7 @@
     return newId;
   }
 
+  @SuppressWarnings("FloggerLogString")
   private boolean updateSharedProjectVersion(
       Project.NameKey projectNameKey, ObjectId newObjectId, Long newVersion)
       throws SharedProjectVersionUpdateException {
@@ -156,20 +157,18 @@
     try {
       if (sharedVersion.isPresent() && sharedVersion.get() >= newVersion) {
         logger.atWarning().log(
-            String.format(
-                "NOT Updating project %s version %s (value=%d) in shared ref-db because is more recent than the local one %s (value=%d) ",
-                projectNameKey.get(),
-                newObjectId,
-                newVersion,
-                sharedRef.getObjectId().getName(),
-                sharedVersion.get()));
+            "NOT Updating project %s version %s (value=%d) in shared ref-db because is more recent than the local one %s (value=%d) ",
+            projectNameKey.get(),
+            newObjectId,
+            newVersion,
+            sharedRef.getObjectId().getName(),
+            sharedVersion.get());
         return false;
       }
 
       logger.atFine().log(
-          String.format(
-              "Updating shared project %s version to %s (value=%d)",
-              projectNameKey.get(), newObjectId, newVersion));
+          "Updating shared project %s version to %s (value=%d)",
+          projectNameKey.get(), newObjectId, newVersion);
 
       boolean success = sharedRefDb.compareAndPut(projectNameKey, sharedRef, newObjectId);
       if (!success) {
@@ -256,6 +255,7 @@
     }
   }
 
+  @SuppressWarnings("FloggerLogString")
   private Optional<RefUpdate> updateLocalProjectVersion(
       Project.NameKey projectNameKey, long newVersionNumber)
       throws LocalProjectVersionUpdateException {