Merge branch 'stable-3.5' into stable-3.6

* stable-3.5:
  Consume global-refdb directly from source
  Fix errorprone Flogger error

Change-Id: I004cdffa14035a5f75fb01b366c12e7926bf6a4a
diff --git a/BUILD b/BUILD
index fe0e909..335c2da 100644
--- a/BUILD
+++ b/BUILD
@@ -79,11 +79,14 @@
         "@curator-test//jar",
         "@curator-client//jar",
         "@jackson-annotations//jar",
-        "@testcontainers//jar",
-        "@duct-tape//jar",
-        "@visible-assertions//jar",
         "@jna//jar",
+        "@visible-assertions//jar",
         "@docker-java-api//jar",
         "@docker-java-transport//jar",
+        "@duct-tape//jar",
+        "@testcontainers//jar",
+        "@testcontainer-localstack//jar",
+        "@jackson-dataformat-cbor//jar",
+        "@jackson-databind//jar",
     ],
 )
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index 7082b78..b50d3bf 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -2,8 +2,6 @@
 
 def external_plugin_deps():
     CURATOR_VER = "4.2.0"
-    TESTCONTAINERS_VERSION = "1.15.3"
-    DOCKER_JAVA_VERS = "3.2.8"
 
     maven_jar(
         name = "curator-test",
@@ -53,19 +51,49 @@
         sha1 = "c114c1e1c8172a7cd3f6ae39209a635f7a06c1a1",
     )
 
+    JACKSON_VER = "2.10.4"
+
     maven_jar(
         name = "jackson-annotations",
-        artifact = "com.fasterxml.jackson.core:jackson-annotations:2.10.3",
-        sha1 = "0f63b3b1da563767d04d2e4d3fc1ae0cdeffebe7",
+        artifact = "com.fasterxml.jackson.core:jackson-annotations:" + JACKSON_VER,
+        sha1 = "6ae6028aff033f194c9710ad87c224ccaadeed6c",
     )
 
     maven_jar(
+        name = "jackson-core",
+        artifact = "com.fasterxml.jackson.core:jackson-core:" + JACKSON_VER,
+        sha1 = "8796585e716440d6dd5128b30359932a9eb74d0d",
+    )
+
+    maven_jar(
+        name = "jackson-dataformat-cbor",
+        artifact = "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:" + JACKSON_VER,
+        sha1 = "c854bb2d46138198cb5d4aae86ef6c04b8bc1e70",
+    )
+
+    maven_jar(
+        name = "jackson-databind",
+        artifact = "com.fasterxml.jackson.core:jackson-databind:" + JACKSON_VER,
+        sha1 = "76e9152e93d4cf052f93a64596f633ba5b1c8ed9",
+    )
+
+    TESTCONTAINERS_VERSION = "1.15.3"
+
+    maven_jar(
         name = "testcontainers",
         artifact = "org.testcontainers:testcontainers:" + TESTCONTAINERS_VERSION,
         sha1 = "95c6cfde71c2209f0c29cb14e432471e0b111880",
     )
 
     maven_jar(
+        name = "testcontainer-localstack",
+        artifact = "org.testcontainers:localstack:" + TESTCONTAINERS_VERSION,
+        sha1 = "7aa69995bdaafb4b06e69fdab9bd98c4fddee43d",
+    )
+
+    DOCKER_JAVA_VERS = "3.2.8"
+
+    maven_jar(
         name = "docker-java-api",
         artifact = "com.github.docker-java:docker-java-api:" + DOCKER_JAVA_VERS,
         sha1 = "4ac22a72d546a9f3523cd4b5fabffa77c4a6ec7c",
diff --git a/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java b/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
index 0aa0c9f..db8f30a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZkSharedRefDatabase.java
@@ -30,6 +30,7 @@
 import org.apache.curator.framework.recipes.atomic.DistributedAtomicValue;
 import org.apache.curator.framework.recipes.locks.InterProcessMutex;
 import org.apache.curator.framework.recipes.locks.Locker;
+import org.apache.zookeeper.KeeperException;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Ref;
 
@@ -89,6 +90,8 @@
   public void remove(Project.NameKey project) throws GlobalRefDbSystemError {
     try {
       client.delete().deletingChildrenIfNeeded().forPath("/" + project);
+    } catch (KeeperException.NoNodeException e) {
+      logger.atWarning().log("Project '%s' not found in Zookeeper", project);
     } catch (Exception e) {
       throw new GlobalRefDbSystemError(
           String.format("Not able to delete project '%s'", project), e);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZookeeperConfig.java b/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZookeeperConfig.java
index 8b17df0..117dead 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZookeeperConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/zookeeper/ZookeeperConfig.java
@@ -21,7 +21,7 @@
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.inject.Inject;
 import java.util.Optional;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.curator.RetryPolicy;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.CuratorFrameworkFactory;