ICEfaces
  1. ICEfaces
  2. ICE-6357

Associate data cells with header cells through use of the scope attribute (508)

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8.2-EE-GA_P02
    • Fix Version/s: 1.8.3, EE-1.8.2.GA_P03
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      -
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.)

      Description

      In order to achieve 508 compliance, the ice:dataTable must associate data cells with column/row headers through the use of ´scope´ attribute. The 'scope' attribute needs to placed within the <th> tags and within the first <td> element of each row. For example:

      <table>
      <tr>
      <th> </th>
      <th scope="col" >Header1</th> <th scope="col" >Header2</th> <th scope="col" >Header3</th> <th scope="col" >Header4</th> </tr>
      <tr> <td scope="row" >Row1-Data1</td> <td>Row1-Data2</td>
      </tr>
      <tr> <td scope="row" >Row2-Data1</td> <td>Row2-Data2</td>
      </tr>
      </table>
      1. ICEfaces-dataTable.JPG
        131 kB
      2. JSF-dataTable.JPG
        105 kB
      3. screenshot-03.png
        208 kB

        Activity

        Tyler Johnson created issue -
        Tyler Johnson made changes -
        Field Original Value New Value
        Issue Type Improvement [ 4 ] New Feature [ 2 ]
        Salesforce Case []
        Tyler Johnson made changes -
        Salesforce Case [5007000000EW6iS]
        Tyler Johnson made changes -
        Priority Major [ 3 ] Blocker [ 1 ]
        Tyler Johnson made changes -
        Summary Associate data cells with heading cells through use of the scope attribute (508) Associate data cells with header cells through use of the scope attribute (508)
        Hide
        Ken Fyten added a comment -

        Basically, we need to support the 'scope' attribute as a passthru attribute on the ice:column component, and datatable header column.

        Show
        Ken Fyten added a comment - Basically, we need to support the 'scope' attribute as a passthru attribute on the ice:column component, and datatable header column.
        Ken Fyten made changes -
        Fix Version/s 1.8.2-EE-GA_P03 [ 10251 ]
        Affects [Documentation (User Guide, Ref. Guide, etc.)]
        Assignee Priority P1
        Assignee Mark Collette [ mark.collette ]
        Hide
        Ken Fyten added a comment -

        Also, I don't think the scope attribute is limited to the 1st column in a row, the idea is to mark which column in the row should be used as an identifier for the row (for example, a row number col, etc.).

        Show
        Ken Fyten added a comment - Also, I don't think the scope attribute is limited to the 1st column in a row, the idea is to mark which column in the row should be used as an identifier for the row (for example, a row number col, etc.).
        Ken Fyten made changes -
        Assignee Mark Collette [ mark.collette ] Yip Ng [ yip.ng ]
        Arran Mccullough made changes -
        Attachment ICEfaces-dataTable.JPG [ 12739 ]
        Attachment JSF-dataTable.JPG [ 12740 ]
        Show
        Ken Fyten added a comment - http://www.w3.org/TR/WCAG20-TECHS/H63.html
        Hide
        Ken Fyten added a comment -

        Suggest the following changes to the ice:column:

        1. Each <f:facet name="header"> will render the following new HTML attribute in the <th> element for that column header: <th scope="col">

        2. The ice:column itself will support the following new attribute "isRowIdentifier=true/false" (default=false). When specified as true, the column will render each of it's <td> elements with the following scope attribute: <td scope="row">

        Example usage:

        <ice:dataTable id="iceDataTbl"
        var="employee"
        value="#

        {resizeableColumnBean.employees}

        " >
        <ice:column isRowIdentifier="true">
        <f:facet name="header">
        <ice:outputText id="nameCol"
        value="#

        {msgs['page.dataTable.column1']}

        "/>
        </f:facet>
        <ice:outputText id="name"
        value="#

        {employee.id}

        "/>
        </ice:column>

        <ice:column>
        <f:facet name="header">
        <ice:outputText id="lngText1Lbl"
        value="#

        {msgs['page.dataTable.name']}

        "/>
        </f:facet>
        <ice:outputText id="lngText1"
        value="#

        {employee.lastName}

        , #

        {employee.firstName}

        "/>
        </ice:column>

        <ice:column>
        <f:facet name="header">
        <ice:outputText id="lngText2Lbl"
        value="#

        {msgs['page.dataTable.misc']}

        "/>
        </f:facet>
        <ice:outputText id="lngText2"
        value="#

        {employee.departmentName}

        , #

        {employee.subDepartmentName}

        , #

        {employee.phone}

        "/>
        </ice:column>
        </ice:dataTable>

        Show
        Ken Fyten added a comment - Suggest the following changes to the ice:column: 1. Each <f:facet name="header"> will render the following new HTML attribute in the <th> element for that column header: <th scope="col"> 2. The ice:column itself will support the following new attribute "isRowIdentifier=true/false" (default=false). When specified as true, the column will render each of it's <td> elements with the following scope attribute: <td scope="row"> Example usage: <ice:dataTable id="iceDataTbl" var="employee" value="# {resizeableColumnBean.employees} " > <ice:column isRowIdentifier="true"> <f:facet name="header"> <ice:outputText id="nameCol" value="# {msgs['page.dataTable.column1']} "/> </f:facet> <ice:outputText id="name" value="# {employee.id} "/> </ice:column> <ice:column> <f:facet name="header"> <ice:outputText id="lngText1Lbl" value="# {msgs['page.dataTable.name']} "/> </f:facet> <ice:outputText id="lngText1" value="# {employee.lastName} , # {employee.firstName} "/> </ice:column> <ice:column> <f:facet name="header"> <ice:outputText id="lngText2Lbl" value="# {msgs['page.dataTable.misc']} "/> </f:facet> <ice:outputText id="lngText2" value="# {employee.departmentName} , # {employee.subDepartmentName} , # {employee.phone} "/> </ice:column> </ice:dataTable>
        Ken Fyten made changes -
        Comment [ In the case of the <ice:column> having it's "groupOn" attribute defined, such that the rendered output for the table body section uses the "rowspan" attribute within the corresponding <td> element, the expected behaviour is basically the same as above, expect in this case the scope attribute within the <td> element should specify "rowgroup", instead of "row".

        Example:

                    <!-- Grouping can be applied to row data too -->
                    <ice:column isRowIdentifier="true" groupOn="#{employee.departmentName}">
                        <ice:outputText id="deptname"
                                        value="#{employee.departmentName}"/>
                    </ice:column>

        ...results in rendered markup:

            <td class="iceDatTblCol2" rowspan="15" scope="rowgroup">
                 ...
            </td>
        ]
        Hide
        Ken Fyten added a comment -

        Looks like the std. JSF h:datatTable has supported this since JSF 1.2.

        Show
        Ken Fyten added a comment - Looks like the std. JSF h:datatTable has supported this since JSF 1.2.
        Ken Fyten made changes -
        Issue Type New Feature [ 2 ] Bug [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #23418 Thu Dec 09 13:02:59 MST 2010 yip.ng ICE-6357: Associate data cells with header cells through use of the scope attribute (508).
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_properties/ice-uicolumn-props.xml
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/UIColumn.java
        yip.ng made changes -
        Attachment screenshot-03.png [ 12749 ]
        Hide
        yip.ng added a comment -

        Done. See screenshot 3.

        Attribute name is "rowIdentifier", not "isRowIdentifier". (Generated tag handler uses name in look up through attributes map, which will look for a method with the strange name : "isIsRowIdentifier".)

        Other table layout configs may not work if they don't share same rendering code as for UIColumn.

        Revision: 23418


        Modified : /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/UIColumn.java
        Modified : /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
        Modified : /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_properties/ice-uicolumn-props.xml

        Show
        yip.ng added a comment - Done. See screenshot 3. Attribute name is "rowIdentifier", not "isRowIdentifier". (Generated tag handler uses name in look up through attributes map, which will look for a method with the strange name : "isIsRowIdentifier".) Other table layout configs may not work if they don't share same rendering code as for UIColumn. Revision: 23418 Modified : /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/UIColumn.java Modified : /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/TableRenderer.java Modified : /icefaces/trunk/icefaces/component-metadata/src/main/resources/conf/ice_properties/ice-uicolumn-props.xml
        Ken Fyten made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 1.8.3 [ 10211 ]
        Assignee Priority P1
        Resolution Fixed [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #24761 Thu Jun 02 16:51:29 MDT 2011 yip.ng ICE-6357: Associate data cells with header cells through use of the scope attribute (508).
        Files Changed
        Commit graph MODIFY /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
        Hide
        Judy Guglielmin added a comment -

        this fix affects any tables that have <h:column> under an <ice:dataTable/> component. causes the following NPE:-
        A distributed application with Seam (icefaces booking example) for some reason has this and it worked with 1.8.2 as well as P01, etc. but P03 is breaking here.

        15:46:43,782 ERROR [D2DFaceletViewHandler] Problem in renderResponse: null
        java.lang.NullPointerException
        at com.icesoft.faces.component.ext.renderkit.TableRenderer.encodeChildren(TableRenderer.java:869)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
        at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:357)
        at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:364)
        at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:95)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:490)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495)
        at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495)
        at com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:281)
        at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:155)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:51)
        at com.icesoft.faces.context.View$2$1.respond(View.java:84)
        at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:233)
        at com.icesoft.faces.context.View$2.serve(View.java:118)
        at com.icesoft.faces.context.View.servePage(View.java:191)
        at com.icesoft.faces.webapp.http.core.MultiViewServer.service(MultiViewServer.java:111)
        at com.icesoft.faces.webapp.http.common.ServerProxy.service(ServerProxy.java:43)
        at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet$4.service(MainSessionBoundServlet.java:183)
        at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:48)
        at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:55)
        at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:77)
        at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:55)
        at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:182)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
        at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
        at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
        at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        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:235)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:680)
        15:46:43,793 SEVERE [lifecycle] JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /main.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@6159a20c]
        15:46:43,803 ERROR [View] Failed to render page for http://localhost:8080/seam-icefaces/main.seam?cid=15 [/main.xhtml]
        15:46:43,804 ERROR [View] Problem encountered during View.servePage
        javax.faces.FacesException: Problem in renderResponse: null
        at com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:295)
        at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:155)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:51)
        at com.icesoft.faces.context.View$2$1.respond(View.java:84)

        Show
        Judy Guglielmin added a comment - this fix affects any tables that have <h:column> under an <ice:dataTable/> component. causes the following NPE:- A distributed application with Seam (icefaces booking example) for some reason has this and it worked with 1.8.2 as well as P01, etc. but P03 is breaking here. 15:46:43,782 ERROR [D2DFaceletViewHandler] Problem in renderResponse: null java.lang.NullPointerException at com.icesoft.faces.component.ext.renderkit.TableRenderer.encodeChildren(TableRenderer.java:869) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:357) at com.icesoft.faces.renderkit.dom_html_basic.DomBasicRenderer.encodeParentAndChildren(DomBasicRenderer.java:364) at com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:95) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:490) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:495) at com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:281) at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:155) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:51) at com.icesoft.faces.context.View$2$1.respond(View.java:84) at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:233) at com.icesoft.faces.context.View$2.serve(View.java:118) at com.icesoft.faces.context.View.servePage(View.java:191) at com.icesoft.faces.webapp.http.core.MultiViewServer.service(MultiViewServer.java:111) at com.icesoft.faces.webapp.http.common.ServerProxy.service(ServerProxy.java:43) at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet$4.service(MainSessionBoundServlet.java:183) at com.icesoft.faces.webapp.http.servlet.BasicAdaptingServlet.service(BasicAdaptingServlet.java:48) at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:55) at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:77) at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:55) at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:182) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 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:235) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:680) 15:46:43,793 SEVERE [lifecycle] JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /main.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent [source=com.sun.faces.lifecycle.LifecycleImpl@6159a20c] 15:46:43,803 ERROR [View] Failed to render page for http://localhost:8080/seam-icefaces/main.seam?cid=15 [/main.xhtml] 15:46:43,804 ERROR [View] Problem encountered during View.servePage javax.faces.FacesException: Problem in renderResponse: null at com.icesoft.faces.facelets.D2DFaceletViewHandler.renderResponse(D2DFaceletViewHandler.java:295) at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:155) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:51) at com.icesoft.faces.context.View$2$1.respond(View.java:84)
        Judy Guglielmin made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Hide
        Judy Guglielmin added a comment - - edited

        I will update the seam-booking example, but it will only be done for the next release of Seam (2.3?), so no good for now. Mark has suggested the following fix:-

        //change code at 869 from
        if (((Boolean)isRowIdentifier).booleanValue())

        { td.setAttribute("scope", "row"); }

        //to
        if (isRowIdentifier instanceof Boolean && ((Boolean)isRowIdentifier).booleanValue())

        { td.setAttribute("scope", "row"); }

        and this fixes the issue with the seam application that is included in their distribution bundles.

        Show
        Judy Guglielmin added a comment - - edited I will update the seam-booking example, but it will only be done for the next release of Seam (2.3?), so no good for now. Mark has suggested the following fix:- //change code at 869 from if (((Boolean)isRowIdentifier).booleanValue()) { td.setAttribute("scope", "row"); } //to if (isRowIdentifier instanceof Boolean && ((Boolean)isRowIdentifier).booleanValue()) { td.setAttribute("scope", "row"); } and this fixes the issue with the seam application that is included in their distribution bundles.
        Hide
        yip.ng added a comment -

        Done.

        Revision: 24761


        Modified : /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/TableRenderer.java

        Show
        yip.ng added a comment - Done. Revision: 24761 Modified : /icefaces/trunk/icefaces/component/src/com/icesoft/faces/component/ext/renderkit/TableRenderer.java
        yip.ng made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Issue Type Bug [ 1 ] Improvement [ 4 ]
        Priority Blocker [ 1 ] Major [ 3 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            yip.ng
            Reporter:
            Tyler Johnson
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: