This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 675dbd9a37d76256f8ce43c80a0e50dbf90e6c8f Author: Gary Gregory <[email protected]> AuthorDate: Mon Jan 24 13:42:24 2022 -0500 Avoid NPEs in edge cases for bridge clients. --- .../org/apache/log4j/PropertyConfigurator.java | 30 ++++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java b/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java index 45a96d4..d522d57 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java @@ -644,20 +644,22 @@ public class PropertyConfigurator implements Configurator { private void parseErrorHandler(final ErrorHandler errorHandler, final String errorHandlerPrefix, final Properties props, final LoggerRepository loggerRepository) { - final boolean rootRef = OptionConverter.toBoolean(OptionConverter.findAndSubst(errorHandlerPrefix + ROOT_REF, props), false); - if (rootRef) { - errorHandler.setLogger(loggerRepository.getRootLogger()); - } - final String loggerName = OptionConverter.findAndSubst(errorHandlerPrefix + LOGGER_REF, props); - if (loggerName != null) { - final Logger logger = (loggerFactory == null) ? loggerRepository.getLogger(loggerName) : loggerRepository.getLogger(loggerName, loggerFactory); - errorHandler.setLogger(logger); - } - final String appenderName = OptionConverter.findAndSubst(errorHandlerPrefix + APPENDER_REF_TAG, props); - if (appenderName != null) { - final Appender backup = parseAppender(props, appenderName); - if (backup != null) { - errorHandler.setBackupAppender(backup); + if (errorHandler != null && loggerRepository != null) { + final boolean rootRef = OptionConverter.toBoolean(OptionConverter.findAndSubst(errorHandlerPrefix + ROOT_REF, props), false); + if (rootRef) { + errorHandler.setLogger(loggerRepository.getRootLogger()); + } + final String loggerName = OptionConverter.findAndSubst(errorHandlerPrefix + LOGGER_REF, props); + if (loggerName != null) { + final Logger logger = loggerFactory == null ? loggerRepository.getLogger(loggerName) : loggerRepository.getLogger(loggerName, loggerFactory); + errorHandler.setLogger(logger); + } + final String appenderName = OptionConverter.findAndSubst(errorHandlerPrefix + APPENDER_REF_TAG, props); + if (appenderName != null) { + final Appender backup = parseAppender(props, appenderName); + if (backup != null) { + errorHandler.setBackupAppender(backup); + } } } }
