Author: sebb Date: Tue Aug 30 13:55:44 2011 New Revision: 1163210 URL: http://svn.apache.org/viewvc?rev=1163210&view=rev Log: IO-280 Dubious use of mkdirs() return code
Modified: commons/proper/io/trunk/src/changes/changes.xml commons/proper/io/trunk/src/main/java/org/apache/commons/io/FileUtils.java Modified: commons/proper/io/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/changes/changes.xml?rev=1163210&r1=1163209&r2=1163210&view=diff ============================================================================== --- commons/proper/io/trunk/src/changes/changes.xml (original) +++ commons/proper/io/trunk/src/changes/changes.xml Tue Aug 30 13:55:44 2011 @@ -41,6 +41,9 @@ The <action> type attribute can be add,u <body> <release version="1.4" date="Not yet released"> + <action dev="sebb" type="fix" issue="IO-280" due-to="sebb"> + Dubious use of mkdirs() return code + </action> <action dev="sebb" type="fix" issue="IO-274" due-to="Frank Grimes"> Tailer returning partial lines when reaching EOF before EOL </action> Modified: commons/proper/io/trunk/src/main/java/org/apache/commons/io/FileUtils.java URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/FileUtils.java?rev=1163210&r1=1163209&r2=1163210&view=diff ============================================================================== --- commons/proper/io/trunk/src/main/java/org/apache/commons/io/FileUtils.java (original) +++ commons/proper/io/trunk/src/main/java/org/apache/commons/io/FileUtils.java Tue Aug 30 13:55:44 2011 @@ -324,9 +324,9 @@ public class FileUtils { } } else { File parent = file.getParentFile(); - if (parent != null && parent.exists() == false) { - if (parent.mkdirs() == false) { - throw new IOException("File '" + file + "' could not be created"); + if (parent != null) { + if (!parent.mkdirs() && !parent.isDirectory()) { + throw new IOException("Directory '" + parent + "' could not be created"); } } } @@ -876,9 +876,10 @@ public class FileUtils { if (srcFile.getCanonicalPath().equals(destFile.getCanonicalPath())) { throw new IOException("Source '" + srcFile + "' and destination '" + destFile + "' are the same"); } - if (destFile.getParentFile() != null && destFile.getParentFile().exists() == false) { - if (destFile.getParentFile().mkdirs() == false) { - throw new IOException("Destination '" + destFile + "' directory cannot be created"); + File parentFile = destFile.getParentFile(); + if (parentFile != null) { + if (!parentFile.mkdirs() && !parentFile.isDirectory()) { + throw new IOException("Destination '" + parentFile + "' directory cannot be created"); } } if (destFile.exists() && destFile.canWrite() == false) { @@ -1182,7 +1183,7 @@ public class FileUtils { throw new IOException("Destination '" + destDir + "' exists but is not a directory"); } } else { - if (destDir.mkdirs() == false) { + if (!destDir.mkdirs() && !destDir.isDirectory()) { throw new IOException("Destination '" + destDir + "' directory cannot be created"); } }