Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.11.0
-
None
Description
SystemPropertiesPropertySource.forEach(..) uses Property.getProperty(..)
to resolve values. If that value is a non-String, the value will be
null. Since literal is a ConcurrentHashMap, a put(..) with null value
will yield a NullPointerException.
This is especially hard to debug in the case of e.g. StatusLogger,
which initializes PropertiesUtil as a static variable. The class is
unable to load, throws a NoClassDefFoundError, and hides the
NullPointerException.
Here's what I got when I had a Property value that was a File:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.logging.log4j.util.PropertiesUtil
at org.apache.logging.log4j.status.StatusLogger.(StatusLogger.java:78)
at org.apache.logging.log4j.LogManager.(LogManager.java:60)
Attachments
Issue Links
- links to