[
https://issues.apache.org/jira/browse/PORTLETBRIDGE-175?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Freedman resolved PORTLETBRIDGE-175.
--------------------------------------------
Resolution: Fixed
Fix Version/s: 3.0.0-alpha
As suggested, modified code to ensure we are in a Portlet request before
executing phase listener.
> Bridge phase listeners have portlet dependecy but can be executed in a
> servlet request yielding ClassCastException
> ------------------------------------------------------------------------------------------------------------------
>
> Key: PORTLETBRIDGE-175
> URL: https://issues.apache.org/jira/browse/PORTLETBRIDGE-175
> Project: MyFaces Portlet Bridge
> Issue Type: Bug
> Components: Impl
> Affects Versions: 1.0.0, 2.0.0, 3.0.0-alpha
> Reporter: Michael Freedman
> Assignee: Michael Freedman
> Fix For: 3.0.0-alpha
>
>
> The Bridge temporarily installs its own phase listeners to provide a variety
> of behaviors . As phase listeners are controlled by the lifecycle and there
> (can be) is only 1 lifecycle instance per application all listeners are
> called whenever the lifecycle is run. Because you can have distinct portlets
> in a application and the application can also run as a servlet care must be
> taken to only execute the phase listener if its truly the target of the
> execution. The bridge properly handles this for the multiple portlet case by
> checking that the event's FacesContext is the same as the thread's (current
> instances). Unfortunately this doesn't prevent the code from executing in
> the servlet case. I.e. if a portlet request comes in an is being processed
> by the bridge it will install the phase listener. If a second request
> happens concurrently but accesses this app as a servlet, we will execute the
> bridge's phase listener in this servlet request. This results in a
> ClassCastException as the code accesses the request object as a
> PortletRequest (but its not).
> Simple fix is to expand the test to only execute the phase listener is the
> FacesContext instance match and its a Portlet request.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira