Hi,

I found something surprising, while working on a Tomahawk application, in
which I added Trinidad for a couple of components.
Trinidad overrides default renderers of some  javax.faces.* components like
Form, HtmlCommandButton and HtmlCommandLink.

Why is this needed?
I noticed it adds some custom scripts.
BUT why should it be so intrusive in the default renderers?

The problem that made me find this was that I got some exceptions in the
tomahawk PPR.
Except on some pages, the only Trinidad component I use is tr:document to
have the skinning enabled.
I definitely expect for the Tomahawk PPR within a h:form and containing an
h:commandButton to work.

i got this stack trace on a PPR submit:

*javax.faces.FacesException*: Exception while calling encodeEnd on component
: {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId:
/pages/configuration/configAssessmentModuleEdit.xhtml][Class:
org.apache.myfaces.trinidad.component.core.CoreDocument,Id: j_id1][Class:
javax.faces.component.html.HtmlForm,Id: mform][Class:
org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
moduleEditTab][Class: org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
childrenTab][Class: org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
pprQuestionEdit][Class: javax.faces.component.html.HtmlPanelGroup,Id:
j_id174]}
        at javax.faces.component.UIComponentBase.encodeEnd(*
UIComponentBase.java:559*)
        at
org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(*
RendererUtils.java:420*)
        at
org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(*
RendererUtils.java:401*)
        at
org.apache.myfaces.custom.ppr.PPRPanelGroupRenderer.encodeChildren(*
PPRPanelGroupRenderer.java:93*)
        at javax.faces.component.UIComponentBase.encodeChildren(*
UIComponentBase.java:543*)
        at
org.apache.myfaces.custom.ppr.PPRPhaseListener.encodeTriggeredComponents(*
PPRPhaseListener.java:288*)
        at
org.apache.myfaces.custom.ppr.PPRPhaseListener.processPartialPageRequest(*
PPRPhaseListener.java:169*)
        at org.apache.myfaces.custom.ppr.PPRPhaseListener.beforePhase(*
PPRPhaseListener.java:94*)
        at
org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(
*PhaseListenerManager.java:73*)
        at org.apache.myfaces.lifecycle.LifecycleImpl.render(*
LifecycleImpl.java:134*)
        at javax.faces.webapp.FacesServlet.service(*FacesServlet.java:152*)
        at org.apache.myfaces.webapp.MyFacesServlet.service(*
MyFacesServlet.java:100*)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
*ApplicationFilterChain.java:290*)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(*
ApplicationFilterChain.java:206*)
        at com.db.gto.coo.itsg.gui.login.LoginFilter.doHttpFilter(*
LoginFilter.java:131*)
        at com.db.gto.coo.itsg.gui.filter.SpringJSFFilterBase.doFilter(*
SpringJSFFilterBase.java:47*)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
*ApplicationFilterChain.java:235*)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(*
ApplicationFilterChain.java:206*)
        at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(*
ExtensionsFilter.java:226*)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
*ApplicationFilterChain.java:235*)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(*
ApplicationFilterChain.java:206*)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(*
OncePerRequestFilter.java:70*)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
*ApplicationFilterChain.java:235*)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(*
ApplicationFilterChain.java:206*)
        at
org.springframework.web.filter.RequestContextFilter.doFilterInternal(*
RequestContextFilter.java:63*)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(*
OncePerRequestFilter.java:75*)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
*ApplicationFilterChain.java:235*)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(*
ApplicationFilterChain.java:206*)
        at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(*
CharacterEncodingFilter.java:96*)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(*
OncePerRequestFilter.java:75*)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
*ApplicationFilterChain.java:235*)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(*
ApplicationFilterChain.java:206*)
        at org.apache.catalina.core.StandardWrapperValve.invoke(*
StandardWrapperValve.java:233*)
        at org.apache.catalina.core.StandardContextValve.invoke(*
StandardContextValve.java:175*)
        at org.apache.catalina.core.StandardHostValve.invoke(*
StandardHostValve.java:128*)
        at org.apache.catalina.valves.ErrorReportValve.invoke(*
ErrorReportValve.java:102*)
        at org.apache.catalina.core.StandardEngineValve.invoke(*
StandardEngineValve.java:109*)
        at org.apache.catalina.connector.CoyoteAdapter.service(*
CoyoteAdapter.java:263*)
        at org.apache.coyote.http11.Http11Processor.process(*
Http11Processor.java:844*)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(*
Http11Protocol.java:584*)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(*
JIoEndpoint.java:447*)
        at java.lang.Thread.run(*Thread.java:619*)
Caused by: *javax.faces.FacesException*: Exception while calling encodeEnd
on component : {Component-Path : [Class:
javax.faces.component.UIViewRoot,ViewId:
/pages/configuration/configAssessmentModuleEdit.xhtml][Class:
org.apache.myfaces.trinidad.component.core.CoreDocument,Id: j_id1][Class:
javax.faces.component.html.HtmlForm,Id: mform][Class:
org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
moduleEditTab][Class: org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
childrenTab][Class: org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
pprQuestionEdit][Class: javax.faces.component.html.HtmlPanelGroup,Id:
j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
questionForm][Class: javax.faces.component.html.HtmlPanelGrid,Id: j_id181]}
        at javax.faces.component.UIComponentBase.encodeEnd(*
UIComponentBase.java:559*)
        at
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(*
RendererUtils.java:515*)
        at
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(*
RendererUtils.java:492*)
        at
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(*
RendererUtils.java:513*)
        at
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(*
RendererUtils.java:492*)
        at
org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(
*HtmlGroupRendererBase.java:92*)
        at javax.faces.component.UIComponentBase.encodeEnd(*
UIComponentBase.java:556*)
        ... 41 more
Caused by: *javax.faces.FacesException*: Exception while calling encodeEnd
on component : {Component-Path : [Class:
javax.faces.component.UIViewRoot,ViewId:
/pages/configuration/configAssessmentModuleEdit.xhtml][Class:
org.apache.myfaces.trinidad.component.core.CoreDocument,Id: j_id1][Class:
javax.faces.component.html.HtmlForm,Id: mform][Class:
org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
moduleEditTab][Class: org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
childrenTab][Class: org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
pprQuestionEdit][Class: javax.faces.component.html.HtmlPanelGroup,Id:
j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
questionForm][Class: javax.faces.component.html.HtmlPanelGrid,Id:
j_id181][Class: javax.faces.component.html.HtmlPanelGroup,Id: j_id191]}
        at javax.faces.component.UIComponentBase.encodeEnd(*
UIComponentBase.java:559*)
        at
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(*
RendererUtils.java:515*)
        at
org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(
*HtmlGridRendererBase.java:221*)
        at
org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(
*HtmlGridRendererBase.java:102*)
        at javax.faces.component.UIComponentBase.encodeEnd(*
UIComponentBase.java:556*)
        ... 47 more
Caused by: *javax.faces.FacesException*: Exception while calling encodeBegin
on component : {Component-Path : [Class:
javax.faces.component.UIViewRoot,ViewId:
/pages/configuration/configAssessmentModuleEdit.xhtml][Class:
org.apache.myfaces.trinidad.component.core.CoreDocument,Id: j_id1][Class:
javax.faces.component.html.HtmlForm,Id: mform][Class:
org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
moduleEditTab][Class: org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
childrenTab][Class: org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
pprQuestionEdit][Class: javax.faces.component.html.HtmlPanelGroup,Id:
j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
questionForm][Class: javax.faces.component.html.HtmlPanelGrid,Id:
j_id181][Class: javax.faces.component.html.HtmlPanelGroup,Id:
j_id191][Class: javax.faces.component.html.HtmlCommandButton,Id:
questionSave]}
        at javax.faces.component.UIComponentBase.encodeBegin(*
UIComponentBase.java:531*)
        at
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(*
RendererUtils.java:506*)
        at
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(*
RendererUtils.java:492*)
        at
org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(
*HtmlGroupRendererBase.java:92*)
        at javax.faces.component.UIComponentBase.encodeEnd(*
UIComponentBase.java:556*)
        ... 51 more
Caused by: *java.lang.NullPointerException*
        at
org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.AutoSubmitUtils.getFullPageSubmitScript(
*AutoSubmitUtils.java:105*)
        at
org.apache.myfaces.trinidadinternal.renderkit.htmlBasic.HtmlCommandButtonRenderer.encodeBegin(
*HtmlCommandButtonRenderer.java:99*)
        at javax.faces.component.UIComponentBase.encodeBegin(*
UIComponentBase.java:528*)
        ... 55 more

-- 
Cristi Toth

-------------
Codebeat
www.codebeat.ro

Reply via email to