Merge branch 'stable-3.4' into stable-3.5

* stable-3.4:
  Check for existence of change's target SHA1 for reindexing
  Remove `@NoHttpd` from IT tests that interact with Gerrit Rest API

Also, disable IndexEventHandlerTest as it is known for causing
stack overflow errors. It can be re-enabled in 3.9 since change
I3276ecf9 removes the executor service altogether.

Change-Id: I39ddd2bb9d1acb6611ddaf6a2b776ac36620e290
diff --git a/Jenkinsfile b/Jenkinsfile
index 0c516ca..2323d5d 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,2 +1,3 @@
 pluginPipeline(formatCheckId: 'gerritforge:plugins-high-availability-code-style',
-               buildCheckId: 'gerritforge:plugins-high-availability-build-test')
+               buildCheckId: 'gerritforge:plugins-high-availability-build-test',
+               gjfVersion: '1.7')
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index 74c8f13..da477e6 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -15,6 +15,6 @@
 
     maven_jar(
         name = "global-refdb",
-        artifact = "com.gerritforge:global-refdb:3.4.8",
-        sha1 = "a05e1684c0b02867c203e3f55efe62ced2c0fe61",
+        artifact = "com.gerritforge:global-refdb:3.5.4",
+        sha1 = "6f96965d4cedd8b01b1fd9047d8c443c752bd675",
     )
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
index cdca21b..e0d5a50 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
@@ -123,7 +123,7 @@
       log.atInfo().log("Loading configuration from %s", fileConfigFileName);
       cfg.load();
     } catch (IOException | ConfigInvalidException e) {
-      log.atSevere().withCause(e).log("Unable to load configuration from " + fileConfigFileName);
+      log.atSevere().withCause(e).log("Unable to load configuration from %s", fileConfigFileName);
     }
     return cfg;
   }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java
index fcd345d..2de2122 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/autoreindex/ChangeReindexRunnable.java
@@ -88,7 +88,7 @@
                         return true;
                       }
                       log.atWarning().withCause(cnr.error().get()).log(
-                          "Error fetching change " + cnr.id());
+                          "Error fetching change %s", cnr.id());
                       return false;
                     })
                 .map(cnr -> cnr.notes().getChange());
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventLocks.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventLocks.java
index 3fd26db..bbff4ee 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventLocks.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventLocks.java
@@ -65,7 +65,7 @@
           String.format(
               "Acquisition of the locking of %s timed out after %d msec: consider increasing the number of shards",
               indexId, WAIT_TIMEOUT_MS);
-      log.atWarning().log(timeoutMessage);
+      log.atWarning().log("%s", timeoutMessage);
       lockAcquireTimeoutCallback.invoke();
       CompletableFuture<?> failureFuture = new CompletableFuture<>();
       failureFuture.completeExceptionally(new InterruptedException(timeoutMessage));
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/websession/file/FileBasedWebsessionCache.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/websession/file/FileBasedWebsessionCache.java
index 674de10..92253f7 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/websession/file/FileBasedWebsessionCache.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/websession/file/FileBasedWebsessionCache.java
@@ -210,7 +210,7 @@
             "Entry %s in cache %s has an incompatible class and can't be"
                 + " deserialized. Invalidating entry.",
             path, websessionsDir);
-        log.atFine().withCause(e).log(e.getMessage());
+        log.atFine().withCause(e).log("%s", e.getMessage());
         invalidate(path.getFileName().toString());
       } catch (IOException e) {
         log.atWarning().withCause(e).log("Cannot read cache %s", websessionsDir);
diff --git a/src/test/docker/gerrit/Dockerfile b/src/test/docker/gerrit/Dockerfile
index b4f9c6e..7d277db 100644
--- a/src/test/docker/gerrit/Dockerfile
+++ b/src/test/docker/gerrit/Dockerfile
@@ -1,6 +1,6 @@
-FROM gerritcodereview/gerrit:3.4.5-ubuntu20
+FROM gerritcodereview/gerrit:3.5.0-rc2
 
-ENV GERRIT_BRANCH=stable-3.4
+ENV GERRIT_BRANCH=stable-3.5
 
 ENV GERRIT_CI_URL=https://archive-ci.gerritforge.com/job
 
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java
index 578dc17..4793678 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java
@@ -60,6 +60,7 @@
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -67,6 +68,7 @@
 import org.mockito.junit.MockitoJUnitRunner;
 
 @RunWith(MockitoJUnitRunner.class)
+@Ignore
 public class IndexEventHandlerTest {
   private static final String PLUGIN_NAME = "high-availability";
   private static final String PROJECT_NAME = "test/project";