The reason Trinidad is doing this was a bug in the early versions of
the JSF-RI - there the form and the link were interlinked, and you
could not use one without the other. The only chance Trinidad would
have got this work was by overwriting the renderers. Now, this should
not be necessary anymore!

regards,

Martin

On 4/10/08, Cristi Toth <[EMAIL PROTECTED]> wrote:
> 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
>


-- 

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Reply via email to