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.


Reply via email to