Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 4.0
-
Fix Version/s: EE-4.1.0.RC1, EE-4.1.0.GA, 4.2.BETA, 4.2
-
Component/s: ACE-Components, Sample Apps
-
Labels:None
-
Environment:Tomcat 7, ICEfaces 4.0, All browsers
Description
After dynamically updating a form, the ace:tooltip id is changed. This can be demonstrated in the ICEfaces 4.0 public demo.
To reproduce:
- Go to http://icefaces-showcase.icesoft.org/showcase.jsf?grp=aceMenu&exp=tooltipOverviewBean
- Mouse over the Camaro Button, the id of the tooltip is "qtip-form:tooltipCamaro-content"
- In the top selectmenu change the Effect to "Grow Effect"
- Mouse over the Camaro button again, the id of the tooltip is "qtip-0-content"
- In the top selectmenu change the Effect to "Fade Effect"
- Mouse over the Camaro button again, the id of the tooltip is "qtip-1-content"
To reproduce:
- Go to http://icefaces-showcase.icesoft.org/showcase.jsf?grp=aceMenu&exp=tooltipOverviewBean
- Mouse over the Camaro Button, the id of the tooltip is "qtip-form:tooltipCamaro-content"
- In the top selectmenu change the Effect to "Grow Effect"
- Mouse over the Camaro button again, the id of the tooltip is "qtip-0-content"
- In the top selectmenu change the Effect to "Fade Effect"
- Mouse over the Camaro button again, the id of the tooltip is "qtip-1-content"
r47603: removed mechanism in qtip code that assigned new numeric ids to new tooltip instances and instead added call to destroy the previous instance with the same id
While this wasn't a real issue, because those ids, prefixed with qtip-, were only created in the client side by the qtip plugin when rendering the actual tooltip markup, this behaviour was causing the page to use more memory to keep the markup of the previous tooltip versions as well as the entire instance object. In the delegate mode, this was being done for every row that triggered the tooltip. So, this fix not only prevents qtip from using different ids but also makes sure to destroy a previous tooltip instance if it had the same id of the one currently being rendered.
Testing notes: because this was a change in the underlying qtip widget, please run all regression tests.