[
https://issues.apache.org/jira/browse/LOG4J2-1025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14574936#comment-14574936
]
Gary Gregory commented on LOG4J2-1025:
--------------------------------------
I am not a fan of this #2 patch because it costs a null check on a what should
the most efficient code path. Also if the the level is null, it does not cause
a problem in the patched method.
If there should be a null check, it should be where the null would actually be
harmful and cause an NPE. At that point the null check can thrown or do
something less harmful and at least log a warning to the status logger ("I do
not know about level foo, so I am mapping it to debug" or "I am dropping this
event on the floor".
> Custom java.util.logging.Level gives null Log4j Level and causes NPE
> --------------------------------------------------------------------
>
> Key: LOG4J2-1025
> URL: https://issues.apache.org/jira/browse/LOG4J2-1025
> Project: Log4j 2
> Issue Type: Bug
> Components: JUL adapter
> Affects Versions: 2.3
> Reporter: Mikael Ståldal
> Fix For: 2.4
>
> Attachments: LOG4J2-1025-2.patch, LOG4J2-1025.patch
>
>
> I use a 3rd party library which uses custom non-standard
> java.util.logging.Level.
> The Log4j JUL adapter will emit log event with level set to null in that
> case, which causes NullPointerException in a Log4j filter further on.
> This is not acceptable. When encountering an unrecognised JUL Level, the JUL
> adapter should either:
> - emit some default Log4j Level
> - throw an Exception with a clear error message immediately
> - silently discard the log event
> - discard the log event and log a warning to the StatusLogger
> {code}
> java.lang.NullPointerException
> at org.apache.logging.log4j.Level.isMoreSpecificThan(Level.java:163)
> at
> org.apache.logging.log4j.core.filter.BurstFilter.filter(BurstFilter.java:129)
> at
> org.apache.logging.log4j.core.filter.BurstFilter.filter(BurstFilter.java:101)
> at
> org.apache.logging.log4j.core.Logger$PrivateConfig.filter(Logger.java:295)
> at org.apache.logging.log4j.core.Logger.isEnabled(Logger.java:122)
> at
> org.apache.logging.log4j.spi.ExtendedLoggerWrapper.isEnabled(ExtendedLoggerWrapper.java:87)
> at
> org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:699)
> at
> org.apache.logging.log4j.jul.WrappedLogger.log(WrappedLogger.java:50)
> at org.apache.logging.log4j.jul.ApiLogger.log(ApiLogger.java:106)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]