You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/08/28 10:32:19 UTC

[43/50] [abbrv] logging-log4j2 git commit: [LOG4J2-1511] DynamicThresholdFilter filters incorrectly when params are passed as individual arguments instead of varargs.

[LOG4J2-1511] DynamicThresholdFilter filters incorrectly when params are
passed as individual arguments instead of varargs.

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/0c9c9f38
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/0c9c9f38
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/0c9c9f38

Branch: refs/heads/LOG4J2-1528
Commit: 0c9c9f384475af3402833e9a2a27e97248b84b38
Parents: 13feb49
Author: Gary Gregory <gg...@apache.org>
Authored: Fri Aug 26 22:14:47 2016 -0700
Committer: Gary Gregory <gg...@apache.org>
Committed: Fri Aug 26 22:14:47 2016 -0700

----------------------------------------------------------------------
 .../core/filter/DynamicThresholdFilter.java     | 79 ++++++++++++++++++++
 .../core/filter/DynamicThresholdFilterTest.java | 17 +++++
 src/changes/changes.xml                         |  3 +
 3 files changed, 99 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c9c9f38/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
index 2a2d54c..24cfada 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
@@ -149,6 +149,85 @@ public final class DynamicThresholdFilter extends AbstractFilter {
         return filter(level, ThreadContext.getContext());
     }
 
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1, final Object p2) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1, final Object p2, final Object p3) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1, final Object p2, final Object p3,
+            final Object p4) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1, final Object p2, final Object p3,
+            final Object p4, final Object p5) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1, final Object p2, final Object p3,
+            final Object p4, final Object p5, final Object p6) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1, final Object p2, final Object p3,
+            final Object p4, final Object p5, final Object p6,
+            final Object p7) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1, final Object p2, final Object p3,
+            final Object p4, final Object p5, final Object p6,
+            final Object p7, final Object p8) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+
+    @Override
+    public Result filter(final Logger logger, final Level level, final Marker marker, final String msg,
+            final Object p0, final Object p1, final Object p2, final Object p3,
+            final Object p4, final Object p5, final Object p6,
+            final Object p7, final Object p8, final Object p9) {
+        return filter(level, ThreadContext.getContext());
+
+    }
+    
     public String getKey() {
         return this.key;
     }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c9c9f38/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilterTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilterTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilterTest.java
index 21f1ca0..1cf6b60 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilterTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilterTest.java
@@ -74,9 +74,26 @@ public class DynamicThresholdFilterTest {
         assertSame(Filter.Result.DENY, filter.filter(event));
         event = Log4jLogEvent.newBuilder().setLevel(Level.ERROR).setMessage(new SimpleMessage("Test")).build();
         assertSame(Filter.Result.NEUTRAL, filter.filter(event));
+        ThreadContext.clearMap();
     }
 
     @Test
+    public void testFilterWorksWhenParamsArePassedAsArguments() {
+        ThreadContext.put("userid", "testuser");
+        ThreadContext.put("organization", "apache");
+        final KeyValuePair[] pairs = new KeyValuePair[] {
+                new KeyValuePair("testuser", "DEBUG"),
+                new KeyValuePair("JohnDoe", "warn") };
+        final DynamicThresholdFilter filter = DynamicThresholdFilter.createFilter("userid", pairs, Level.ERROR, Filter.Result.ACCEPT, Filter.Result.NEUTRAL);
+        filter.start();
+        assertTrue(filter.isStarted());
+        Object [] replacements = {"one", "two", "three"};
+        assertSame(Filter.Result.ACCEPT, filter.filter(null, Level.DEBUG, null, "some test message", replacements)); 
+        assertSame(Filter.Result.ACCEPT, filter.filter(null, Level.DEBUG, null, "some test message", "one", "two", "three")); 
+        ThreadContext.clearMap();
+    }
+    
+    @Test
     public void testConfig() {
         try (final LoggerContext ctx = Configurator.initialize("Test1",
                 "target/test-classes/log4j2-dynamicfilter.xml")) {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0c9c9f38/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2a1f57a..818f570 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -24,6 +24,9 @@
   </properties>
   <body>
     <release version="2.7" date="2016-MM-DD" description="GA Release 2.7">
+      <action issue="LOG4J2-1511" dev="ggregory" type="fix" due-to="Srikanth Surukuntu">
+        DynamicThresholdFilter filters incorrectly when params are passed as individual arguments instead of varargs.
+      </action>
       <action issue="LOG4J2-1548" dev="ggregory" type="fix">
         [CronTriggeringPolicy] ConfigurationScheduler schedules the task infinitely after first fire.
       </action>