[MGNLUI-5000] Timebox: Assess JCR TreeGrid functionality Created: 05/Feb/19  Updated: 18/Apr/19  Resolved: 22/Feb/19

Status: Closed
Project: Magnolia UI
Component/s: None
Affects Version/s: 6.0
Fix Version/s: 6.1

Type: Task Priority: Neutral
Reporter: Aleksandr Pchelintcev Assignee: Roman Kovařík
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0d
Time Spent: 1d 1h 29m
Original Estimate: Not Specified

Issue Links:
causality
is causing MGNLUI-5060 New framework: move filtering logic f... Closed
dependency
is depended upon by ECOMMERCE-171 IllegalStateException thrown after ch... Closed
supersession
supersedes MGNLUI-4587 Make sure Grid/TreeGrid are resilient... Closed
supersedes MGNLUI-4589 Prevent RepoExceptions when selecting... Closed
supersedes MGNLUI-4578 Make JCR-bound Tree/List views resili... Closed
Template:
Acceptance criteria:
Empty
Task DoR:
Empty
Date of First Response:
Epic Link: UI framework: grids and browsing
Sprint: Foundation 4, Foundation 5
Story Points: 8

 Description   

While implementing the initial version of the TreeView (and to some extend - the ListView), we encountered some problems with using Jackrabbit in Vaadin Grids.

In particular - Grid tends to cache items (i.e. Nodes!) within the guts of its DataCommunicator (glue between the client and server-side, manages DataProvider), which occasionally would result into repo exceptions caused by attempts to interact with stale/gone JCR nodes. This might happen e.g. if a Node has been moved around/deleted by another user or by another app. Even Grid's own operations (like inline editing) could cause issues.

The current implementation tries to reduce the possibility of such problems, but further assessment/testing needs to be done.

What exactly could be done:

  • inspect the current state of JCR support (node wrappers, Grid extensions, availability checks etc).
  • thorough manual testing of different concurrent scenarios of JCR workspace modifications and Grid's reaction on them.
  • Repo test case for the JcrHierarchicalDataProvider, possibly with some involvment of Grid as well.
  • come up with potential future integration testing options for this functionality.


 Comments   
Comment by Roman Kovařík [ 19/Feb/19 ]

Test scenarios
(open contact-v8 app)

Inline editing

  1. inline edit a node
  2. inline edit again to check values were updated
  3. Do the same for a property

Renaming

  1. rename node (by inline editing)
  2. save
  3. rename again
  4. Do the same for a property

Selection

  1. Add a subnode (item should be expanded and new item selected)
  2. Add subnode to the expanded parent (new item should be selected)

Deletion

  1. Select an item
  2. Delete this item from another app/browser tab/browser.
  3. Try to
    a] Press Enter (item should not be opened for editing)
    b] expand this item
    c] collapse this item
    d] click this item
  4. no java exceptions, item should be gone

Observation

  1. Add item from another app/browser tab/browser.
  2. Touch the grid (new item should be visible)
Comment by Roman Kovařík [ 01/Apr/19 ]

ECOMMERCE-171 rather sounds like the e-commerce item doesn't implement equals/hashcode properly.

Comment by Maxime Michel [ 16/Apr/19 ]

Can we get a fixVersion for this please?

Generated at Mon Feb 12 09:22:14 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.