Browse Source

re-instante contract of resourceCompare by throwing ClassCastException for non-FileProviders

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@718482 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 16 years ago
parent
commit
d5103ff56c
1 changed files with 12 additions and 2 deletions
  1. +12
    -2
      src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java

+ 12
- 2
src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java View File

@@ -38,8 +38,18 @@ public class FileSystem extends ResourceComparator {
* @throws ClassCastException if either resource is not an instance of FileResource.
*/
protected int resourceCompare(Resource foo, Resource bar) {
File foofile = ((FileProvider) foo.as(FileProvider.class)).getFile();
File barfile = ((FileProvider) bar.as(FileProvider.class)).getFile();
FileProvider fooFP = (FileProvider) foo.as(FileProvider.class);
if (fooFP == null) {
throw new ClassCastException(foo.getClass()
+ " doesn't provide files");
}
File foofile = fooFP.getFile();
FileProvider barFP = (FileProvider) bar.as(FileProvider.class);
if (barFP == null) {
throw new ClassCastException(bar.getClass()
+ " doesn't provide files");
}
File barfile = barFP.getFile();
return foofile.equals(barfile) ? 0
: FILE_UTILS.isLeadingPath(foofile, barfile) ? -1
: FILE_UTILS.normalize(foofile.getAbsolutePath()).compareTo(


Loading…
Cancel
Save