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