This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-configuration.git
The following commit(s) were added to refs/heads/master by this push: new c93fd42c Guard ConfigurationMap against null configuration (#355) c93fd42c is described below commit c93fd42c5856f5e5659aae1d7700ea416444a092 Author: Heewon Lee <94441510+pingpin...@users.noreply.github.com> AuthorDate: Tue Jan 30 02:55:36 2024 +0900 Guard ConfigurationMap against null configuration (#355) While it makes little sense to construct a `ConfigurationMap` instance with `null` configuration, the current implementation does not seem to guard against such cases. This commit requires `configuration` not to be `null`. --- .../org/apache/commons/configuration2/ConfigurationMap.java | 3 ++- .../apache/commons/configuration2/TestConfigurationMap.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/configuration2/ConfigurationMap.java b/src/main/java/org/apache/commons/configuration2/ConfigurationMap.java index 19e51cf1..2f248406 100644 --- a/src/main/java/org/apache/commons/configuration2/ConfigurationMap.java +++ b/src/main/java/org/apache/commons/configuration2/ConfigurationMap.java @@ -21,6 +21,7 @@ import java.util.AbstractMap; import java.util.AbstractSet; import java.util.Iterator; import java.util.Map; +import java.util.Objects; import java.util.Set; /** @@ -47,7 +48,7 @@ public class ConfigurationMap extends AbstractMap<Object, Object> { * @param configuration {@code Configuration} instance. */ public ConfigurationMap(final Configuration configuration) { - this.configuration = configuration; + this.configuration = Objects.requireNonNull(configuration); } /** diff --git a/src/test/java/org/apache/commons/configuration2/TestConfigurationMap.java b/src/test/java/org/apache/commons/configuration2/TestConfigurationMap.java index d2b09908..4b2c8719 100644 --- a/src/test/java/org/apache/commons/configuration2/TestConfigurationMap.java +++ b/src/test/java/org/apache/commons/configuration2/TestConfigurationMap.java @@ -19,6 +19,7 @@ package org.apache.commons.configuration2; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -70,4 +71,16 @@ public class TestConfigurationMap { } } + /** + * Attempts to create a ConfigurationMap with null configuration. + * This should cause an exception. + */ + @Test + public void testNullConfig() { + assertThrows(NullPointerException.class, () -> { + final Configuration cf = null; + new ConfigurationMap(cf); + }); + } + }