diff --git a/WHATSNEW b/WHATSNEW index a0e30fc48..9d738dfa7 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -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 + tasks were trying to create the same directory. + Bugzilla Report 49572. + Other changes: -------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/Mkdir.java b/src/main/org/apache/tools/ant/taskdefs/Mkdir.java index 6b0fe3857..6b19460d9 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Mkdir.java +++ b/src/main/org/apache/tools/ant/taskdefs/Mkdir.java @@ -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());