ICEfaces
  1. ICEfaces
  2. ICE-7624

commandLink does not call method when used in a multi-nested ace:dataTable

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 3.0.RC1
    • Fix Version/s: 3.2
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ICEfaces 3.0 RC1a Build 7

      Description

      A commandLink is used in a column that is in a multi-nested dataTable. This occurs for all parent rows except the first row. The table that is affected by this is a third level nested dataTable.

      Parent Table
       - Child Table
         - Sub Child Table

      The commandLink is located in a column for the Sub Child Table. The methods are not called when clicked but an update is sent. The Sub Child Table becomes collapsed. If the link is clicked on the first row of the table then it works correctly, calling its action method.

        Activity

        Arran Mccullough created issue -
        Arran Mccullough made changes -
        Field Original Value New Value
        Attachment Case10815Example.zip [ 13921 ]
        Arran Mccullough made changes -
        Attachment Case10815ExampleWAR.zip [ 13922 ]
        Arran Mccullough made changes -
        Salesforce Case [5007000000KDzNV]
        Hide
        Arran Mccullough added a comment -

        Steps to reproduce with attached test case:

        • App loads with two rows in the parent table.
        • Expand the first row, a Child table is shown with three rows/two columns.
        • The second column contains a commandLink, clicking it calls the action method which outputs a log in the server console.
        • Expand the first row of the child table, a Sub Child Table is shown which has a similar structure.
        • Clicking on the link in the second column of the Sub Child Table also calls the action method.
        • Above steps work since this was done on the first parent table row.
        • To see the issue repeat the steps above but with the second row of the Parent Table. Clicking on the links in the Child Table work, but not for the Sub Child Table.
        Show
        Arran Mccullough added a comment - Steps to reproduce with attached test case: App loads with two rows in the parent table. Expand the first row, a Child table is shown with three rows/two columns. The second column contains a commandLink, clicking it calls the action method which outputs a log in the server console. Expand the first row of the child table, a Sub Child Table is shown which has a similar structure. Clicking on the link in the second column of the Sub Child Table also calls the action method. Above steps work since this was done on the first parent table row. To see the issue repeat the steps above but with the second row of the Parent Table. Clicking on the links in the Child Table work, but not for the Sub Child Table.
        Hide
        Mark Collette added a comment -

        If the first parent row is expanded, then things work properly. If it is not expanded, then the child table expansions can unexpand when clicking on the links within them, and the commandLink actionListener won't fire.

        This was found to work on trunk, most likely fixed by 26898. We should confirm that it's alright in 3.0.0.RC2.

        Show
        Mark Collette added a comment - If the first parent row is expanded, then things work properly. If it is not expanded, then the child table expansions can unexpand when clicking on the links within them, and the commandLink actionListener won't fire. This was found to work on trunk, most likely fixed by 26898. We should confirm that it's alright in 3.0.0.RC2.
        Ken Fyten made changes -
        Assignee Arran Mccullough [ arran.mccullough ]
        Hide
        Arran Mccullough added a comment -

        The original steps to reproduce the issue look to be fixes but now there is a new issue. If the first row is expanded then clicking on the link in the second row does not work. This looks to be an issue even with the latest ICEfaces 3 trunk.

        Steps to reproduce current issue:

        • Expand the first rows expansion.
        • Expand the second rows expansion and also the nested tables first row to show the Sub Child table.
        • Click on the sub Childs table links. No action is called.
        • If the first row is contracted then the link works correctly.
        Show
        Arran Mccullough added a comment - The original steps to reproduce the issue look to be fixes but now there is a new issue. If the first row is expanded then clicking on the link in the second row does not work. This looks to be an issue even with the latest ICEfaces 3 trunk. Steps to reproduce current issue: Expand the first rows expansion. Expand the second rows expansion and also the nested tables first row to show the Sub Child table. Click on the sub Childs table links. No action is called. If the first row is contracted then the link works correctly.
        Arran Mccullough made changes -
        Assignee Arran Mccullough [ arran.mccullough ] Ken Fyten [ ken.fyten ]
        Ken Fyten made changes -
        Fix Version/s 3.1 [ 10312 ]
        Assignee Priority P1
        Assignee Ken Fyten [ ken.fyten ] Arran Mccullough [ arran.mccullough ]
        Arran Mccullough made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Ken Fyten made changes -
        Fix Version/s 3.1.0.BETA1 [ 10335 ]
        Arran Mccullough made changes -
        Attachment Case10815Example.zip [ 13921 ]
        Arran Mccullough made changes -
        Attachment Case10815ExampleWAR.zip [ 13922 ]
        Arran Mccullough made changes -
        Attachment Case10815Example.war [ 14693 ]
        Attachment Case10815Example.zip [ 14694 ]
        Hide
        Arran Mccullough added a comment -

        Steps mentioned in my previous comment are still seen with a recent trunk build.

        Show
        Arran Mccullough added a comment - Steps mentioned in my previous comment are still seen with a recent trunk build.
        Arran Mccullough made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Assignee Arran Mccullough [ arran.mccullough ] Ken Fyten [ ken.fyten ]
        Ken Fyten made changes -
        Fix Version/s 3.2 [ 10338 ]
        Fix Version/s 3.1 [ 10312 ]
        Fix Version/s 3.1.0.BETA1 [ 10335 ]
        Assignee Priority P1 P2
        Assignee Ken Fyten [ ken.fyten ] Nils Lundquist [ nils.lundquist ]
        Hide
        Nils Lundquist added a comment -

        This issue stems from an error with our expansion state- the calls to getStateMap() during decoding for the child tables always return the state map of the 1st child table.

        This may be due to caching within getStateMap or issues with our state saving itself.

        Show
        Nils Lundquist added a comment - This issue stems from an error with our expansion state- the calls to getStateMap() during decoding for the child tables always return the state map of the 1st child table. This may be due to caching within getStateMap or issues with our state saving itself.
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #30029 Tue Jul 17 13:06:24 MDT 2012 nils.lundquist ICE-7624 - Resolved decoding state sharing issue by removing component-level cached RowStateMap.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/column/Column.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRowRenderer.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #30030 Tue Jul 17 13:36:49 MDT 2012 nils.lundquist ICE-7624 - Re-adding component-level RowStateMap caching to prevent performance implications. Will pursue implementing DataTableContext to increase state loading efficacy.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTable.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/column/Column.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRowRenderer.java
        Hide
        Nils Lundquist added a comment - - edited

        Fixed issue by removing component-level stateMap caching, however the additional reloading of the data model required to now obtain the correct stateMap, increases an already noticeable slowdown in my test case.

        The only foreseeable fix at the moment would be a sizeable refactoring to implement a DataTableContext object that would ferry the StateMap and other common objects, reducing the amount that they are loaded from the state. Even then this would not be applicable for some instances where StateMap is handled - like in setRowIndex.

        Show
        Nils Lundquist added a comment - - edited Fixed issue by removing component-level stateMap caching, however the additional reloading of the data model required to now obtain the correct stateMap, increases an already noticeable slowdown in my test case. The only foreseeable fix at the moment would be a sizeable refactoring to implement a DataTableContext object that would ferry the StateMap and other common objects, reducing the amount that they are loaded from the state. Even then this would not be applicable for some instances where StateMap is handled - like in setRowIndex.
        Hide
        Nils Lundquist added a comment -

        Revision #30029
        Committed by nils.lundquist
        A minute ago
        ICE-7624 - Resolved decoding state sharing issue by removing component-level cached RowStateMap.

        Show
        Nils Lundquist added a comment - Revision #30029 Committed by nils.lundquist A minute ago ICE-7624 - Resolved decoding state sharing issue by removing component-level cached RowStateMap.
        Ken Fyten made changes -
        Fix Version/s 3.1 [ 10312 ]
        Fix Version/s 3.2 [ 10338 ]
        Hide
        Nils Lundquist added a comment -

        Revision #30030
        Committed by nils.lundquist
        Moments ago
        ICE-7624 - Re-adding component-level RowStateMap caching to prevent performance implications. Will eventually pursue implementing DataTableContext to increase state loading efficacy while removing caching to resolve ICE-7624.

        Show
        Nils Lundquist added a comment - Revision #30030 Committed by nils.lundquist Moments ago ICE-7624 - Re-adding component-level RowStateMap caching to prevent performance implications. Will eventually pursue implementing DataTableContext to increase state loading efficacy while removing caching to resolve ICE-7624 .
        Nils Lundquist made changes -
        Priority Major [ 3 ] Minor [ 4 ]
        Ken Fyten made changes -
        Fix Version/s 3.2 [ 10338 ]
        Fix Version/s 3.1 [ 10312 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #30383 Fri Aug 03 11:38:22 MDT 2012 nils.lundquist ICE-7624 - Refactored DataTable rendering to use a helper object to hold state preventing issues with indexed client ids.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableFootRenderer.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableHeadRenderer.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRowRenderer.java
        Commit graph ADD /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderingContext.java
        Hide
        Nils Lundquist added a comment -

        Revision #30383
        Committed by nils.lundquist
        39 minutes ago
        ICE-7624 - Refactored DataTable rendering to use a helper object to hold state preventing issues with indexed client ids.

        Show
        Nils Lundquist added a comment - Revision #30383 Committed by nils.lundquist 39 minutes ago ICE-7624 - Refactored DataTable rendering to use a helper object to hold state preventing issues with indexed client ids.
        Nils Lundquist made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #30410 Wed Aug 08 13:08:11 MDT 2012 nils.lundquist ICE-7624 - Corrected logic of DataTableFoot/Head renderer when rendering inside the scrollable region. Refactor, due logic not being encapsulated correctly had removed some boolean logic.
        Files Changed
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableFootRenderer.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableRenderer.java
        Commit graph MODIFY /icefaces3/trunk/icefaces/ace/component/src/org/icefaces/ace/component/datatable/DataTableHeadRenderer.java
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Assignee Priority P2 [ 10011 ]

          People

          • Assignee:
            Nils Lundquist
            Reporter:
            Arran Mccullough
          • Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: