[
https://issues.apache.org/jira/browse/MYFACES-4175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16314479#comment-16314479
]
Thomas Andraschko commented on MYFACES-4175:
--------------------------------------------
I would be great if you could take this time to make a unittest.
just have a look at:
src/test/resources/org.apache.myfaces.view.facelets.pss.acid/index.xhtml
and
AcidMyFacesRequestTestCase#testIndex
I think its quite easy and we can get sure it doesn't break in the future.
> template XHTML file fails to load when in /resources dir
> --------------------------------------------------------
>
> Key: MYFACES-4175
> URL: https://issues.apache.org/jira/browse/MYFACES-4175
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 2.3.0-beta
> Reporter: Jay Sartoris
> Priority: Minor
> Fix For: 2.3.0
>
> Attachments: JSFTestResources.war, JSFTestResourcesBasic.war,
> MYFACES-4175.patch
>
>
> Please consider the following scenario, I've attached a sample app.
> I have a template in the resources/templates directory. The request to
> localhost:8080/JSFTestResources/mapViewIdToResource.jsf fails when MyFaces to
> load the basicTemplate.xhtml file which is located in the
> /resources/templates directory for the composite component. The backing bean
> uses the ResourceHandler to create the view resources.
> The reason this fails in JSF 2.3 is due to the change in the
> org.apache.myfaces.resource.RootExternalContextResourceLoader.getResourceURL(String)
> method.
> In JSF 2.3, the method added a check to see if the resourceId starts wiht the
> contractsDirectory or resourcesDirectory. If it does then the getResourceURL
> returns null which tells the ResourceLoader that the resource does not exist.
> In JSF 2.2, those checks were not there.
> I checked the change history for this class and I see that MYFACES-4105 added
> this change. In that JIRA I see the comment made that says:
> "One last review is required to check if xhtml files under forbidden
> extensions are being loaded (/resources, /contracts and so on)."
> Therefore, this falls in to the JIRA comment mentioned above. To me, the
> test I've attached seems to be a valid scenario and MyFaces should be
> allowing this resource to be found instead of returning null. I don't see
> anywhere in the spec that says MyFaces should be behaving in that manner.
> Please correct me if I'm wrong.
> Also, this app works with MyFaces JSF 2.2 and also with Mojarra JSF 2.3.
> With MyFaces JSF 2.3 I get a NPE:
> java.lang.NullPointerException
>
> com.test.MapResourcePathBean.mapViewIdToResource(MapResourcePathBean.java:56)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
> java.lang.reflect.Method.invoke(Method.java:508)
> javax.el.BeanELResolver.invoke(BeanELResolver.java:158)
> javax.el.CompositeELResolver.invoke(CompositeELResolver.java:79)
> org.apache.el.parser.AstValue.getValue(AstValue.java:159)
> org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
>
> org.apache.myfaces.view.facelets.el.ContextAwareTagValueExpression.getValue(ContextAwareTagValueExpression.java:93)
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)