Bridge ViewHandler incompatible with Trinidad:  if access as servlet 
restoreView fails to restore proper instance
-----------------------------------------------------------------------------------------------------------------

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


Though the bridge should merely delegate all non-portlet calls in its 
ViewHandler Impl, it doesn't.  This causes the following peculiar problem.  The 
bridge's createView() method causes a PortletNamingContainerUIViewRoot to be 
created/returned when accessed from a servlet using the code block that 
temporarily substitutes the component (type) with this class.    Trinidad's 
restore keeps cached versions of the UIViewRoot -- but rather than use it it -- 
it claims its worried about message/events still on the object.  It duplicates 
it and restores the state into the duplicate.  Unfortunately the way it 
duplicates is is to merely call createComponent (using the component type).  As 
we only temporarily set the component type (class) they duplicate/create the 
wrong class -- and then restore into it.  We have seen situations when Trinidad 
runs under a rich client layer that PPRs don't render (in the servlet case) 
because of this -- the UIViewRoots rendered flag is incorrectly set to true 
because of the bad restore.

Note:  Though we haven't seen anolmolies when running just with Trinidad 
(nonPPR) we expect folks will encounter some problems and hence anyone running 
the bridge with Trinidad (bridge 1.0 or 2.0) should pick up this fix.

Simple/basic fix is to have the bridge's ViewHandler, always and only delegate 
when not a portlet request.  This effectively works around the problem.

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