You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bo...@apache.org on 2018/05/08 03:57:18 UTC

commons-compress git commit: better check result of mkdirs

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 <bo...@apache.org>
Authored: Tue May 8 05:56:58 2018 +0200
Committer: Stefan Bodewig <bo...@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);
             }