ops4j / org.ops4j.pax.logging

The OSGi Logging framework implementation. Supports SLF4J,LOG4J,JCL etc.
https://ops4j1.jira.com/wiki/spaces/paxlogging/overview
Apache License 2.0
47 stars 79 forks source link

[2.1.x] NullpointerException when MDC contains null values #486

Closed rhierlmeier closed 2 years ago

rhierlmeier commented 2 years ago
java.lang.NullPointerException: null
    at java.util.Hashtable.put(Hashtable.java:460) ~[?:1.8.0_292]
    at org.ops4j.pax.logging.spi.support.EventAdminTracker.createEvent(EventAdminTracker.java:200) ~[!/:?]
    at org.ops4j.pax.logging.spi.support.EventAdminTracker.postEvent(EventAdminTracker.java:61) ~[!/:?]
    at org.ops4j.pax.logging.log4j2.internal.PaxLoggingServiceImpl.handleEvents(PaxLoggingServiceImpl.java:411) ~[!/:?]
    at org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog0(PaxLoggerImpl.java:1127) ~[!/:?]
    at org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.doLog(PaxLoggerImpl.java:1098) ~[!/:?]
    at org.ops4j.pax.logging.log4j2.internal.PaxLoggerImpl.info(PaxLoggerImpl.java:358) ~[!/:?]
    at org.ops4j.pax.logging.internal.TrackingLogger.info(TrackingLogger.java:217) ~[!/:?]
    at org.ops4j.pax.logging.internal.JdkHandler.publish(JdkHandler.java:147) ~[!/:?]
    at java.util.logging.Logger.log(Logger.java:738) ~[?:1.8.0_292]
    at java.util.logging.Logger.doLog(Logger.java:765) ~[?:1.8.0_292]
    at java.util.logging.Logger.log(Logger.java:851) ~[?:1.8.0_292]

Occurred in Karaf 4.3.6 with pax-logging 2.0.14. when writing a log with JUL

grgrzybek commented 2 years ago

Hmm, I confirm there's a problem, because HashMaps allow null values, while Hashtables (used by EventAdmin) - don't. The null value comes from MDC, so before I prepare a new release, please check what's the null value configured in your MDC.

rhierlmeier commented 2 years ago

The null value comes from a custom code that fills additional information into the MDC. In the javadoc of class ThreadContext does not say that null values are not allowed. Outside of Karaf it is working.

grgrzybek commented 2 years ago

Thanks for information. So I'm going to fix it.