FLUID-6585: Workflow skips onCreate entirely for some createOnEvent components timed from resources

Metadata

Source
FLUID-6585
Type
Bug
Priority
Major
Status
Open
Resolution
N/A
Assignee
Antranig Basman
Reporter
Antranig Basman
Created
2020-12-14T07:27:41.789-0500
Updated
2024-07-17T08:12:55.246-0400
Versions
N/A
Fixed Versions
N/A
Component
  1. Framework

Description

In a complex case which isn't yet fully characterised, the workflow concludeComponentInit firing onCreate and finalising component instantiation can be skipped entirely for some components which are marked as createOnEvent for the onCreate event of a parent, which are timed from some resource construction.

We have some existing test cases for this situation at https://github.com/amb26/infusion/blob/FLUID-6145/tests/framework-tests/core/js/ResourceLoaderTests.js#L663-L674 but evidently we have a further hole.

This was encountered debugging an issue updating the SJRK storytelling tool to the latest release - the version under test is at https://github.com/jobara/sjrk-story-telling/blob/SJRK-405-messagesNotLoading/src/ui/ui-storyViewer.js - there is an existing issue that the persistedValues.uiLanguage listener in base.page triggers two renderings on startup at https://github.com/jobara/sjrk-story-telling/blob/SJRK-405-messagesNotLoading/src/ui/base-page.js#L115-L118 - since renderAllUiTemplates also fires again after templates have been loaded. It is this second firing, the real one, which is problematic, since all the templateLoader subcomponents of the theme file, "learningReflections" fail to receive onCreate and as a result don't renderer these parts of the UI: https://github.com/jobara/sjrk-story-telling/blob/SJRK-405-messagesNotLoading/themes/learningReflections/js/learningReflections.js#L59

The framework instead skips directly from the "constructing" state to "treeConstructed" for the 9 components affected by this workflow bug.