diff --git a/src/test/java/com/googlesource/gerrit/plugins/supermanifest/JiriSuperManifestIT.java b/src/test/java/com/googlesource/gerrit/plugins/supermanifest/JiriSuperManifestIT.java
index 18d9d6d..5852a25 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/supermanifest/JiriSuperManifestIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/supermanifest/JiriSuperManifestIT.java
@@ -24,8 +24,8 @@
 import com.google.gerrit.acceptance.TestPlugin;
 import com.google.gerrit.extensions.api.projects.BranchApi;
 import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
-import com.google.gerrit.reviewdb.client.Project.NameKey;
 import com.google.gerrit.reviewdb.client.Project;
+import com.google.gerrit.reviewdb.client.Project.NameKey;
 import com.google.gerrit.reviewdb.client.RefNames;
 import java.net.URI;
 import java.util.Arrays;
@@ -173,7 +173,7 @@
     assertThat(branch.file("project3").getContentType()).isEqualTo("x-git/gitlink; charset=UTF-8");
   }
 
-  private void outer() {
+  private void outer() throws Exception {
     inner();
   }
 
@@ -181,7 +181,7 @@
     throw new IllegalStateException();
   }
 
-  private void innerTest() {
+  private void innerTest() throws Exception {
     try {
       outer();
       fail("should throw");
@@ -470,7 +470,7 @@
   /*
    * Copied test from https://github.com/eclipse/jgit/blob/e9fb111182b55cc82c530d82f13176c7a85cd958/org.eclipse.jgit.test/tst/org/eclipse/jgit/gitrepo/RepoCommandTest.java#L1105
    */
-  void testRelative(String a, String b, String want) {
+  void testRelative(String a, String b, String want) throws Exception {
     String got = JiriUpdater.relativize(URI.create(a), URI.create(b)).toString();
 
     if (!got.equals(want)) {
@@ -479,7 +479,7 @@
   }
 
   @Test
-  public void relative() {
+  public void relative() throws Exception {
     testRelative("a/b/", "a/", "../");
     // Normalization:
     testRelative("a/p/..//b/", "a/", "../");
diff --git a/src/test/java/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java b/src/test/java/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java
index a00a8aa..65d2c81 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java
@@ -16,7 +16,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 import static java.nio.charset.StandardCharsets.UTF_8;
-import static org.junit.Assert.fail;
 
 import com.google.gerrit.acceptance.GitUtil;
 import com.google.gerrit.acceptance.LightweightPluginDaemonTest;
@@ -280,7 +279,7 @@
     assertThat(branch.file("project1").getContentType()).isEqualTo("x-git/gitlink; charset=UTF-8");
   }
 
-  private void outer() {
+  private void outer() throws Exception {
     inner();
   }
 
@@ -288,7 +287,7 @@
     throw new IllegalStateException();
   }
 
-  private void innerTest() {
+  private void innerTest() throws Exception {
     try {
       outer();
       fail("should throw");
