You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Paul Nicolucci (JIRA)" <de...@myfaces.apache.org> on 2018/01/08 15:23:00 UTC

[jira] [Resolved] (MYFACES-4185) MYFACES-4183 causes an issue with getViews

     [ https://issues.apache.org/jira/browse/MYFACES-4185?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Nicolucci resolved MYFACES-4185.
-------------------------------------
    Resolution: Fixed

> MYFACES-4183 causes an issue with getViews
> ------------------------------------------
>
>                 Key: MYFACES-4185
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4185
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-372
>    Affects Versions: 2.3.0-beta
>            Reporter: Paul Nicolucci
>            Assignee: Paul Nicolucci
>             Fix For: 2.3.0
>
>         Attachments: MYFACES-4185.patch
>
>
> Since the JSFViewDeclarationLanguageStrategy.java always returns true now :  https://issues.apache.org/jira/browse/MYFACES-4183
> A issue is now found in the JSPViewDeclarationLanguage.getViews:
> {code:java}
> @Override
>     public Stream<String> getViews(FacesContext facesContext, String path, int maxDepth, ViewVisitOption... options)
>     {
>         Stream<String> stream = super.getViews(facesContext, path, maxDepth, options);
>         stream = stream.filter(f -> _strategy.handles(f));
>         if (options != null &&
>             Arrays.binarySearch(options, ViewVisitOption.RETURN_AS_MINIMAL_IMPLICIT_OUTCOME) >= 0)
>         {
>             stream = stream.map(f -> _strategy.getMinimalImplicitOutcome(f));
>         }
>         return stream;
>     }
> {code}
> As you can see from the code above it would be possible to now return views here that are not actually handled specifically by the JSP vdl. For instance in the FaceletViewDeclarationLanguage we have the following filter in place:
> {code:java}
> stream = stream.filter(f -> (_strategy.handles(f) && 
>                     !FaceletsTemplateMappingUtils.matchTemplate(runtimeConfig, f) ) );
> {code}
> This filter allows us to specify something like the following in the faces-config.xml and avoid returning a view from getViews(), however now it would be returned incorrectly by the JSP vdl:
> {code:java}
>     <faces-config-extension>
>         <facelets-template-mapping>
>             <url-pattern>/templates/*</url-pattern>
>         </facelets-template-mapping>
>     </faces-config-extension>   
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)