This is an automated email from the ASF dual-hosted git repository. kusal pushed a commit to branch WW-4062-ognl-exc-cache in repository https://gitbox.apache.org/repos/asf/struts.git
commit e1f4138a4534a65f138b0560a7d4a6a527dafb87 Author: Kusal Kithul-Godage <g...@kusal.io> AuthorDate: Fri Aug 9 19:53:59 2024 +1000 WW-4062 Cache OgnlException thrown on compilation --- core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java b/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java index 52475b8d5..7482f125a 100644 --- a/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java +++ b/core/src/main/java/com/opensymphony/xwork2/ognl/OgnlUtil.java @@ -602,11 +602,18 @@ public class OgnlUtil { tree = expressionCache.get(expr); } if (tree == null) { - tree = ognlGuard.parseExpression(expr); + try { + tree = ognlGuard.parseExpression(expr); + } catch (OgnlException e) { + tree = e; + } if (enableExpressionCache) { expressionCache.put(expr, tree); } } + if (tree instanceof OgnlException) { + throw (OgnlException) tree; + } if (EXPR_BLOCKED.equals(tree)) { throw new OgnlException("Expression blocked by OgnlGuard: " + expr); }