jsr372-experts@javaserverfaces-spec-public.java.net

[jsr372-experts] Re: [SPEC-1238] request for review (was: Re: [PROPOSAL] CDI integration for UIComponent instances in JSF 2.3)

From: Bauke Scholtz <balusc_at_gmail.com>
Date: Sat, 14 Jan 2017 22:31:50 +0100

Hi,

This is a bug in the test itself. The <h:outputLabel for="test"> is wrong.
There doesn't exist a component with id="text".

You have 2 options:
1. Fix the test.
2. Change EXPRESSION_HINTS of LabelRenderer to add IGNORE_NO_RESULT.

I recommend 2. This is namely not required in HTML side.

Cheers, B

On Sat, Jan 14, 2017 at 10:11 PM, Edward Burns <edward.burns_at_oracle.com>
wrote:

> >>>>> On Fri, 13 Jan 2017 16:08:03 +0100, arjan tijms <
> arjan.tijms_at_gmail.com> said:
> AT> Hi,
> AT> I took a look at the Spec1238IT test and the @JsfTest annotation was
> indeed
> AT> missing. Perhaps would be best to add it and then try to test again? It
> AT> should be:
>
> AT> @JsfTest(value = JSF_2_3_0_M10, excludes = {WEBLOGIC_12_1_4,
> AT> WEBLOGIC_12_2_1})
>
> >>>>> On Sat, 14 Jan 2017 08:52:07 -0800, Edward Burns <
> edward.burns_at_oracle.com> said:
>
> EB> Ok, I just ran the test manually by hand on a WLS 12.2.1 patched with
> my
> EB> just-built Mojarra with the changes. I know it's in there due to our
> EB> trusty log message:
>
> EB> Initializing Mojarra 2.3.0-m10 (-SNAPSHOT 20170114-0801 unable to get
> svn info) for context '/test-javaee8-searchExpression'>
>
> I have two failures now:
>
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.084 sec
> <<< FAILURE! - in com.sun.faces.test.servlet30.facelets.Issue2260IT
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.036 sec
> <<< FAILURE! - in com.sun.faces.test.servlet30.facelets.Issue3152IT
> Tests run: 134, Failures: 0, Errors: 2, Skipped: 0
>
> Looking at the first:
>
> http://localhost:8080/test-servlet30-facelets/faces/viewParam2.xhtml
>
> Gives this exception:
>
> avax.servlet.ServletException: Cannot find component for expression "text"
> referenced from "form:j_idt6".
>
> root cause
>
> javax.faces.component.search.ComponentNotFoundException: Cannot find
> component for expression "text" referenced from "form:j_idt6".
>
> With this stack trace:
>
> StandardWrapperValve[Faces Servlet]: Servlet.service() for servlet Faces
> Servlet threw exception
> javax.faces.component.search.ComponentNotFoundException: Cannot find
> component for expression "text" referenced from "form:j_idt6".
> at com.sun.faces.component.search.SearchExpressionHandlerImpl.
> resolveClientId(SearchExpressionHandlerImpl.java:93)
> at com.sun.faces.renderkit.html_basic.LabelRenderer.
> encodeBegin(LabelRenderer.java:98)
> at javax.faces.component.UIComponentBase.encodeBegin(
> UIComponentBase.java:892)
> at javax.faces.component.UIComponent.encodeAll(
> UIComponent.java:1903)
> at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
> at javax.faces.component.UIComponentBase.encodeChildren(
> UIComponentBase.java:918)
> at javax.faces.component.UIComponent.encodeAll(
> UIComponent.java:1905)
> at javax.faces.component.UIComponent.encodeAll(
> UIComponent.java:1908)
> at javax.faces.component.UIComponent.encodeAll(
> UIComponent.java:1908)
> at com.sun.faces.application.view.FaceletViewHandlingStrategy.
> renderView(FaceletViewHandlingStrategy.java:491)
> at com.sun.faces.application.view.MultiViewHandler.
> renderView(MultiViewHandler.java:194)
> at com.sun.faces.lifecycle.RenderResponsePhase.execute(
> RenderResponsePhase.java:126)
> at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
> at com.sun.faces.lifecycle.LifecycleImpl.render(
> LifecycleImpl.java:223)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:671)
> at org.apache.catalina.core.StandardWrapper.service(
> StandardWrapper.java:1682)
>
>
> And here is the view:
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <html xmlns="http://www.w3.org/1999/xhtml"
> xmlns:h="http://java.sun.com/jsf/html"
> xmlns:f="http://java.sun.com/jsf/core">
> <f:metadata>
> <f:viewParam name="input1" value="#{viewParam2Bean.text}" />
> </f:metadata>
> <h:head>
> <meta http-equiv="Content-Type" content="text/html;
> charset=UTF-8"/>
> </h:head>
> <h:body>
> <h:form id="form">
> <h:outputLabel for="text" value="input1: "/>
> <h:inputText id="input" value="#{viewParam2Bean.text}"/>
> <h:commandButton id="button" value="go"
> action="/viewParam3.xhtml?faces-redirect=true&amp;
> includeViewParams=true"/>
> </h:form>
> </h:body>
> </html>
>
> It looks like the search expression is not looking in the metadata
> facet?
>
> Anyhow, I must put this aside now. If anyone can investigate, please do
> so. I've attached the latest patch to the issue.
>
> Ed
>
> --
> | edward.burns_at_oracle.com | office: +1 407 458 0017
> | 6 business days until planned start of JSF 2.3 Public Review
> | 26 business days until DevNexus 2017
> | 51 business days until JavaLand 2017
>