[
https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12570449#action_12570449
]
Scott O'Bryan commented on TRINIDAD-134:
----------------------------------------
Ok, I've figured out the other workaround and it seems to work. Essentially,
if we have a portlet request and if the UIViewRoot is the one provided by the
R.I. then we will create a PortletNamingContainerUIViewRoot instead of the one
retrieved from the renderkit. This follow the same logic as the portlet-bridge
and, like the bridge, will expect anything which may override the UIViewRoot
object with their own namespacing.
This introduces a "build time" dependency on the MyFaces Portlet-Bridge but
should not effect runtime unless running in a portlet environment.
> StateManagerImpl is not fully compatible with JSR-301
> -----------------------------------------------------
>
> Key: TRINIDAD-134
> URL: https://issues.apache.org/jira/browse/TRINIDAD-134
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Portlet
> Affects Versions: 1.2.1-core
> Environment: JSR-168, JSR-301
> Reporter: Scott O'Bryan
> Assignee: Matthias Weßendorf
> Fix For: 1.2.3-core, 1.2.7-core
>
> Attachments: trinidad-134.patch
>
>
> StateManagerImpl has a performance enhancement that is not compatible with
> JSR-301. Inside of the popRoot method inside of
> org.apache.myfaces.trinidadinternal.application.StateManagerImpl, the view
> root is retrieved using Application.createComponent();. The JSR-301 bridge
> has a special UIViewRoot that, due to limitations in the JSF specification,
> can only reasonably be retrieved through ViewHandler.createViewRoot(). We
> either need to try to try to retrieve the UIViewRoot using this mechanism OR
> we need to disable this performance optimization in a portal environment.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.