ICEfaces-EE
  1. ICEfaces-EE
  2. IPCK-308

Column rendering issue with RichDataGrid component

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: EE-2.0.0
    • Fix Version/s: EE-3.2.0.GA
    • Component/s: Facelet Components
    • Labels:
      None
    • Environment:
      All
    • Assignee Priority:
      P1
    • Salesforce Case Reference:
    • Workaround Exists:
      Yes
    • Workaround Description:
      Call FacesContext.getCurrentInstance().getViewRoot().getChildren().clear() before rendering the 2nd table.

      Description

      Under certain circumstances the columns in a RichDataGrid EE component can be displayed incorrectly, either columns are duplicated or are missing. The scenario for this is the following:

      Two tables (richDataGrid) can show data. These tables are not shown immediately so they are initialized with dummy data. When the tables are required to be shown they are re-initialized with a new column array and a new set of data. The tables are shown one at a time. The issue arises once one table is shown, then another table is rendered. The first table that is rendered then is displayed with either a duplication of columns or is missing columns from when it was first displayed.

      This issue also depends on how the tables are defined in the page. For example, table #1 is displayed first then table #2. If table #2 is rendered first, then table #1, this issue is shown. If table #1 is shown then table #2, this issue does not occur. It also seems to occur on the first rendering of the tables. If the tables are opened in the order that does not show the issue, displaying the tables after using the order that causes the issue does not reproduce the issue.

      Upon further analysis this issue seems to be due to the re-initialization of the RichDataGridBean object with a new column array. In my test case if I re-use the same column array from when it was first initialized, I can't reproduce the issue. This could be a potential workaround as long as the same column list can be used for the data once it has been re-initialized.

        Activity

        Arran Mccullough created issue -
        Arran Mccullough made changes -
        Field Original Value New Value
        Attachment Case10062Example4.war [ 13307 ]
        Arran Mccullough made changes -
        Salesforce Case [5007000000GtuLe]
        Philip Breau made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s EE-2.0.0.GA_P01 [ 10270 ]
        Resolution Invalid [ 6 ]
        Philip Breau made changes -
        Comment [ sorry, typo, the method is:

        public RichDataGridBean cloneWithNewColumnStucture(IRichDataColumn[] columns)
        ]
        Arran Mccullough made changes -
        Attachment Case10062Example4.zip [ 13310 ]
        Philip Breau made changes -
        Resolution Invalid [ 6 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Philip Breau made changes -
        Attachment datagridtest.war [ 14183 ]
        Philip Breau made changes -
        Status Reopened [ 4 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Philip Breau made changes -
        Resolution Fixed [ 1 ]
        Status Closed [ 6 ] Reopened [ 4 ]
        Philip Breau made changes -
        Attachment dgTest.zip [ 14188 ]
        Ken Fyten made changes -
        Fix Version/s EE-3.1.0.GA [ 10326 ]
        Fix Version/s EE-2.0.0.GA_P01 [ 10270 ]
        Assignee Philip.breau [ philip.breau ] Arran Mccullough [ arran.mccullough ]
        Arran Mccullough made changes -
        Assignee Arran Mccullough [ arran.mccullough ] Ken Fyten [ ken.fyten ]
        Ken Fyten made changes -
        Fix Version/s EE-3.0.0.GA_P01 [ 10328 ]
        Assignee Priority P1
        Assignee Ken Fyten [ ken.fyten ] Philip.breau [ philip.breau ]
        Philip Breau made changes -
        Status Reopened [ 4 ] In Progress [ 3 ]
        Philip Breau made changes -
        Workaround Description Keep the same BaseRichDataColumn array from its first initialization. Call FacesContext.getCurrentInstance().getViewRoot().getChildren().clear() before rendering the 2nd table.
        Philip Breau made changes -
        Fix Version/s EE-3.0.0.GA_P01 [ 10328 ]
        Arran Mccullough made changes -
        Salesforce Case Reference 5007000000GtuLeAAJ
        Philip Breau made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Cannot Reproduce [ 5 ]
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Philip Breau
            Reporter:
            Arran Mccullough
          • Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: