Uploaded image for project: 'Magnolia UI'
  1. Magnolia UI
  2. MGNLUI-3380

App launcher layout reloading mechanism is broken and bogus

    XMLWordPrintable

Details

    Description

      There are several kinds of problems with App launcher layout dynamic reloading which lead to one consequence - the layout is not properly re-initialized upon changes. Things to check:

      • Conceptually: the changes notification usually comes from a separate thread (observation) but the AppLayoutManager synchronously tries to update the layout relatively to the current user (there is/should be none!)
      • In order to prevent the system eventbus listeners that handle the changes from leaking they are removed upon AppLauncher component detach (should only happen when the tab dies), but DeckLayout at times unnecessarily calls #remove(component) for AppLauncher (even though re-adding it in the same method) and the listener is wrongly removed. We should either ensure listener is re-attached or fix DeckLayout logic.
      • Internally in AppDescriptorRegistry when determining what apps have changed, added or removed - we conduct quite a few operations with collections which involve comparison of AppDescriptors which do not have #equals()/#hashCode() methods overridden. Such logic might be fragile.

      Checklists

        Acceptance criteria

        Attachments

          Issue Links

            Activity

              People

                Unassigned Unassigned
                apchelintcev Aleksandr Pchelintcev
                Votes:
                2 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                  Created:
                  Updated:

                  Checklists

                    Bug DoR
                    Task DoD