Author: bodewig
Date: Mon Nov 17 20:55:25 2008
New Revision: 718482
URL: http://svn.apache.org/viewvc?rev=718482&view=rev
Log:
re-instante contract of resourceCompare by throwing ClassCastException for
non-FileProviders
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java?rev=718482&r1=718481&r2=718482&view=diff
==============================================================================
---
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java
(original)
+++
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/comparators/FileSystem.java
Mon Nov 17 20:55:25 2008
@@ -38,8 +38,18 @@
* @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(