Details
-
Type: Bug
-
Status: Closed
-
Priority: 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.
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 ] |
Steps to reproduce issue: