This is an automated email from the ASF dual-hosted git repository. fschumacher pushed a commit to branch pr309-recursion in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 57e83d7c9eaa784d3af54fa57de100c99515f1bc Author: Jean-Frederic Clere <jfcl...@gmail.com> AuthorDate: Fri Jun 26 15:18:30 2020 +0200 Add a iterationCount limited to 20 to prevent StackOverflowError. --- java/org/apache/tomcat/util/IntrospectionUtils.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/java/org/apache/tomcat/util/IntrospectionUtils.java b/java/org/apache/tomcat/util/IntrospectionUtils.java index 977d33a..17fd47e 100644 --- a/java/org/apache/tomcat/util/IntrospectionUtils.java +++ b/java/org/apache/tomcat/util/IntrospectionUtils.java @@ -34,6 +34,7 @@ public final class IntrospectionUtils { private static final Log log = LogFactory.getLog(IntrospectionUtils.class); private static final StringManager sm = StringManager.getManager(IntrospectionUtils.class); + private static int iterationCount = 0; /** * Find a method with the right name If found, call the method ( if param is @@ -340,7 +341,13 @@ public final class IntrospectionUtils { return value; if (log.isDebugEnabled()) log.debug("IntrospectionUtils.replaceProperties iter on: " + newval); - return replaceProperties(newval, staticProp, dynamicProp, classLoader); + iterationCount++; + if (iterationCount <20) + newval = replaceProperties(newval, staticProp, dynamicProp, classLoader); + else + log.warn("System property failed to update and remains [" + newval + "]"); + iterationCount--; + return newval; } private static String getProperty(String name, Hashtable<Object, Object> staticProp, --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org