Uploaded image for project: 'Log4j 2'
  1. Log4j 2
  2. LOG4J2-1559

NPE in Level.isInRange

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.4, 2.4.1, 2.5, 2.6, 2.6.1, 2.6.2
    • 2.7
    • Filters
    • None
    • Windows 10, Java 1.7

    Description

      I got an NPE during simple test:

      Test class:
      public class Test {
      public static void main(String[] args)

      { Logger logger = LogManager.getLogger(Test.class); logger.info("123"); }

      }

      Maven part:
      <dependencies>
      <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>2.6.2</version>
      </dependency>
      <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-1.2-api</artifactId>
      <version>2.6.2</version>
      </dependency>
      </dependencies>

      log4j2.xml part:
      <Configuration>
      <Appenders>
      <Console name="StdErr" target="SYSTEM_ERR">
      <LevelRangeFilter minLevel="WARN" />
      </Console>
      </Appenders>

      <Loggers>
      <Root level="all">
      <AppenderRef ref="StdErr" />
      </Root>
      </Loggers>
      </Configuration>

      The NPE is thrown in:
      Level.isInRange(Level, Level) line: 155
      LevelRangeFilter.filter(Level) line: 80
      LevelRangeFilter.filter(LogEvent) line: 85
      ConsoleAppender(AbstractFilterable).isFiltered(LogEvent) line: 135
      AppenderControl.isFilteredByAppender(LogEvent) line: 150
      AppenderControl.callAppender0(LogEvent) line: 127
      AppenderControl.callAppenderPreventRecursion(LogEvent) line: 119
      AppenderControl.callAppender(LogEvent) line: 84
      LoggerConfig.callAppenders(LogEvent) line: 390
      LoggerConfig.processLogEvent(LogEvent) line: 375
      LoggerConfig.log(LogEvent) line: 359
      LoggerConfig.log(String, String, Marker, Level, Message, Throwable) line: 349
      AwaitCompletionReliabilityStrategy.log(Supplier<LoggerConfig>, String, String, Marker, Level, Message, Throwable) line: 63
      Logger.logMessage(String, Level, Marker, Message, Throwable) line: 146
      Logger(Category).maybeLog(String, Level, Object, Throwable) line: 452
      Logger(Category).info(Object) line: 262
      Test.main(String[]) line: 9

      According to my investigation, degradation was introduced here:
      https://issues.apache.org/jira/browse/LOG4J2-1106

      Bug is in LevelRangeFilter, here:
      final Level actualMaxLevel = minLevel == null ? Level.ERROR : maxLevel;
      It has to be:
      final Level actualMaxLevel = maxLevel == null ? Level.ERROR : maxLevel;

      Attachments

        Issue Links

          Activity

            People

              ggregory Gary D. Gregory
              andreyp1986 Andrey Plotkin
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: