When struts is used to render an error-page, getting the action mapping from 
original request
---------------------------------------------------------------------------------------------

                 Key: WW-3192
                 URL: https://issues.apache.org/struts/browse/WW-3192
             Project: Struts 2
          Issue Type: Bug
          Components: Dispatch Filter
    Affects Versions: 2.1.6
         Environment: Tomcat 
            Reporter: Jasper Rosenberg
            Priority: Critical
             Fix For: 2.1.8


We have mapped 404 in the web.xml to a struts action, e.g.:

  <error-page>
    <error-code>404</error-code>
    <location>/404.action</location>
  </error-page> 

Sometimes we have an action return a result type to generate a 404 error. This 
used to work.  However, now it is failing because 
PrepareOperations.findActionMapping() is finding the original mapping still in 
the request when the servlet container invokes the 404.action (and so not 
getting the struts mapping for the 404 action).   I assume this is also a bug 
for actions that return a 500 error where the 500 error page is rendered in 
struts though I haven't tested it yet.

One fix would be to call request.removeAttribute(STRUTS_ACTION_MAPPING_KEY) at 
the end of  PrepareOperations.cleanupRequest() though perhaps there are 
implications to that I'm unaware of.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to