Details
Description
I got an NPE during simple test:
Test class:
public class Test {
public static void main(String[] args)
}
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
Attachments
Issue Links
- links to