Update dependencies and spanner emulator container Update dependencies - docker-java to 3.6.0 - jackson to 2.20 - jna to 5.18.1 - testcontainers to 1.21.3 Update SpannerEmulatorContainer to 1.5.42. In LockTest#reclaimFreshLockedRef_Rejected use COMMMIT_TIMESTAMP instead of current timestamp obtained from Timestamp.now() to avoid races between the local clock and the Spanner emulator container which doesn't have the exact same behavior as a real Spanner instance. Without this fix the test sometimes failed with the error "FAILED_PRECONDITION: Cannot write timestamps in the future". Change-Id: I98e70505fbbac0261a927b66a60dca9082cc5638
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl index d6b7d3c..dac79b4 100644 --- a/external_plugin_deps.bzl +++ b/external_plugin_deps.bzl
@@ -3,56 +3,56 @@ def external_plugin_deps(): maven_jar( name = "google-cloud-spanner-with-dependencies", - sha1 = "76c3d421efd2f3ffc9208084b9bd822b5a5d9a9f", - artifact = "com.google.cloud:google-cloud-spanner-jdbc:2.27.0:single-jar-with-dependencies", + artifact = "com.google.cloud:google-cloud-spanner-jdbc:2.33.1:single-jar-with-dependencies", + sha1 = "1c2210fbafd55cb70b225ad746d46f61e5cad75e", ) - JACKSON_VER = "2.18.2" + JACKSON_VER = "2.20" maven_jar( name = "jackson-annotations", artifact = "com.fasterxml.jackson.core:jackson-annotations:" + JACKSON_VER, - sha1 = "985d77751ebc7fce5db115a986bc9aa82f973f4a", + sha1 = "6a5e7291ea3f2b590a7ce400adb7b3aea4d7e12c", ) - TESTCONTAINERS_VERSION = "1.20.2" + TESTCONTAINERS_VERSION = "1.21.3" maven_jar( name = "testcontainers", artifact = "org.testcontainers:testcontainers:" + TESTCONTAINERS_VERSION, - sha1 = "3b693fb878f88974ee07bd149fb0b75b0f2b5cf0", + sha1 = "aa3e792d2cf4598019933c42f1cfa55bd608ce8b", ) maven_jar( name = "testcontainer-gcloud", artifact = "org.testcontainers:gcloud:" + TESTCONTAINERS_VERSION, - sha1 = "fdefd8fd45206cd525b918e49dce84f6ca9a43eb", + sha1 = "5134c3849d2acb6979ac8e51e3a4ae52d799673a", ) maven_jar( name = "jna", - artifact = "net.java.dev.jna:jna:5.13.0", - sha1 = "1200e7ebeedbe0d10062093f32925a912020e747", + artifact = "net.java.dev.jna:jna:5.18.1", + sha1 = "b27ba04287cc4abe769642fe8318d39fc89bf937", ) - DOCKER_JAVA_VERS = "3.4.0" + DOCKER_JAVA_VERS = "3.6.0" maven_jar( name = "docker-java-api", artifact = "com.github.docker-java:docker-java-api:" + DOCKER_JAVA_VERS, - sha1 = "9ef23dcc93693f15e69b64632be096c38e31bc44", + sha1 = "caeb5bee6a9c07bff31f73ace576436168e2aa47", ) maven_jar( name = "docker-java-transport", artifact = "com.github.docker-java:docker-java-transport:" + DOCKER_JAVA_VERS, - sha1 = "c058705684d782effc4b2edfdef1a87544ba4af8", + sha1 = "d522c467aad17fd927e0db0130d2849a321a36aa", ) maven_jar( name = "docker-java-transport-zerodep", artifact = "com.github.docker-java:docker-java-transport-zerodep:" + DOCKER_JAVA_VERS, - sha1 = "c4ce6d8695cfdb0027872f99cc20f8f679f8a969", + sha1 = "549f4985f9c7714deff47d1041603e85e132d184", ) maven_jar(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java index c5aa09b..c5566d2 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java +++ b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/EmulatedSpannerRefDb.java
@@ -52,7 +52,7 @@ public EmulatedSpannerRefDb() throws Exception { container = new SpannerEmulatorContainer( - DockerImageName.parse("gcr.io/cloud-spanner-emulator/emulator").withTag("1.5.9")); + DockerImageName.parse("gcr.io/cloud-spanner-emulator/emulator").withTag("1.5.42")); container.start(); System.out.println( String.format(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/LockTest.java b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/LockTest.java index a88052b..f8210db 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/LockTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/spannerrefdb/LockTest.java
@@ -113,8 +113,8 @@ @Test public void reclaimFreshLockedRef_Rejected() throws Exception { - Timestamp freshTimestamp = Timestamp.now(); - insertLockRow(PROJECT_NAME_KEY, REF_NAME, freshTimestamp); + // use COMMIT_TIMESTAMP to avoid races between spanner emulator and local clock + insertLockRow(PROJECT_NAME_KEY, REF_NAME, Value.COMMIT_TIMESTAMP); GlobalRefDbLockException e = assertThrows( GlobalRefDbLockException.class, () -> refDb.lockRef(PROJECT_NAME_KEY, REF_NAME));