DELTASPIKE-1397 log variable in case of recursive definition
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 @@
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++;
}