Fix error handling in Log4j 1 configuration
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/2e2dc8ee Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/2e2dc8ee Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/2e2dc8ee Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext Commit: 2e2dc8eebf0f0e3e856c7ed856109cc3e7b09736 Parents: b0f568e Author: Mikael Ståldal <mikael.stal...@magine.com> Authored: Wed Aug 31 11:40:12 2016 +0200 Committer: Mikael Ståldal <mikael.stal...@magine.com> Committed: Wed Aug 31 11:40:12 2016 +0200 ---------------------------------------------------------------------- .../config/Log4j1ConfigurationFactory.java | 1 - .../log4j/config/Log4j1ConfigurationParser.java | 20 +++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2e2dc8ee/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java b/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java index 0a6bf2a..d6eb444 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationFactory.java @@ -47,7 +47,6 @@ public class Log4j1ConfigurationFactory extends ConfigurationFactory { } catch (IOException e) { throw new ConfigurationException("Unable to load " + source.toString(), e); } - if (builder == null) return null; return builder.build(); } http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/2e2dc8ee/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java ---------------------------------------------------------------------- diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java b/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java index 84b8533..9356584 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/config/Log4j1ConfigurationParser.java @@ -16,8 +16,16 @@ */ package org.apache.log4j.config; +import java.io.IOException; +import java.io.InputStream; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.appender.ConsoleAppender; +import org.apache.logging.log4j.core.config.ConfigurationException; import org.apache.logging.log4j.core.config.builder.api.AppenderComponentBuilder; import org.apache.logging.log4j.core.config.builder.api.ComponentBuilder; import org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder; @@ -27,13 +35,6 @@ import org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuild import org.apache.logging.log4j.core.config.builder.impl.BuiltConfiguration; import org.apache.logging.log4j.status.StatusLogger; -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - /** * Experimental parser for Log4j 1.2 properties configuration files. * <p> @@ -63,8 +64,9 @@ public class Log4j1ConfigurationParser { * Parse a Log4j 1.2 properties configuration file into a ConfigurationBuilder. * * @param input InputStream to read from, will not be closed. - * @return the populated ConfigurationBuilder + * @return the populated ConfigurationBuilder, never {@literal null} * @throws IOException if unable to read the input + * @throws ConfigurationException if the input does not contain a valid configuration */ public ConfigurationBuilder<BuiltConfiguration> buildConfigurationBuilder(final InputStream input) throws IOException { properties.load(input); @@ -72,7 +74,7 @@ public class Log4j1ConfigurationParser { final String rootLoggerValue = getLog4jValue("rootLogger"); if (rootCategoryValue == null && rootLoggerValue == null) { // This is not a Log4j 1 properties configuration file. - return null; + throw new ConfigurationException("Input does not contain a valid Log4j 1.x properties configuration"); } builder.setConfigurationName("Log4j1"); // DEBUG