diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandler.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandler.java
index bbd68b5..8e381d5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/FilesystemDeleteHandler.java
@@ -73,10 +73,10 @@
     // Remove from the jgit cache
     Repository repository =
         repoManager.openRepository(project.getNameKey());
-    File repoParentFile = repository.getDirectory().getParentFile();
+    File repoFile = repository.getDirectory();
     cleanCache(repository);
     if (!preserveGitRepository) {
-      deleteGitRepository(project.getNameKey(), repoParentFile);
+      deleteGitRepository(project.getNameKey(), repoFile);
     }
   }
 
@@ -107,9 +107,9 @@
   }
 
   private void deleteGitRepository(final Project.NameKey project,
-      final File repoParentFile) throws IOException {
+      final File repoFile) throws IOException {
     // Delete the repository from disk
-    Path trash = moveToTrash(repoParentFile.toPath(), project);
+    Path trash = moveToTrash(repoFile.toPath(), project);
     try {
       recursiveDelete(trash);
     } catch (IOException e) {
@@ -119,7 +119,7 @@
     }
 
     // Delete parent folders if they are (now) empty
-    recursiveDeleteParent(repoParentFile, gitDir);
+    recursiveDeleteParent(repoFile.getParentFile(), gitDir);
 
     // Send an event that the repository was deleted
     ProjectDeletedListener.Event event = new ProjectDeletedListener.Event() {
