diff --git a/src/main/org/apache/tools/ant/types/selectors/MappingSelector.java b/src/main/org/apache/tools/ant/types/selectors/MappingSelector.java index aaba589ea..206cbf4d7 100644 --- a/src/main/org/apache/tools/ant/types/selectors/MappingSelector.java +++ b/src/main/org/apache/tools/ant/types/selectors/MappingSelector.java @@ -59,6 +59,7 @@ import org.apache.tools.ant.BuildException; import org.apache.tools.ant.taskdefs.condition.Os; import org.apache.tools.ant.util.IdentityMapper; import org.apache.tools.ant.util.FileNameMapper; +import org.apache.tools.ant.util.FileUtils; import java.io.File; @@ -78,9 +79,7 @@ public abstract class MappingSelector extends BaseSelector { * */ public MappingSelector() { - if (Os.isFamily("dos")) { - granularity = 2000; - } + granularity=(int) FileUtils.newFileUtils().getFileTimestampGranularity(); } diff --git a/src/main/org/apache/tools/ant/util/FileUtils.java b/src/main/org/apache/tools/ant/util/FileUtils.java index ea2f5c3d1..00d8c9477 100644 --- a/src/main/org/apache/tools/ant/util/FileUtils.java +++ b/src/main/org/apache/tools/ant/util/FileUtils.java @@ -111,6 +111,11 @@ public class FileUtils { private static char[] escapedChar1 = new char[256]; private static char[] escapedChar2 = new char[256]; + /** + * the granularity of timestamps under FAT + */ + public static final long FAT_FILE_TIMESTAMP_GRANULARITY=2000; + // stolen from FilePathToURI of the Xerces-J team static { @@ -1328,5 +1333,12 @@ public class FileUtils { } } + public long getFileTimestampGranularity() { + if(Os.isFamily("dos")) { + return FAT_FILE_TIMESTAMP_GRANULARITY; + } else { + return 0; + } + } }