[
https://issues.apache.org/jira/browse/OWB-171?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gurkan Erdogdu closed OWB-171.
------------------------------
Resolution: Fixed
> CID during GET requests must be set on UIViewRoot earlier than before render
> response
> -------------------------------------------------------------------------------------
>
> Key: OWB-171
> URL: https://issues.apache.org/jira/browse/OWB-171
> Project: OpenWebBeans
> Issue Type: Bug
> Components: Context and Scopes
> Affects Versions: M3
> Reporter: Sven Linstaedt
> Assignee: Gurkan Erdogdu
> Fix For: M4
>
> Attachments: owb-171.diff, owb-171.diff, owb-171.diff, owb-171.diff
>
>
> The problem:
> GET requests in JSF2 can be handled by the full lifecycle, if the view
> contains a <f:metadata/> with appropriate <f:viewParam/> components. Because
> no UIViewRoot is restored, but instead a new one is created, no cid can be
> restored from the view root until WebBeansPhaseListener handles before render
> rensponse.
> If one requests the Conversation for injection during the lifecycle
> ConversationBean.createInstance() is called, which should lookup the
> conversation on the ConversationManager using the current sessionid and cid.
> Both string based parameters are again looked up from the
> ConversationService. Unfortunately ConversationService.getConversationId()
> uses the ViewRoot's attributes map of current FacesContext to retrieve the
> cid, which will be first set in the render phase. This results in a new
> conversation being created.
> A possible solution would consists of setting the cid as early as the view
> root is created in restore view.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.