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

App launcher layout reloading mechanism is broken and bogus

XMLWordPrintable

      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.

        Acceptance criteria

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

                Created:
                Updated:

                  Bug DoR
                  Task DoD