@Override
    protected int compareFirst(final Path p1, final Path p2) {
        final long d1 = p1.attributes().getModificationDate();
        final long d2 = p2.attributes().getModificationDate();
        if(d1 == d2) {
            return 0;
        }
        if(ascending) {
            return d1 > d2 ? 1 : -1;
        }
        return d1 > d2 ? -1 : 1;
    }
@Test
    public void testCompareFirst() {
        assertEquals(0, new TimestampComparator(true).compareFirst(new Path("/a", EnumSet.of(Path.Type.file)), new Path("/b", EnumSet.of(Path.Type.file))));
        final Path p1 = new Path("/a", EnumSet.of(Path.Type.file));
        p1.attributes().setModificationDate(System.currentTimeMillis());
        final Path p2 = new Path("/b", EnumSet.of(Path.Type.file));
        p2.attributes().setModificationDate(System.currentTimeMillis() - 1000);
        assertEquals(1, new TimestampComparator(true).compareFirst(p1, p2));
    }