Uploaded image for project: 'logback'
  1. logback
  2. LOGBACK-390

c.q.l.c.filter.EvaluatorFilter should not barf with NPE

    XMLWordPrintable

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • None
    • None
    • logback-classic
    • None
    • Operating System: Windows
      Platform: PC

    • 17

    Description

      In case the evaluator could not be set for c.q.l.c.filter.EvaluatorFilter, it should NOT barf with a NPE.

      LOGBACK: No context given for ch.qos.logback.core.util.PropertySetter@176c74b

      -INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - Ignoring debug attribute.
      -INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
      -INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [STDOUT]
      -ERROR in ch.qos.logback.core.filter.EvaluatorFilter@e5855a - No evaluator set for filter myFilter
      -INFO in ch.qos.logback.core.joran.action.AppenderAction - Popping appender named [STDOUT] from the object stack
      -INFO in ch.qos.logback.classic.joran.action.LevelAction - root level set to DEBUG
      -INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [STDOUT to Logger[root]
      Exception in thread "main" java.lang.NullPointerException
      at ch.qos.logback.core.filter.EvaluatorFilter.decide(EvaluatorFilter.java:34)
      at ch.qos.logback.core.spi.FilterAttachableImpl.getFilterChainDecision(FilterAttachableImpl.java:68)
      at ch.qos.logback.core.AppenderBase.getFilterChainDecision(AppenderBase.java:115)
      at ch.qos.logback.core.AppenderBase.doAppend(AppenderBase.java:65)
      at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
      at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:286)
      at ch.qos.logback.classic.Logger.callAppenders(Logger.java:270)
      at ch.qos.logback.classic.Logger.filterAndLog(Logger.java:375)
      at ch.qos.logback.classic.Logger.debug(Logger.java:398)
      at chapter5.GoMDC.main(GoMDC.java:28)

      Config file:

      <configuration>

      <appender name="STDOUT"
      class="ch.qos.logback.core.ConsoleAppender">
      <layout class="ch.qos.logback.classic.PatternLayout">
      <param name="Pattern"
      value="%-4relative [%thread] %-5level %X

      {testKey}

      - %msg%n" />
      </layout>
      <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
      <Name>myFilter</Name>
      <Evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator">
      <Expression>"k".equals(mdc.get("k"))</Expression>
      </Evaluator>
      </filter>
      </appender>

      public class EvaluatorFilter
      <root>
      <level value="debug" />
      <appender-ref ref="STDOUT" />
      </root>
      </configuration>

      Attachments

        Activity

          People

            logback-dev Logback dev list
            ceki Ceki Gülcü
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: