Merge branch 'stable-2.14' into stable-2.15
* stable-2.14:
Update mockito to 2.23.4
Always pass ALLOW_INSECURE to MoreFiles.deleteRecursively
ArchiveRepositoryRemoverTest: Refactor assertions on repo content
Format external_plugin_deps.bzl with buildifier
Upgrade bazlets to latest stable-2.14 to build with 2.14.17 API
Upgrade bazlets to latest stable-2.14 to build with 2.14.16 API
Change-Id: Ie45390df44f13bf66234cf8b41f3e51eb405701d
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index bd864bf..64ddc2f 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -3,8 +3,8 @@
def external_plugin_deps():
maven_jar(
name = "mockito",
- artifact = "org.mockito:mockito-core:2.23.0",
- sha1 = "497ddb32fd5d01f9dbe99a2ec790aeb931dff1b1",
+ artifact = "org.mockito:mockito-core:2.23.4",
+ sha1 = "a35b6f8ffcfa786771eac7d7d903429e790fdf3f",
deps = [
"@byte-buddy//jar",
"@byte-buddy-agent//jar",
@@ -12,18 +12,18 @@
],
)
- BYTE_BUDDY_VERSION = "1.9.0"
+ BYTE_BUDDY_VERSION = "1.9.3"
maven_jar(
name = "byte-buddy",
artifact = "net.bytebuddy:byte-buddy:" + BYTE_BUDDY_VERSION,
- sha1 = "8cb0d5baae526c9df46ae17693bbba302640538b",
+ sha1 = "f32e510b239620852fc9a2387fac41fd053d6a4d",
)
maven_jar(
name = "byte-buddy-agent",
artifact = "net.bytebuddy:byte-buddy-agent:" + BYTE_BUDDY_VERSION,
- sha1 = "37b5703b4a6290be3fffc63ae9c6bcaaee0ff856",
+ sha1 = "f5b78c16cf4060664d80b6ca32d80dca4bd3d264",
)
maven_jar(
@@ -35,4 +35,4 @@
name = "commons-io",
artifact = "commons-io:commons-io:2.6",
sha1 = "815893df5f31da2ece4040fe0a12fd44b577afaf",
- )
+ )
diff --git a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java
index ec6c29a..4cbf83b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemover.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.deleteproject.fs;
+import static com.google.common.io.RecursiveDeleteOption.ALLOW_INSECURE;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
@@ -102,7 +103,7 @@
private void cleanUpOverdueRepositories() {
for (Path path : listOverdueFiles(config.getArchiveDuration())) {
try {
- MoreFiles.deleteRecursively(path);
+ MoreFiles.deleteRecursively(path, ALLOW_INSECURE);
} catch (IOException e) {
logger.warn("Error trying to clean the archived git repository: {}", path, e);
}
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 b1a1c74..003f154 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
@@ -103,7 +103,7 @@
Path basePath = getBasePath(repoPath, projectName);
Path trash = renameRepository(repoPath, basePath, projectName, "deleted");
try {
- MoreFiles.deleteRecursively(trash);
+ MoreFiles.deleteRecursively(trash, ALLOW_INSECURE);
recursivelyDeleteEmptyParents(repoPath.toFile().getParentFile(), basePath.toFile());
} catch (IOException e) {
// Only log if delete failed - repo already moved to trash.
diff --git a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemoverTest.java b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemoverTest.java
index b1265bc..64634b9 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemoverTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/deleteproject/fs/ArchiveRepositoryRemoverTest.java
@@ -16,6 +16,8 @@
import static com.google.common.truth.Truth.assertThat;
import static java.util.concurrent.TimeUnit.SECONDS;
+import static java.util.stream.Collectors.toList;
+import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isA;
@@ -24,6 +26,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import com.google.common.base.Joiner;
import com.google.gerrit.server.git.WorkQueue;
import com.google.inject.Provider;
import com.googlesource.gerrit.plugins.deleteproject.Configuration;
@@ -33,9 +36,11 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.Instant;
+import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
+import java.util.stream.StreamSupport;
import org.eclipse.jgit.internal.storage.file.FileRepository;
import org.eclipse.jgit.lib.Repository;
import org.junit.Before;
@@ -94,7 +99,7 @@
String.format(
"[%s]: Clean up expired git repositories from the archive [%s]",
PLUGIN_NAME, archiveRepo));
- assertThat(isDirEmpty(archiveRepo)).isTrue();
+ assertDirectoryContents(archiveRepo, true);
} finally {
TimeMachine.useSystemDefaultZoneClock();
}
@@ -122,7 +127,7 @@
for (int i = 0; i < NUMBER_OF_REPOS; i++) {
createRepository("Repo_" + i);
}
- assertThat(isDirEmpty(archiveRepo)).isFalse();
+ assertDirectoryContents(archiveRepo, false);
}
private FileRepository createRepository(String repoName) throws IOException {
@@ -132,9 +137,17 @@
return (FileRepository) repository;
}
- private boolean isDirEmpty(final Path dir) throws IOException {
+ private void assertDirectoryContents(Path dir, boolean expectEmpty) throws IOException {
try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(dir)) {
- return !dirStream.iterator().hasNext();
+ List<Path> paths = StreamSupport.stream(dirStream.spliterator(), false).collect(toList());
+ if (expectEmpty && !paths.isEmpty()) {
+ fail(
+ String.format(
+ "Expected dir [%s] to be empty but it contains: %s",
+ dir, Joiner.on(", ").join(paths)));
+ } else if (!expectEmpty && paths.isEmpty()) {
+ fail(String.format("Expected dir [%s] to be non-empty but it is empty", dir));
+ }
}
}
}