Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.0
-
Fix Version/s: 2.0.1
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ACE
Description
When investigating ICE-6337, I found that sliderEntry was referencing stale values for it's min and max values. Essentially, the initialize function gets yuiPropers and jsfProps parameters, which are visible from all the other inner functions which are used as callbacks for keyboard events, change events, and for server submission. These functions may be called much later. There may be form submissions after the initial page load and component initialize call, that may then change the state of the component, such that the fresh yuiProps and jsfProps need to be references, and the parameters to initialize are stale, and no longer relevant.
I recommend a code audit of all the ACE components' javascript. Any references to the initialise props parameters within inner functions should be replaced with code to retrieve the appropriate props from the JSContext.
I recommend a code audit of all the ACE components' javascript. Any references to the initialise props parameters within inner functions should be replaced with code to retrieve the appropriate props from the JSContext.
Fixed sliderEntry, by making each callback function get the JSContext and then re-get the JSFProps and JSProps.
Subversion 23897
Addition changes for sliderEntry were lumped in with the
ICE-6337commits. This involved going beyond JSFProps and JSProps, to not continue referencing stale references in callback functions, from the outer closures associated with the initialize function, that had since been replaced with new data by subsequent calls to updateProperties, which had not re-invoked initialise.