Author: bodewig Date: Fri Jul 9 11:04:49 2010 New Revision: 962483 URL: http://svn.apache.org/viewvc?rev=962483&view=rev Log: multiple parallel mkdirs could make each other fail. PR 49572
Modified: ant/core/trunk/WHATSNEW ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Mkdir.java Modified: ant/core/trunk/WHATSNEW URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=962483&r1=962482&r2=962483&view=diff ============================================================================== --- ant/core/trunk/WHATSNEW (original) +++ ant/core/trunk/WHATSNEW Fri Jul 9 11:04:49 2010 @@ -96,6 +96,10 @@ Fixed bugs: resourcelist in the documentation (getting the first available resource from a mirror list). + * A race condition could lead to build failures if multiple <mkdir> + tasks were trying to create the same directory. + Bugzilla Report 49572. + Other changes: -------------- Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Mkdir.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Mkdir.java?rev=962483&r1=962482&r2=962483&view=diff ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Mkdir.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Mkdir.java Fri Jul 9 11:04:49 2010 @@ -59,6 +59,12 @@ public class Mkdir extends Task { if (!dir.exists()) { boolean result = mkdirs(dir); if (!result) { + if (dir.exists()) { + log("A different process or task has already created " + + "dir " + dir.getAbsolutePath(), + Project.MSG_VERBOSE); + return; + } String msg = "Directory " + dir.getAbsolutePath() + " creation was not successful for an unknown reason"; throw new BuildException(msg, getLocation());