You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@logging.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/07/07 20:55:00 UTC

[jira] [Commented] (LOG4J2-1511) DynamicThresholdFilter filters incorrectly when params are passed as individual arguments instead of varargs

    [ https://issues.apache.org/jira/browse/LOG4J2-1511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16078675#comment-16078675 ] 

ASF GitHub Bot commented on LOG4J2-1511:
----------------------------------------

Github user mikaelstaldal commented on the issue:

    https://github.com/apache/logging-log4j2/pull/40
  
    Can this PR be closed @garydgregory ?


> DynamicThresholdFilter filters incorrectly when params are passed as individual arguments instead of varargs
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-1511
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1511
>             Project: Log4j 2
>          Issue Type: Bug
>    Affects Versions: 2.6.2
>            Reporter: Srikanth
>             Fix For: 2.7
>
>
> The below test should summarize the issue.
> {code}
> package org.apache.logging.log4j.core.filter;
> import static org.junit.Assert.assertSame;
> import static org.junit.Assert.assertTrue;
> import org.apache.logging.log4j.Level;
> import org.apache.logging.log4j.ThreadContext;
> import org.apache.logging.log4j.core.Filter;
> import org.apache.logging.log4j.core.LoggerContext;
> import org.apache.logging.log4j.core.util.KeyValuePair;
> import org.apache.logging.log4j.status.StatusLogger;
> import org.junit.After;
> import org.junit.Test;
> /**
>  *
>  */
> public class DynamicThresholdFilterTest {
>     @After
>     public void cleanup() {
>         final LoggerContext ctx = LoggerContext.getContext(false);
>         ctx.reconfigure();
>         StatusLogger.getLogger().reset();
>     }
>     @Test
>     public void testFilter() {
>         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)); // Works
>         assertSame(Filter.Result.ACCEPT, filter.filter(null, Level.DEBUG, null, "some test message", "one", "two", "three")); // Doesn't work but it should
>         ThreadContext.clearMap();
>     }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)