From 11bc215c94bc2af8a6ccb59043b9154939914804 Mon Sep 17 00:00:00 2001 From: Kusal Kithul-Godage Date: Thu, 12 Feb 2026 12:46:17 +1100 Subject: [PATCH] WW-5614 Remove cache for ProxyUtil#ultimateTargetClass --- .../org/apache/struts2/util/ProxyUtil.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/org/apache/struts2/util/ProxyUtil.java b/core/src/main/java/org/apache/struts2/util/ProxyUtil.java index a574af1c22..dbc1940e80 100644 --- a/core/src/main/java/org/apache/struts2/util/ProxyUtil.java +++ b/core/src/main/java/org/apache/struts2/util/ProxyUtil.java @@ -54,8 +54,6 @@ public class ProxyUtil { CACHE_MAX_SIZE, OgnlCacheFactory.CacheType.WTLFU, CACHE_INITIAL_CAPACITY).buildOgnlCache(); private static final OgnlCache isProxyMemberCache = new DefaultOgnlCacheFactory( CACHE_MAX_SIZE, OgnlCacheFactory.CacheType.WTLFU, CACHE_INITIAL_CAPACITY).buildOgnlCache(); - private static final OgnlCache> targetClassCache = new DefaultOgnlCacheFactory>( - CACHE_MAX_SIZE, OgnlCacheFactory.CacheType.WTLFU, CACHE_INITIAL_CAPACITY).buildOgnlCache(); /** * Determine the ultimate target class of the given instance, traversing @@ -66,18 +64,16 @@ public class ProxyUtil { * object as fallback; never {@code null}) */ public static Class ultimateTargetClass(Object candidate) { - return targetClassCache.computeIfAbsent(candidate, k -> { - Class result = null; - if (isSpringAopProxy(k)) { - result = springUltimateTargetClass(k); - } else if (isHibernateProxy(k)) { - result = getHibernateProxyTarget(k).getClass(); - } - if (result == null) { - result = k.getClass(); - } - return result; - }); + Class result = null; + if (isSpringAopProxy(candidate)) { + result = springUltimateTargetClass(candidate); + } else if (isHibernateProxy(candidate)) { + result = getHibernateProxyTarget(candidate).getClass(); + } + if (result == null) { + result = candidate.getClass(); + } + return result; } /**