Hey everyone,
Regarding this issue, I looked at the current StateManagerImpl and it
doesn't appear as if this patch was applied. It looks like Matthias
closed the issue, so I'm wondering if there was a reason this wasn't
applied.
The issue with this patch is that JSF UIViewRoot does not implement a
naming container. In a portal environment, the naming container is
needed in order to accomplish name spacing. Therefore, renderkits
overriding the StateManagerImpl need to use the ViewHandler.createView
method instead of the Application.createComponent in order to retrieve a
UIViewRoot that automatically handles namespacing.
The alternative is to create our own viewRoot which handles namespacing
ourselves and annotates itself to let the bridge know that the content
is namespaced.
This patch essentially handles this issue. If it was just and oversite,
let me know and I can apply it to the latest 1.2 trunk.
Thanks,
Scott
Scott O'Bryan (JIRA) wrote:
[
https://issues.apache.org/jira/browse/TRINIDAD-134?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Scott O'Bryan reopened TRINIDAD-134:
------------------------------------
Doesn't appear that this patch exists in the latest build of Trinidad.
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
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.