diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/CompleteProjectImport.java b/src/main/java/com/googlesource/gerrit/plugins/importer/CompleteProjectImport.java
index 1f116ee..c108e08 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/CompleteProjectImport.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/CompleteProjectImport.java
@@ -92,8 +92,7 @@
 
   private void deleteImportRefs(Project.NameKey project)
       throws RepositoryNotFoundException, IOException {
-    Repository repo = repoManager.openRepository(project);
-    try {
+    try (Repository repo = repoManager.openRepository(project)) {
       Map<String, Ref> refs = repo.getRefDatabase().getRefs(
           ConfigureRepositoryStep.R_IMPORTS);
       for (Ref ref : refs.values()) {
@@ -111,8 +110,6 @@
                 "Failed to delete %s, RefUpdate.Result = %s", ref, result));
         }
       }
-    } finally {
-      repo.close();
     }
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
index bc8061e..b8e1cf2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
@@ -230,8 +230,7 @@
       checkProjectInSource(input, pm);
       setParentProjectName(input, pm);
       checkPreconditions(pm);
-      Repository repo = openRepoStep.open(targetProject, resume, pm);
-      try {
+      try (Repository repo = openRepoStep.open(targetProject, resume, pm)) {
         ImportJson.persist(lockFile, importJson.format(input, info), pm);
         configRepoStep.configure(repo, srcProject, input.from, pm);
         gitFetchStep.fetch(input.user, input.pass, repo, pm);
@@ -242,8 +241,6 @@
           importGroupsStepFactory.create(input.from, input.user, input.pass,
               targetProject, pm).importGroups();
         }
-      } finally {
-        repo.close();
       }
       importLog.onImport((IdentifiedUser) currentUser.get(), srcProject,
           targetProject, input.from);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
index 8971baf..5cc44f3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
@@ -140,8 +140,7 @@
         break;
       }
       start += changes.size();
-      RevWalk rw = new RevWalk(repo);
-      try {
+      try (RevWalk rw = new RevWalk(repo)) {
         ChangeInfo last = null;
         for (ChangeInfo c : changes) {
           try {
@@ -157,8 +156,6 @@
         if(!Boolean.TRUE.equals(last._moreChanges)) {
           break;
         }
-      } finally {
-        rw.close();
       }
     }
     pm.endTask();
