Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0-Alpha3
-
Component/s: Framework
-
Labels:None
-
Environment:icefaces2
-
ICEsoft Forum Reference:
Description
CoreComponentUtils.findComponent(UIComponent uiComponent, String componentId) has a bug where the id matching uses String.endsWith, which erroneously matches components when a component id ends with a substring that is equal to the id of another component. A concrete example is in the forum post.
} else if (child.getId() != null && componentId.endsWith(child.getId())) {
} else if (child.getId() != null && componentId.endsWith(child.getId())) {
Changed CoreComponentUtils from:
} else if (child.getId() != null && componentId.endsWith(child.getId()))
{ to }else if (child.getId() != null && componentId.equals(child.getId())) {
I've attached the test case that I used to verify the change fixes the original problem with the datapaginator id as well as a couple of other scenarios that might have been impacted by the change.