Browse Source

take name into account when comparing FileResources

https://bz.apache.org/bugzilla/show_bug.cgi?id=57965
master
Stefan Bodewig 9 years ago
parent
commit
592aa74973
2 changed files with 19 additions and 2 deletions
  1. +4
    -2
      src/main/org/apache/tools/ant/types/resources/FileResource.java
  2. +15
    -0
      src/tests/junit/org/apache/tools/ant/types/resources/FileResourceTest.java

+ 4
- 2
src/main/org/apache/tools/ant/types/resources/FileResource.java View File

@@ -282,7 +282,9 @@ public class FileResource extends Resource implements Touchable, FileProvider,
if (of == null) {
return 1;
}
return f.compareTo(of);
int compareFiles = f.compareTo(of);
return compareFiles != 0 ? compareFiles
: getName().compareTo(another.getName());
}
return super.compareTo(another);
}
@@ -305,7 +307,7 @@ public class FileResource extends Resource implements Touchable, FileProvider,
FileResource otherfr = (FileResource) another;
return getFile() == null
? otherfr.getFile() == null
: getFile().equals(otherfr.getFile());
: getFile().equals(otherfr.getFile()) && getName().equals(otherfr.getName());
}

/**


+ 15
- 0
src/tests/junit/org/apache/tools/ant/types/resources/FileResourceTest.java View File

@@ -25,6 +25,7 @@ import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
/**
* Test Java API of {@link FileResource}.
@@ -119,4 +120,18 @@ public class FileResourceTest {
assertEquals(root, parentSibling.getBaseDir());
assertEquals("bar", parentSibling.getName());
}
@Test
public void testEqualsUsesFiles() {
FileResource f1 = new FileResource(new File(root, "foo/a"));
FileResource f2 = new FileResource(new File(root + "/foo"), "a");
assertEquals(f1, f2);
}
@Test
public void testEqualsUsesRelativeNames() {
FileResource f1 = new FileResource(root, "foo/a");
FileResource f2 = new FileResource(new File(root + "/foo"), "a");
assertNotEquals(f1, f2);
}
}

Loading…
Cancel
Save