This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-compress.git
The following commit(s) were added to refs/heads/master by this push: new 1b71f2b8 Reuse Commons IO for deleting test fixtures 1b71f2b8 is described below commit 1b71f2b85ee0d4311e8613e6382ef38723864629 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Wed Nov 1 08:59:56 2023 -0400 Reuse Commons IO for deleting test fixtures --- .../apache/commons/compress/AbstractTestCase.java | 44 ++++++---------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/src/test/java/org/apache/commons/compress/AbstractTestCase.java b/src/test/java/org/apache/commons/compress/AbstractTestCase.java index 06c1f155..6b4f9397 100644 --- a/src/test/java/org/apache/commons/compress/AbstractTestCase.java +++ b/src/test/java/org/apache/commons/compress/AbstractTestCase.java @@ -41,6 +41,7 @@ import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.ArchiveInputStream; import org.apache.commons.compress.archivers.ArchiveOutputStream; import org.apache.commons.compress.archivers.ArchiveStreamFactory; +import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.SystemUtils; import org.apache.commons.lang3.ThreadUtils; @@ -78,51 +79,28 @@ public abstract class AbstractTestCase { } public static void rmdir(final File directory) { - final String[] fileList = directory.list(); - if (fileList != null) { - for (final String element : fileList) { - final File file = new File(directory, element); - if (file.isDirectory()) { - rmdir(file); - } - final boolean deleted = tryHardToDelete(file); - if (!deleted && file.exists()) { - System.err.println("Failed to delete " + element + " in " + directory.getPath()); - } - } - } - tryHardToDelete(directory); // safer to delete and check - if (directory.exists()) { - fail("Failed to delete " + directory.getPath()); - } + tryHardToDelete(directory); } /** - * Accommodate Windows bug encountered in both Sun and IBM JDKs. - * Others possible. If the delete does not work, call System.gc(), - * wait a little and try again. - * - * Copied from FileUtils in Ant 1.8.0. + * Deletes a file or directory. For a directory, delete it and all subdirectories. * * @return whether deletion was successful */ public static boolean tryHardToDelete(final File file) { - if (file != null && file.exists() && !file.delete()) { - if (SystemUtils.IS_OS_WINDOWS) { - System.gc(); + try { + if (file != null) { + FileUtils.forceDelete(file); } - ThreadUtils.sleepQuietly(Duration.ofSeconds(10)); - return file.delete(); + return true; + } catch (IOException e) { + e.printStackTrace(); + return false; } - return true; } /** - * Accommodate Windows bug encountered in both Sun and IBM JDKs. - * Others possible. If the delete does not work, call System.gc(), - * wait a little and try again. - * - * Copied from FileUtils in Ant 1.8.0. + * Deletes a file or directory. For a directory, delete it and all subdirectories. * * @return whether deletion was successful */