computeAndPut should return false instead  throwing exception

Return false instead of throwing `GlobalRefDbSystemError` when
global-refdb expected value doesn't match expected one. This
will match existing contract defined in global-refdb
`GlobalRefDatabase` interface[1].

1.https://gerrit.googlesource.com/modules/global-refdb/+/refs/heads/stable-3.4/src/main/java/com/gerritforge/gerrit/globalrefdb/GlobalRefDatabase.java#76

Bug: Issue 297440085
Change-Id: I7b4beb1c107a2e54c7aa9bd4038042912a96bc3d
diff --git a/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabase.java b/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabase.java
index 44822e9..f6bdddc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabase.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabase.java
@@ -132,11 +132,10 @@
           project.get(), currValueForPath, newValueForPath);
       return true;
     } catch (ConditionalCheckFailedException e) {
-      throw new GlobalRefDbSystemError(
-          String.format(
-              "Conditional Check Failure when updating refPath %s. expected: %s New: %s",
-              refPath, currValueForPath, newValueForPath),
-          e);
+      logger.atWarning().withCause(e).log(
+          "Conditional Check Failure when updating refPath %s. expected: %s New: %s",
+          refPath, currValueForPath, newValueForPath);
+      return false;
     } catch (Exception e) {
       throw new GlobalRefDbSystemError(
           String.format(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabaseIT.java b/src/test/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabaseIT.java
index ba9b81d..b750c31 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabaseIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/validation/dfsrefdb/dynamodb/DynamoDBRefDatabaseIT.java
@@ -16,7 +16,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth8.assertThat;
-import static com.google.gerrit.testing.GerritJUnit.assertThrows;
 import static com.googlesource.gerrit.plugins.validation.dfsrefdb.dynamodb.Configuration.DEFAULT_LOCKS_TABLE_NAME;
 import static com.googlesource.gerrit.plugins.validation.dfsrefdb.dynamodb.Configuration.DEFAULT_REFS_DB_TABLE_NAME;
 import static com.googlesource.gerrit.plugins.validation.dfsrefdb.dynamodb.DynamoDBRefDatabase.REF_DB_PRIMARY_KEY;
@@ -27,7 +26,6 @@
 import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
 import com.amazonaws.services.dynamodbv2.model.AttributeValue;
 import com.amazonaws.services.dynamodbv2.model.PutItemRequest;
-import com.gerritforge.gerrit.globalrefdb.GlobalRefDbSystemError;
 import com.google.common.collect.ImmutableMap;
 import com.google.gerrit.acceptance.LightweightPluginDaemonTest;
 import com.google.gerrit.acceptance.TestPlugin;
@@ -182,7 +180,7 @@
   }
 
   @Test
-  public void compareAndPutShouldThrowWhenStoredRefIsNotExpected() {
+  public void compareAndPutShouldReturnFalseWhenStoredRefIsNotExpected() {
     String refName = "refs/changes/01/01/meta";
     String currentRefValue = "533d3ccf8a650fb26380faa732921a2c74924d5c";
     String newRefValue = "9f6f2963cf44505428c61b935ff1ca65372cf28c";
@@ -190,20 +188,10 @@
     Ref expectedRef = refOf(refName, expectedRefValue);
 
     createRefInDynamoDB(project, refName, currentRefValue);
-
-    GlobalRefDbSystemError thrown =
-        assertThrows(
-            GlobalRefDbSystemError.class,
-            () ->
-                dynamoDBRefDatabase()
-                    .compareAndPut(project, expectedRef, ObjectId.fromString(newRefValue)));
-    assertThat(thrown)
-        .hasMessageThat()
-        .containsMatch(
-            "Conditional Check Failure when updating refPath.*expected:.*"
-                + expectedRefValue
-                + " New:.*"
-                + newRefValue);
+    assertThat(
+            dynamoDBRefDatabase()
+                .compareAndPut(project, expectedRef, ObjectId.fromString(newRefValue)))
+        .isFalse();
   }
 
   @Test