LOG4J2-435 prevent unconditional deletion Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/eb1f7a2a Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/eb1f7a2a Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/eb1f7a2a
Branch: refs/heads/master Commit: eb1f7a2a51bb3c6970a304d540d97f6f4393714b Parents: c337f9b Author: rpopma <[email protected]> Authored: Fri Nov 27 13:02:26 2015 +0900 Committer: rpopma <[email protected]> Committed: Fri Nov 27 13:02:26 2015 +0900 ---------------------------------------------------------------------- .../logging/log4j/core/appender/rolling/action/IfAll.java | 3 +++ .../logging/log4j/core/appender/rolling/action/IfAllTest.java | 5 +++++ .../logging/log4j/core/appender/rolling/action/IfAnyTest.java | 5 +++++ .../logging/log4j/core/appender/rolling/action/IfNotTest.java | 7 ++++++- 4 files changed, 19 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/eb1f7a2a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/IfAll.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/IfAll.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/IfAll.java index 8e086cd..84a9388 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/IfAll.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/IfAll.java @@ -48,6 +48,9 @@ public final class IfAll implements PathCondition { */ @Override public boolean accept(final Path baseDir, final Path relativePath, final BasicFileAttributes attrs) { + if (components == null || components.length == 0) { + return false; // unconditional delete not supported + } for (final PathCondition component : components) { if (!component.accept(baseDir, relativePath, attrs)) { return false; http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/eb1f7a2a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAllTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAllTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAllTest.java index 545c856..12d5a05 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAllTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAllTest.java @@ -39,6 +39,11 @@ public class IfAllTest { } @Test + public void testEmptyIsFalse() { + assertFalse(IfAll.createAndCondition().accept(null, null, null)); + } + + @Test public void testBeforeTreeWalk() { final CountingCondition counter = new CountingCondition(true); final IfAll and = IfAll.createAndCondition(counter, counter, counter); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/eb1f7a2a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAnyTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAnyTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAnyTest.java index a90aa70..52a8b27 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAnyTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfAnyTest.java @@ -37,6 +37,11 @@ public class IfAnyTest { } @Test + public void testEmptyIsFalse() { + assertFalse(IfAny.createOrCondition().accept(null, null, null)); + } + + @Test public void testBeforeTreeWalk() { final CountingCondition counter = new CountingCondition(true); final IfAny or = IfAny.createOrCondition(counter, counter, counter); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/eb1f7a2a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfNotTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfNotTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfNotTest.java index 3f2a89a..c5abfb9 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfNotTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/action/IfNotTest.java @@ -35,7 +35,12 @@ public class IfNotTest { assertFalse(new FixedCondition(false).accept(null, null, null)); assertTrue(IfNot.createNotCondition(new FixedCondition(false)).accept(null, null, null)); } - + + @Test(expected = NullPointerException.class) + public void testEmptyIsFalse() { + assertFalse(IfNot.createNotCondition(null).accept(null, null, null)); + } + @Test public void testBeforeTreeWalk() { final CountingCondition counter = new CountingCondition(true);
