Repository: commons-compress Updated Branches: refs/heads/master 7a10230e1 -> 58cef1268
better check result of mkdirs Project: http://git-wip-us.apache.org/repos/asf/commons-compress/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-compress/commit/58cef126 Tree: http://git-wip-us.apache.org/repos/asf/commons-compress/tree/58cef126 Diff: http://git-wip-us.apache.org/repos/asf/commons-compress/diff/58cef126 Branch: refs/heads/master Commit: 58cef1268241036356e72b5452760a51ec8ab2b5 Parents: 7a10230 Author: Stefan Bodewig <bode...@apache.org> Authored: Tue May 8 05:56:58 2018 +0200 Committer: Stefan Bodewig <bode...@apache.org> Committed: Tue May 8 05:56:58 2018 +0200 ---------------------------------------------------------------------- .../commons/compress/archivers/examples/Expander.java | 9 +++++++-- src/site/xdoc/examples.xml | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-compress/blob/58cef126/src/main/java/org/apache/commons/compress/archivers/examples/Expander.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/compress/archivers/examples/Expander.java b/src/main/java/org/apache/commons/compress/archivers/examples/Expander.java index c4d036c..f6bee61 100644 --- a/src/main/java/org/apache/commons/compress/archivers/examples/Expander.java +++ b/src/main/java/org/apache/commons/compress/archivers/examples/Expander.java @@ -246,9 +246,14 @@ public class Expander { + " would craete file outside of " + targetDirectory); } if (nextEntry.isDirectory()) { - f.mkdirs(); + if (!f.isDirectory() && !f.mkdirs()) { + throw new IOException("failed to create directory " + f); + } } else { - f.getParentFile().mkdirs(); + File parent = f.getParentFile(); + if (!parent.isDirectory() && !parent.mkdirs()) { + throw new IOException("failed to create directory " + parent); + } try (OutputStream o = Files.newOutputStream(f.toPath())) { writer.writeEntryDataTo(nextEntry, o); } http://git-wip-us.apache.org/repos/asf/commons-compress/blob/58cef126/src/site/xdoc/examples.xml ---------------------------------------------------------------------- diff --git a/src/site/xdoc/examples.xml b/src/site/xdoc/examples.xml index ec6ced7..11e6009 100644 --- a/src/site/xdoc/examples.xml +++ b/src/site/xdoc/examples.xml @@ -164,9 +164,14 @@ try (ArchiveInputStream i = ... create the stream for your format, use buffering String name = fileName(targetDir, entry); File f = new File(name); if (entry.isDirectory()) { - f.mkdirs(); + if (!f.isDirectory() && !f.mkdirs()) { + throw new IOException("failed to create directory " + f); + } } else { - f.getParentFile().mkdirs(); + File parent = f.getParentFile(); + if (!parent.isDirectory() && !parent.mkdirs()) { + throw new IOException("failed to create directory " + parent); + } try (OutputStream o = Files.newOutputStream(f.toPath())) { IOUtils.copy(i, o); }