Read Time:3 Minute, 8 Second
So if I have this nice exception on WebSphere 9 with JSF 1.2 (yes, WebSphere 9 uses JSF 2) and MyFaces 1.8 (I guess):
Caused by: javax.faces.FacesException: Exception while calling encodeEnd on component : {Component-Path : [Class: org.ajax4jsf.component.AjaxViewRoot,ViewId: /view/request/other_data.xhtml][Class: javax.faces.component.html.HtmlPanelGroup,Id: main_area]}
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:627)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:261)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:257)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
... 51 more
Caused by: javax.faces.FacesException: Exception while calling encodeEnd on component : {Component-Path : [Class: org.ajax4jsf.component.AjaxViewRoot,ViewId: /view/request/other_data.xhtml][Class: javax.faces.component.html.HtmlPanelGroup,Id: main_area][Class: javax.faces.component.html.HtmlForm
,Id: main_form][Class: org.apache.myfaces.custom.htmlTag.HtmlTag,Id: contentAreaDiv][Class: javax.faces.component.UINamingContainer,Id: j_id523][Class: org.apache.myfaces.component.html.ext.HtmlMessages,Id: j_id525]}
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:627)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:534)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:532)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:532)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:532)
at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:511)
at org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:92)
at org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererProxy.encodeEnd(ExtValRendererProxy.java:165)
at org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererWrapper.encodeEnd(ExtValRendererWrapper.java:409)
at org.apache.myfaces.extensions.validator.generic.renderkit.ExtValGenericRendererWrapper.intercept(ExtValGenericRendererWrapper.java:79)
at org.apache.myfaces.renderkit.html.HtmlGroupRenderer$$EnhancerByCGLIB$$456d528a.encodeEnd(<generated>)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
... 59 more
Caused by: java.lang.IllegalArgumentException: Intermediate identifier j_id1161 in search expression j_id1161:birthday identifies a UIComponent that is not a NamingContainer
at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:460)
at javax.faces.component.UIComponentBase.findComponent(UIComponentBase.java:463)
at org.apache.myfaces.renderkit.html.ext.HtmlMessageRenderer.findInputLabel(HtmlMessageRenderer.java:166)
at org.apache.myfaces.renderkit.html.ext.HtmlMessagesRenderer.getSummary(HtmlMessagesRenderer.java:80)
at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlMessageRendererBase.renderSingleFacesMessage(HtmlMessageRendererBase.java:133)
at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlMessagesRendererBase.renderList(HtmlMessagesRendererBase.java:99)
at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlMessagesRendererBase.renderMessages(HtmlMessagesRendererBase.java:80)
at org.apache.myfaces.renderkit.html.ext.HtmlMessagesRenderer.encodeEnd(HtmlMessagesRenderer.java:52)
at org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererProxy.encodeEnd(ExtValRendererProxy.java:165)
at org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererWrapper.encodeEnd(ExtValRendererWrapper.java:409)
at org.apache.myfaces.extensions.validator.generic.renderkit.ExtValGenericRendererWrapper.intercept(ExtValGenericRendererWrapper.java:79)
at org.apache.myfaces.renderkit.html.ext.HtmlMessagesRenderer$$EnhancerByCGLIB$$a0c2e090.encodeEnd(<generated>)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:624)
... 73 more
looking for a component that is referenced even though it’s not on the same page, it’s because f:subview
requires an id
attribute, and even though it was working without it well for 10 years (note that it gets an automatically generated ID), looking it up now runs into problems for some reason.