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);
         }

Reply via email to