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);
+        });
+    }
+
 }

Reply via email to