logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Gregory (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4J2-1025) Custom java.util.logging.Level gives null Log4j Level and causes NPE
Date Wed, 03 Jun 2015 17:07:38 GMT

    [ https://issues.apache.org/jira/browse/LOG4J2-1025?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14571331#comment-14571331

Gary Gregory commented on LOG4J2-1025:

I updated the JUL to Log4j Level map to a {{ConcurrentHashMap}} and changed how it is built
dynamically. There should not be any runtime exceptions due to concurrent access. The only
ugly part is the possible concurrent overwriting of the same level mapping in case a new level
is seen by the converter at the same time. This should not cause a problem. Once all custom
levels are registered, that should be it.

> 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.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

To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org

View raw message