You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by pl...@apache.org on 2017/03/11 23:41:35 UTC

incubator-tamaya-extensions git commit: [TAMAYA-244] Removed possible causes for NullPointerExceptions.

Repository: incubator-tamaya-extensions
Updated Branches:
  refs/heads/master feaa76538 -> 78415bc9b


[TAMAYA-244] Removed possible causes for NullPointerExceptions.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/commit/78415bc9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/78415bc9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/78415bc9

Branch: refs/heads/master
Commit: 78415bc9bcd1aa3574282e6570a6fa1f0e130988
Parents: feaa765
Author: Oliver B. Fischer <pl...@apache.org>
Authored: Sun Mar 12 00:41:31 2017 +0100
Committer: Oliver B. Fischer <pl...@apache.org>
Committed: Sun Mar 12 00:41:31 2017 +0100

----------------------------------------------------------------------
 .../tamaya/functions/CombinedConfiguration.java | 27 ++++++++++++++------
 .../functions/CombinedConfigurationTest.java    |  7 +++++
 2 files changed, 26 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/78415bc9/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java b/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java
index a268736..234e03c 100644
--- a/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java
+++ b/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java
@@ -24,9 +24,7 @@ import org.apache.tamaya.Configuration;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConfigurationContext;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Combines a set of child configurations to a new one, by overriding the first entries with result from
@@ -35,8 +33,12 @@ import java.util.Map;
 class CombinedConfiguration implements Configuration{
     /** The name of the new configuration. */
     private final String name;
-    /** The configuration's in evaluation order. Instances with higher indices override results with lower ones. */
-    private final Configuration[] configurations;
+
+    /**
+     * The configuration's in evaluation order. Instances with higher indices
+     * override results with lower ones.
+     */
+    private final ArrayList<Configuration> configurations = new ArrayList<>();
 
     /**
      * Creates a combined configuration instance.
@@ -45,7 +47,16 @@ class CombinedConfiguration implements Configuration{
      */
     public CombinedConfiguration(String configName, Configuration... configs) {
         this.name = configName;
-        this.configurations = configs == null ? new Configuration[0] : configs.clone();
+
+        if (null != configs) {
+            for (Configuration config : configs) {
+                if (config == null) {
+                    continue;
+                }
+
+                configurations.add(config);
+            }
+        }
     }
 
     @Override
@@ -133,14 +144,14 @@ class CombinedConfiguration implements Configuration{
     @Override
     public ConfigurationContext getContext() {
         // TODO thjink on combining the participating contexts...
-        return configurations[0].getContext();
+        return configurations.get(0).getContext();
     }
 
     @Override
     public String toString() {
         return "CombinedConfiguration{" +
                 "name='" + name + '\'' +
-                ", configurations=" + Arrays.toString(configurations) +
+                ", configurations=" + configurations +
                 '}';
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/78415bc9/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
----------------------------------------------------------------------
diff --git a/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java b/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
index 585e1f7..e56c0cc 100644
--- a/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
+++ b/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
@@ -78,6 +78,13 @@ public class CombinedConfigurationTest {
     }
 
     @Test
+    public void createCombinedConfigurationWithNullNullAsSingleConfiguration() {
+        CombinedConfiguration cc = new CombinedConfiguration("abc", null, null);
+
+        assertThat(cc.get("nil")).isNull();
+    }
+
+    @Test
     public void requestedEntryIsntInAnyConfigration() throws Exception {
 
         CombinedConfiguration cc = new CombinedConfiguration("abc", configWithA1, configWithB, configWithC);