You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2022/03/28 22:10:56 UTC

[logging-log4j2] 04/05: Avoid NPEs in edge cases for bridge clients.

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 <ga...@gmail.com>
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);
+                }
             }
         }
     }