This is an automated email from the ASF dual-hosted git repository.

struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/deltaspike.git


The following commit(s) were added to refs/heads/master by this push:
     new da93fe7  DELTASPIKE-1397 log variable in case of recursive definition
da93fe7 is described below

commit da93fe7882bfaaa816daba7a71401a21823d4e92
Author: Mark Struberg <strub...@apache.org>
AuthorDate: Tue Jun 2 17:42:30 2020 +0200

    DELTASPIKE-1397 log variable in case of recursive definition
---
 .../deltaspike/core/impl/config/TypedResolverImpl.java    | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git 
a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/TypedResolverImpl.java
 
b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/TypedResolverImpl.java
index cd981cf..8997a1e 100644
--- 
a/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/TypedResolverImpl.java
+++ 
b/deltaspike/core/impl/src/main/java/org/apache/deltaspike/core/impl/config/TypedResolverImpl.java
@@ -550,14 +550,23 @@ public class TypedResolverImpl<T> implements 
ConfigResolver.UntypedResolver<T>
                 break;
             }
 
-            String variableValue = new TypedResolverImpl<String>(this.config, 
varName)
+            try
+            {
+                String variableValue = new 
TypedResolverImpl<String>(this.config, varName)
                     .withCurrentProjectStage(this.projectStageAware)
                     .evaluateVariables(true)
                     .getValue();
 
-            if (variableValue != null)
+                if (variableValue != null)
+                {
+                    value = value.replace("${" + varName + "}", variableValue);
+                }
+            }
+            catch (StackOverflowError soe)
             {
-                value = value.replace("${" + varName + "}", variableValue);
+                // just log out
+                LOG.severe("Recursive variable resolution detected for " + 
varName);
+                throw soe;
             }
             startVar++;
         }

Reply via email to