You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by po...@apache.org on 2018/07/20 21:22:41 UTC
incubator-tamaya-sandbox git commit: TAMAYA-273 Fix infinite
recursion in metamodel
Repository: incubator-tamaya-sandbox
Updated Branches:
refs/heads/master 96fc9d5cb -> 681cb1e56
TAMAYA-273 Fix infinite recursion in metamodel
With the lazily loaded configuration in metamodel, the logic is
susceptible to an infinite recursion if any part of the configuration
setting does a getConfiguration in the middle. The spi delegation logic
added getConfiguration logging to all static calls as part of
5a130523ab7d3a9d33091b13f62db90ddb8fba5c in incubator-tamaya, which
caused this module to infinitely recurse and fail. This commit breaks
the chain of possible recursion.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/commit/681cb1e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/tree/681cb1e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/diff/681cb1e5
Branch: refs/heads/master
Commit: 681cb1e5668b0a581528bf85e09d1ab6f54a30f9
Parents: 96fc9d5
Author: William Lieurance <wi...@namikoda.com>
Authored: Wed Jul 11 02:37:21 2018 -0500
Committer: William Lieurance <wi...@namikoda.com>
Committed: Wed Jul 11 03:45:27 2018 -0500
----------------------------------------------------------------------
.../internal/DSLLoadingConfigurationProviderSpi.java | 3 ---
.../org/apache/tamaya/metamodel/ext/IntegrationTest.java | 10 ++++++++--
2 files changed, 8 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/681cb1e5/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/DSLLoadingConfigurationProviderSpi.java
----------------------------------------------------------------------
diff --git a/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/DSLLoadingConfigurationProviderSpi.java b/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/DSLLoadingConfigurationProviderSpi.java
index 1e2826c..05c68e3 100644
--- a/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/DSLLoadingConfigurationProviderSpi.java
+++ b/metamodel/src/main/java/org/apache/tamaya/metamodel/internal/DSLLoadingConfigurationProviderSpi.java
@@ -90,9 +90,6 @@ public class DSLLoadingConfigurationProviderSpi implements ConfigurationProvider
if(config==null){
synchronized (LOCK) {
if(config==null){
- MetaConfiguration.configure();
- }
- if(config==null){
// load defaults
this.config = new DefaultConfiguration(
new DefaultConfigurationContextBuilder()
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/681cb1e5/metamodel/src/test/java/org/apache/tamaya/metamodel/ext/IntegrationTest.java
----------------------------------------------------------------------
diff --git a/metamodel/src/test/java/org/apache/tamaya/metamodel/ext/IntegrationTest.java b/metamodel/src/test/java/org/apache/tamaya/metamodel/ext/IntegrationTest.java
index edcaca5..874b82a 100644
--- a/metamodel/src/test/java/org/apache/tamaya/metamodel/ext/IntegrationTest.java
+++ b/metamodel/src/test/java/org/apache/tamaya/metamodel/ext/IntegrationTest.java
@@ -42,8 +42,14 @@ public class IntegrationTest {
@Test
public void checkSystemLoads(){
- assertThat(ConfigurationProvider.getConfiguration()).isNotNull();
- System.out.println(ConfigurationProvider.getConfiguration());
+ Configuration defaultConfig = ConfigurationProvider.getConfiguration();
+ assertThat(defaultConfig).isNotNull();
+
+ MetaConfiguration.configure();
+ Configuration defaultMetaConfig = ConfigurationProvider.getConfiguration();
+ assertThat(defaultMetaConfig).isNotNull();
+
+ assertThat(defaultConfig).isNotEqualTo(defaultMetaConfig);
}
@Test