Redirect during action causes infinite loop if action/render run in same request
--------------------------------------------------------------------------------

                 Key: PORTLETBRIDGE-33
                 URL: https://issues.apache.org/jira/browse/PORTLETBRIDGE-33
             Project: MyFaces Portlet Bridge
          Issue Type: Bug
          Components: Impl
    Affects Versions: 1.0.0-alpha-2, 1.0.0-alpha, 1.0.0, 2.0.0
            Reporter: Michael Freedman
            Assignee: Michael Freedman


Redirect (of a Faces view) during an action is caught by the bridge and turned 
into a simple navigation -- I.e. we view such a redirect as meaning change the 
view of the this portlet NOT change the view of the browser from the consumer 
page.  Its impelmented by tacking a request attribute on in the redirect method 
and then detecting this attr in the lifecycle manager/controller 
(doFacesRequest).  If a redirect is detected we return normally but don't 
preserve state.  However the code doesn't remove the redirect request 
attribute.  If the portlet container turns around and calls render in the same 
request scope the attr still exists.  And as we upgraded the render impl to 
also detect/support such redirects, the carrying forward of this attribute 
causes the render to also think it now needs to do one of these navigational 
redirects -- and the by product of executing this causes us to rerun the render 
with the same request attributes as the render started with -- but oops this 
already contained the redirect attr carried forward from the action -- so we 
get into an infinite loop.

Solution is simple:  merely remove the request attr before returning from the 
action.

-- 
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