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: Edward Burns <edward.burns_at_oracle.com>
Date: Sat, 14 Jan 2017 13:11:59 -0800

>>>>> 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