[ 
https://issues.apache.org/jira/browse/TRINIDAD-1942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12922970#action_12922970
 ] 

Max Starets commented on TRINIDAD-1942:
---------------------------------------

+1 for the patch, but the second FacesContext.getCurrentInstance() lookup in 
getViewDeclarationLanguage() should be removed.

> ViewDeclarationLanguageFactoryImpl implementation should cache physical URI 
> for the current viewId on the ViewMap
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: TRINIDAD-1942
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1942
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>          Components: Components
>    Affects Versions: 2.0.0-alpha-2
>            Reporter: Pavitra Subramaniam
>         Attachments: jira-1942.patch
>
>
> In an included page (or fragment) if a composite component gets used, the 
> CompositeComponentTagHandler retrieves the logical viewId 
> (context.getViewRoot().getViewId()) first and then gets its physical URI in 
> order to determine the VDL to use. This is usually not a problem in vanilla 
> JSF applications or even vanilla Trinidad applications, but in frameworks 
> (such as Oracle) where the viewId of an included fragment comes into play 
> (iow, the fragment is in context and not the main page), the PageResolver 
> implementation can no longer return the correct physical URI for the logical 
> viewId. It merely returns the logical viewId.
> The problem is further exasperated if the logical viewId of the page does not 
> contain an extension. As there is no extension available, the VDL returned is 
> the JspViewHandlingStrategy always. This is disastrous when the page is being 
> rendered using FaceletsVDL. 
> One way to resolve this issue is to cache the physical URI of the page on the 
> ViewRoot's viewMap and return the cached value whenever the 
> VDLFactory.getVDL() is called for a viewId that matches the current 
> viewRoot's viewId. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to