diff --git a/pom.xml b/pom.xml
index 222e077..46370bc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
 
     <groupId>com.gerritforge</groupId>
     <artifactId>global-refdb</artifactId>
-    <version>3.3.3</version>
+    <version>3.4.0-rc1</version>
     <packaging>jar</packaging>
 
     <name>global-refdb</name>
@@ -38,7 +38,7 @@
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <gerrit.version>3.3.2</gerrit.version>
+        <gerrit.version>3.4.0-rc1</gerrit.version>
     </properties>
 
     <dependencies>
@@ -49,6 +49,12 @@
             <scope>provided</scope>
         </dependency>
         <dependency>
+            <groupId>com.ryanharter.auto.value</groupId>
+            <artifactId>auto-value-gson</artifactId>
+            <version>1.3.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.gerrit</groupId>
             <artifactId>gerrit-acceptance-framework</artifactId>
             <version>${gerrit.version}</version>
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidator.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidator.java
index e91d083..0fe5ad5 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidator.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/BatchRefUpdateValidator.java
@@ -102,6 +102,8 @@
    *
    * @param batchRefUpdate batchRefUpdate object
    * @param batchRefUpdateFunction batchRefUpdate function to execute upon validation
+   * @param batchRefUpdateRollbackFunction function to invoke when the ref-update needs to be rolled
+   *     back
    * @throws IOException batch update failed
    */
   @SuppressWarnings("JavadocReference")
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java
index 6ab430d..7fa5645 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/RefUpdateValidator.java
@@ -122,11 +122,9 @@
   /**
    * Checks whether the provided refUpdate should be validated first against the shared ref-db. If
    * not it just execute the provided refUpdateFunction. If it should be validated against the
-   * global refdb then it does so by executing the {@link
-   * RefUpdateValidator#doExecuteRefUpdate(RefUpdate, NoParameterFunction,
-   * OneParameterFunction<ObjectId, Result>)} first. Upon success the refUpdate is returned, upon
-   * failure split brain metrics are incremented and a {@link SharedDbSplitBrainException} is
-   * thrown.
+   * global refdb then it does so by executing the {@link RefUpdateValidator#doExecuteRefUpdate}
+   * first. Upon success the refUpdate is returned, upon failure split brain metrics are incremented
+   * and a {@link SharedDbSplitBrainException} is thrown.
    *
    * <p>Validation is performed when either of these condition is true
    *
@@ -140,6 +138,7 @@
    *
    * @param refUpdate the refUpdate command
    * @param refUpdateFunction the refUpdate function to execute after validation
+   * @param rollbackFunction function to invoke when the ref-update needs to be rolled back
    * @return the result of the update, or "null" in case a split brain was detected but the policy
    *     enforcement was not REQUIRED
    * @throws IOException Execution of ref update failed
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdate.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdate.java
index 5007dc6..bc3158b 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdate.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbBatchRefUpdate.java
@@ -199,8 +199,7 @@
    *     one of the underlying update command or by the batch ref validator proving that the current
    *     ref-db is not up-to-date with the global refdb
    * @see BatchRefUpdate
-   * @see BatchRefUpdateValidator#executeBatchUpdateWithValidation(BatchRefUpdate,
-   *     RefUpdateValidator.NoParameterVoidFunction)
+   * @see BatchRefUpdateValidator#executeBatchUpdateWithValidation
    */
   @Override
   public void execute(RevWalk walk, ProgressMonitor monitor, List<String> options)
@@ -225,8 +224,7 @@
    *     one of the underlying update command or by the batch ref validator proving that the current
    *     ref-db is not up-to-date with the global refdb
    * @see BatchRefUpdate
-   * @see BatchRefUpdateValidator#executeBatchUpdateWithValidation(BatchRefUpdate,
-   *     RefUpdateValidator.NoParameterVoidFunction)
+   * @see BatchRefUpdateValidator#executeBatchUpdateWithValidation
    */
   @Override
   public void execute(RevWalk walk, ProgressMonitor monitor) throws IOException {
