[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-827) ICEfaces components are rendering during non RENDER_RESPONSE phase

Ted Goddard (JIRA) jira-events at lists.jboss.org
Wed Feb 21 14:14:35 EST 2007


    [ http://jira.jboss.com/jira/browse/JBSEAM-827?page=comments#action_12353852 ] 
            
Ted Goddard commented on JBSEAM-827:
------------------------------------


ICEfaces pages must be served with the .iface extension

    <servlet-mapping>
        <servlet-name>Persistent Faces Servlet</servlet-name>
        <url-pattern>*.iface</url-pattern>
    </servlet-mapping>

and other views must be delegated to the Seam-provided ViewHandler:

    <context-param>
        <param-name>com.icesoft.faces.delegateNonIface</param-name>
        <param-value>true</param-value>
    </context-param>

thereby requiring that both Seam and ICEfaces ViewHandlers be installed in the correct order (in faces-config.xml):

    <application>
        <view-handler>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</view-handler>
    </application>

    <application>
        <view-handler>com.icesoft.faces.facelets.D2DSeamFaceletViewHandler</view-handler>
    </application>

In testing with the Seam mail application, both ICEfaces and non-ICEfaces views coexist, with mail successfully sent from the non-ICEfaces view, however mail sent from the ICEfaces view succeeds, but throws an exception:

javax.el.ELException: /simple.xhtml: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. 
        at com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:50)
        at com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
        at org.jboss.seam.ui.JSF.renderChild(JSF.java:171)
        at org.jboss.seam.ui.JSF.renderChildren(JSF.java:162)
        at org.jboss.seam.mail.ui.MailComponent.encode(MailComponent.java:50)
        at org.jboss.seam.mail.ui.MailComponent.encode(MailComponent.java:38)
        at org.jboss.seam.mail.ui.AddressComponent.getInternetAddress(AddressComponent.java:28)
        at org.jboss.seam.mail.ui.RecipientAddressComponent.encodeBegin(RecipientAddressComponent.java:25)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:579)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:586)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:586)
        at com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:276)
        at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149)
        at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
        at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCycle(BlockingServlet.java:457)
        at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates(BlockingServlet.java:444)
        at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.executeRequest(BlockingServlet.java:314)
        at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:186)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
        at java.lang.Thread.run(Thread.java:613)
Caused by: org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. 
        at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source)
        at org.apache.xerces.dom.ParentNode.insertBefore(Unknown Source)
        at org.apache.xerces.dom.CoreDocumentImpl.insertBefore(Unknown Source)
        at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source)
        at com.icesoft.faces.context.DOMResponseWriter.writeText(DOMResponseWriter.java:243)
        at com.sun.facelets.el.ELText$ELTextVariable.writeText(ELText.java:186)
        at com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:45)


It maybe that FacesContext.currentInstance() is returning the instance associated with the ICEfaces page invoking the email rendering. Perhaps  rendering the email in a different thread would resolve this.


> ICEfaces components are rendering during non RENDER_RESPONSE phase 
> -------------------------------------------------------------------
>
>                 Key: JBSEAM-827
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-827
>             Project: JBoss Seam
>          Issue Type: Bug
>          Components: ICE Faces Integration
>         Environment: SEAM+ICEfaces
>            Reporter: Gregory Dick
>         Assigned To: Gregory Dick
>
> During the INVOKE_APPLICATION phase of application operations that are printing to PDF, SEAM is directly rendering facelets output, and ICEfaces components are mistakenly rendering at this time. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list