This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch WW-5537-classloader-leak-fixes
in repository https://gitbox.apache.org/repos/asf/struts.git

commit a8fb836d0624ef3733b051cbfeac09c1596a9cf6
Author: Lukasz Lenart <[email protected]>
AuthorDate: Mon Mar 23 09:58:42 2026 +0100

    WW-5537 Register InternalDestroyable beans in struts-beans.xml
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
---
 core/src/main/resources/struts-beans.xml | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/core/src/main/resources/struts-beans.xml 
b/core/src/main/resources/struts-beans.xml
index 7c59a88da..614178691 100644
--- a/core/src/main/resources/struts-beans.xml
+++ b/core/src/main/resources/struts-beans.xml
@@ -260,4 +260,22 @@
     <bean type="org.apache.struts2.interceptor.csp.CspNonceReader" 
name="struts"
           class="org.apache.struts2.interceptor.csp.StrutsCspNonceReader"/>
 
+    <!-- WW-5537: InternalDestroyable beans for automatic cleanup during 
undeploy -->
+    <bean type="org.apache.struts2.dispatcher.InternalDestroyable" 
name="componentCache"
+          class="org.apache.struts2.dispatcher.ComponentCacheDestroyable"/>
+    <bean type="org.apache.struts2.dispatcher.InternalDestroyable" 
name="compoundRootAccessor"
+          class="org.apache.struts2.ognl.accessor.CompoundRootAccessor"/>
+    <bean type="org.apache.struts2.dispatcher.InternalDestroyable" 
name="defaultFileManager"
+          class="org.apache.struts2.util.fs.DefaultFileManager"/>
+    <bean type="org.apache.struts2.dispatcher.InternalDestroyable" 
name="scopeInterceptorCache"
+          
class="org.apache.struts2.dispatcher.ScopeInterceptorCacheDestroyable"/>
+    <bean type="org.apache.struts2.dispatcher.InternalDestroyable" 
name="ognlCache"
+          class="org.apache.struts2.dispatcher.OgnlCacheDestroyable"/>
+    <bean type="org.apache.struts2.dispatcher.InternalDestroyable" 
name="finalizableReferenceQueue"
+          
class="org.apache.struts2.dispatcher.FinalizableReferenceQueueDestroyable"/>
+    <bean type="org.apache.struts2.dispatcher.InternalDestroyable" 
name="freemarkerCache"
+          class="org.apache.struts2.dispatcher.FreemarkerCacheDestroyable"/>
+    <bean type="org.apache.struts2.dispatcher.InternalDestroyable" 
name="debugUtilsCache"
+          class="org.apache.struts2.dispatcher.DebugUtilsCacheDestroyable"/>
+
 </struts>

Reply via email to