Andrey Plotkin created LOG4J2-1559:
--------------------------------------

             Summary: NPE in Level.isInRange
                 Key: LOG4J2-1559
                 URL: https://issues.apache.org/jira/browse/LOG4J2-1559
             Project: Log4j 2
          Issue Type: Bug
          Components: Filters
    Affects Versions: 2.6.2, 2.6.1, 2.6, 2.5, 2.4.1, 2.4
         Environment: Windows 10, Java 1.7
            Reporter: Andrey Plotkin


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;



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to