From: Javen O'Neal Date: Wed, 21 Sep 2016 03:19:31 +0000 (+0000) Subject: bug 57200,59788: be more specific why a temporary directory could not be created X-Git-Tag: REL_3_16_BETA1~163 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=5b9c30414809d5faa2cc2b8d1c0c49c750c98060;p=poi.git bug 57200,59788: be more specific why a temporary directory could not be created git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1761667 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java b/src/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java index ef9e8443a4..6f44752873 100644 --- a/src/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java +++ b/src/java/org/apache/poi/util/DefaultTempFileCreationStrategy.java @@ -83,15 +83,22 @@ public class DefaultTempFileCreationStrategy implements TempFileCreationStrategy } /** - * Attempt to create a directory + * Attempt to create a directory, including any necessary parent directories. + * Does nothing if directory already exists. * - * @param directory - * @throws IOException + * @param directory the directory to create + * @throws IOException if unable to create temporary directory or it is not a directory */ private void createTempDirectory(File directory) throws IOException { - if (!(directory.exists() || directory.mkdirs()) || !directory.isDirectory()) { + // create directory if it doesn't exist + final boolean dirExists = (directory.exists() || directory.mkdirs()); + + if (!dirExists) { throw new IOException("Could not create temporary directory '" + directory + "'"); } + else if (!directory.isDirectory()) { + throw new IOException("Could not create temporary directory. '" + directory + "' exists but is not a directory."); + } } @Override