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
Reporter: Sven Linstaedt
Assignee: Gurkan Erdogdu
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.