You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltaspike.apache.org by st...@apache.org on 2016/05/13 14:04:08 UTC

deltaspike git commit: DELTASPIKE-1139 also fix a NPE if the configured value is not set and logValues is enabled

Repository: deltaspike
Updated Branches:
  refs/heads/master 07f519952 -> e60776cc7


DELTASPIKE-1139 also fix a NPE if the configured value is not set and logValues is enabled


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/e60776cc
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/e60776cc
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/e60776cc

Branch: refs/heads/master
Commit: e60776cc76c12e10b214db5950fcbf0d80f883e3
Parents: 07f5199
Author: Mark Struberg <st...@apache.org>
Authored: Fri May 13 16:03:13 2016 +0200
Committer: Mark Struberg <st...@apache.org>
Committed: Fri May 13 16:03:13 2016 +0200

----------------------------------------------------------------------
 .../core/api/config/ConfigResolver.java         |  5 +-
 .../test/api/config/ConfigResolverTest.java     | 42 ++++++++++++++-
 ...ache.deltaspike.core.spi.config.ConfigSource | 57 --------------------
 3 files changed, 44 insertions(+), 60 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e60776cc/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java
index 98de4f1..a2b8ed6 100644
--- a/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java
+++ b/deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/config/ConfigResolver.java
@@ -900,15 +900,16 @@ public final class ConfigResolver
 
             value = fallbackToDefaultIfEmpty(keyResolved, value, defaultValue);
 
-            if (logChanges && (value != null && lastValue == null || !value.equals(lastValue)) )
+            if (logChanges && (value != null && !value.equals(lastValue) || (value == null && lastValue != null)) )
             {
                 LOG.log(Level.INFO, "New value {0} for key {1}.",
                     new Object[]{filterConfigValueForLog(keyOriginal, valueStr), keyOriginal});
             }
 
+            lastValue = value;
+
             if (cacheTimeMs > 0)
             {
-                lastValue = value;
                 reloadAfter = now + cacheTimeMs;
             }
 

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e60776cc/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java b/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java
index b2745f7..6afdce7 100644
--- a/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java
+++ b/deltaspike/core/api/src/test/java/org/apache/deltaspike/test/api/config/ConfigResolverTest.java
@@ -21,6 +21,7 @@ package org.apache.deltaspike.test.api.config;
 import org.apache.deltaspike.core.api.config.ConfigResolver;
 import org.apache.deltaspike.core.api.projectstage.ProjectStage;
 import org.apache.deltaspike.core.spi.config.ConfigFilter;
+import org.apache.deltaspike.core.spi.config.ConfigSource;
 import org.apache.deltaspike.core.util.ProjectStageProducer;
 import org.junit.Assert;
 import org.junit.Before;
@@ -160,8 +161,8 @@ public class ConfigResolverTest
             String url = ConfigResolver.getPropertyValue("deltaspike.test.nonexisting.variable", true);
             Assert.assertEquals("${does.not.exist}/someservice/myendpoint", url);
         }
-
     }
+
     @Test
     public void testConfigVariableRecursiveDeclaration()
     {
@@ -173,6 +174,44 @@ public class ConfigResolverTest
         Assert.assertEquals("pre-crazy-post/ohgosh/crazy", tr.getValue());
     }
 
+    @Test
+    public void testTypedResolver_NonExistingValue()
+    {
+        final String key = "non.existing.key";
+
+        ConfigResolver.TypedResolver<String> resolver = ConfigResolver.resolve(key)
+            .logChanges(true);
+
+        Assert.assertNull(resolver.getValue());
+
+        setTestConfigSourceValue(key, "somevalue");
+        Assert.assertEquals("somevalue", resolver.getValue());
+
+        setTestConfigSourceValue(key, null);
+        Assert.assertNull(resolver.getValue());
+    }
+
+    private void setTestConfigSourceValue(String key, String value)
+    {
+        ConfigSource[] configSources = ConfigResolver.getConfigSources();
+        for (ConfigSource configSource : configSources)
+        {
+            if (configSource instanceof TestConfigSource)
+            {
+                if (value == null)
+                {
+                    configSource.getProperties().remove(key);
+                }
+                else
+                {
+                    configSource.getProperties().put(key, value);
+                }
+
+                break;
+            }
+        }
+    }
+
     public static class TestConfigFilter implements ConfigFilter
     {
         @Override
@@ -195,4 +234,5 @@ public class ConfigResolverTest
             return value;
         }
     }
+
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/e60776cc/deltaspike/core/api/src/test/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSource
----------------------------------------------------------------------
diff --git a/deltaspike/core/api/src/test/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSource b/deltaspike/core/api/src/test/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSource
index 441c504..84d5875 100644
--- a/deltaspike/core/api/src/test/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSource
+++ b/deltaspike/core/api/src/test/resources/META-INF/services/org.apache.deltaspike.core.spi.config.ConfigSource
@@ -1,60 +1,3 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
 #####################################################################################
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements. See the NOTICE file