diff --git a/src/main/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifestParser.java b/src/main/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifestParser.java
index 96e0326..0f80895 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifestParser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/supermanifest/JiriManifestParser.java
@@ -28,7 +28,6 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.stream.StreamSource;
-import org.eclipse.jgit.api.errors.GitAPIException;
 import org.eclipse.jgit.errors.ConfigInvalidException;
 import org.eclipse.jgit.lib.Repository;
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/supermanifest/RepoUpdater.java b/src/main/java/com/googlesource/gerrit/plugins/supermanifest/RepoUpdater.java
index d04506e..35fb856 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/supermanifest/RepoUpdater.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/supermanifest/RepoUpdater.java
@@ -35,8 +35,8 @@
   }
 
   @Override
-  public void update(GerritRemoteReader reader, ConfigEntry c, String srcRef) throws
-      IOException, GitAPIException {
+  public void update(GerritRemoteReader reader, ConfigEntry c, String srcRef)
+      throws IOException, GitAPIException {
     Repository destRepo = reader.openRepository(c.getDestRepoKey().toString());
     Repository srcRepo = reader.openRepository(c.getSrcRepoKey().toString());
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java b/src/main/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
index 1bc9976..5ae215a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
@@ -277,7 +277,7 @@
         if (!continueOnError) {
           throw e;
         }
-       // We only want the trace up to here. We could recurse into the exception, but this at least
+        // We only want the trace up to here. We could recurse into the exception, but this at least
         // trims the very common jgit.gitrepo.RepoCommand.RemoteUnavailableException.
         StackTraceElement here = Thread.currentThread().getStackTrace()[1];
         e.setStackTrace(trimStack(e.getStackTrace(), here));
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 494648c..71cb82a 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/supermanifest/RepoSuperManifestIT.java
@@ -206,9 +206,10 @@
             + "  srcRef = refs/heads/srcbranch\n"
             + "  srcPath = default.xml\n");
 
-    RestResponse r = userRestSession.post("/projects/"  + manifestKey + "/branches/srcbranch/update_manifest");
+    RestResponse r =
+        userRestSession.post("/projects/" + manifestKey + "/branches/srcbranch/update_manifest");
     r.assertForbidden();
-    r = adminRestSession.post("/projects/"  + manifestKey + "/branches/srcbranch/update_manifest");
+    r = adminRestSession.post("/projects/" + manifestKey + "/branches/srcbranch/update_manifest");
     r.assertNoContent();
 
     BranchApi branch = gApi.projects().name(superKey.get()).branch("refs/heads/destbranch");
@@ -388,9 +389,6 @@
     TestRepository<InMemoryRepository> manifestRepo = cloneProject(manifestKey, admin);
 
     Project.NameKey superKey = createProject("superproject");
-
-    TestRepository<InMemoryRepository> superRepo = cloneProject(superKey, admin);
-
     pushConfig(
         "[superproject \""
             + superKey.get()
