kusalk commented on PR #648:
URL: https://github.com/apache/struts/pull/648#issuecomment-1359204527

   My initial ThreadLocal based approach to reworking the request cleanup 
process was not functioning as intended. I've reverted to tracking filter 
recursion as a request attribute but have still retained the reworked logic.
   
   This means:
   - ActionContext is not cleared until the first StrutsPrepareFilter execution 
for that request has completed - this is irrespective of whether the 
ActionContext was generated there or not. This can occur when a Struts excluded 
URL forwards to a non-excluded one. Waiting until the ActionContext is cleared 
is required by SiteMesh.
   - The MultiPart component of a request is only cleaned up in the filter 
execution in which it was wrapped. This is retaining the original behaviour as 
before. I believe if we try to cleanup at any other stage, it will fail as the 
`instanceof` check will fail - although I haven't investigated this closely.
   
   The implementation is a little confusing at first glance (and was also why I 
favoured the ThreadLocal based approach) but it's the best I've got right now - 
open to suggestions.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@struts.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to