Merge branch 'stable-3.8'

* stable-3.8:
  ConfigurationTest: Remove flaky invalidTargetArchiveFolder test
  Send Project Deleted Events also when archiving

Change-Id: Ic64ac7317f430f520ef0350c0bbdb63846823086
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/RepositoryDelete.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/RepositoryDelete.java
index 5ed3b1a..a871817 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/RepositoryDelete.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/RepositoryDelete.java
@@ -92,7 +92,7 @@
       Path repoPath = repository.getDirectory().toPath();
       String projectName = project.get();
       if (archiveDeletedRepos) {
-        archiveGitRepository(projectName, repoPath, archivedFolder);
+        archiveGitRepository(projectName, repoPath, archivedFolder, deletedListeners);
       } else {
         deleteGitRepository(projectName, repoPath, deletedListeners);
       }
@@ -118,7 +118,7 @@
   }
 
   private static void archiveGitRepository(
-      String projectName, Path repoPath, Optional<Path> archivedFolder) throws IOException {
+      String projectName, Path repoPath, Optional<Path> archivedFolder, DynamicSet<ProjectDeletedListener> deletedListeners) throws IOException {
     Path basePath = getBasePath(repoPath, projectName);
     if (archivedFolder.isEmpty()) {
       throw new IllegalArgumentException(
@@ -131,6 +131,8 @@
       MoreFiles.deleteRecursively(renamedProjectDir, ALLOW_INSECURE);
     } catch (IOException e) {
       log.atWarning().withCause(e).log("Error trying to archive %s", renamedProjectDir);
+    } finally {
+      sendProjectDeletedEvent(projectName, deletedListeners);
     }
   }