LOG4J2-435 update test now that path is relevant when time is same Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/cae75bce Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/cae75bce Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/cae75bce
Branch: refs/heads/LOG4J-1181 Commit: cae75bce8c0360e90b3e7df298cf5eb8a16a8fdf Parents: 89762fb Author: rpopma <[email protected]> Authored: Sun Nov 29 16:49:55 2015 +0900 Committer: rpopma <[email protected]> Committed: Sun Nov 29 16:49:55 2015 +0900 ---------------------------------------------------------------------- .../rolling/action/PathSortByModificationTime.java | 10 ++++++---- .../rolling/action/PathSortByModificationTimeTest.java | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cae75bce/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTime.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTime.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTime.java index 22aaf20..0375c49 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTime.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTime.java @@ -70,14 +70,16 @@ public class PathSortByModificationTime implements PathSorter { public int compare(final PathWithAttributes path1, final PathWithAttributes path2) { final long lastModified1 = path1.getAttributes().lastModifiedTime().toMillis(); final long lastModified2 = path2.getAttributes().lastModifiedTime().toMillis(); - int result = multiplier * Long.signum(lastModified2 - lastModified1); + int result = Long.signum(lastModified2 - lastModified1); if (result == 0) { // if same time compare paths lexicographically try { - result = path1.getPath().compareTo(path2.getPath()); + // assuming paths contain counters and dates, use reverse lexicographical order: + // 20151129 before 20151128, path-2.log before path-1.log + result = path2.getPath().compareTo(path1.getPath()); } catch (final ClassCastException ex) { - result = path1.getPath().toString().compareTo(path2.getPath().toString()); + result = path2.getPath().toString().compareTo(path1.getPath().toString()); } } - return result; + return multiplier * result; } } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/cae75bce/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTimeTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTimeTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTimeTest.java index 8127cac..5158789 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTimeTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/PathSortByModificationTimeTest.java @@ -59,8 +59,8 @@ public class PathSortByModificationTimeTest { assertEquals("path ignored, 1st more recent", -1, sorter.compare(path(p2, a2), path(p1, a1))); assertEquals("same path, same time", 0, sorter.compare(path(p1, a1), path(p1, a1))); - assertEquals("path ignored, same time", 0, sorter.compare(path(p1, a1), path(p2, a1))); - assertEquals("path ignored, same time", 0, sorter.compare(path(p2, a1), path(p1, a1))); + assertEquals("p2 < p1, same time", 1, sorter.compare(path(p1, a1), path(p2, a1))); + assertEquals("p2 < p1, same time", -1, sorter.compare(path(p2, a1), path(p1, a1))); } @Test @@ -82,8 +82,8 @@ public class PathSortByModificationTimeTest { assertEquals("path ignored, 1st more recent", 1, sorter.compare(path(p2, a2), path(p1, a1))); assertEquals("same path, same time", 0, sorter.compare(path(p1, a1), path(p1, a1))); - assertEquals("path ignored, same time", 0, sorter.compare(path(p1, a1), path(p2, a1))); - assertEquals("path ignored, same time", 0, sorter.compare(path(p2, a1), path(p1, a1))); + assertEquals("p1 < p2, same time", -1, sorter.compare(path(p1, a1), path(p2, a1))); + assertEquals("p1 < p2, same time", 1, sorter.compare(path(p2, a1), path(p1, a1))); } private PathWithAttributes path(Path path, DummyFileAttributes attributes) {
