From dd313defdcdfbf9f53e48ad88eaff3cb3eec6d2c Mon Sep 17 00:00:00 2001 From: Louis Bergelson Date: Wed, 6 Mar 2019 23:01:58 -0500 Subject: [PATCH] Deprecate TestUtil.deleteRecursively (#1315) * It has been replaced by IOUtil.recursiveDelete() --- src/main/java/htsjdk/samtools/util/IOUtil.java | 15 ++++++++++----- src/main/java/htsjdk/samtools/util/TestUtil.java | 4 +++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/htsjdk/samtools/util/IOUtil.java b/src/main/java/htsjdk/samtools/util/IOUtil.java index 41e1081800..b863000b32 100755 --- a/src/main/java/htsjdk/samtools/util/IOUtil.java +++ b/src/main/java/htsjdk/samtools/util/IOUtil.java @@ -1318,20 +1318,21 @@ private static String stripQueryStringIfPathIsAnHttpUrl(String path) { } /** - * Little test utility to help tests that create multiple levels of subdirectories - * clean up after themselves. + * Delete a directory and all files in it. * * @param directory The directory to be deleted (along with its subdirectories) */ - public static void recursiveDelete(final Path directory) throws IOException { - + public static void recursiveDelete(final Path directory) { + final SimpleFileVisitor simpleFileVisitor = new SimpleFileVisitor() { + @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { super.visitFile(file, attrs); Files.deleteIfExists(file); return FileVisitResult.CONTINUE; } + @Override public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { super.postVisitDirectory(dir, exc); Files.deleteIfExists(dir); @@ -1339,6 +1340,10 @@ public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOEx } }; - Files.walkFileTree(directory, simpleFileVisitor); + try { + Files.walkFileTree(directory, simpleFileVisitor); + } catch (final IOException e){ + throw new RuntimeIOException(e); + } } } diff --git a/src/main/java/htsjdk/samtools/util/TestUtil.java b/src/main/java/htsjdk/samtools/util/TestUtil.java index 498cca19a5..eb324239fd 100644 --- a/src/main/java/htsjdk/samtools/util/TestUtil.java +++ b/src/main/java/htsjdk/samtools/util/TestUtil.java @@ -94,11 +94,13 @@ public static T serializeAndDeserialize(T input) throws * clean up after themselves. * * @param directory The directory to be deleted (along with its subdirectories) + * @deprecated Since 3/19, prefer {@link IOUtil#recursiveDelete(Path)} */ + @Deprecated public static void recursiveDelete(final File directory) { try { IOUtil.recursiveDelete(directory.toPath()); - } catch (IOException e) { + } catch (RuntimeIOException e) { // bury exception } }