Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.1.0.BETA1
-
Fix Version/s: 3.3
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ACE
-
Assignee Priority:P1
Description
Discovered when looking into ICE-8301, it appears that a container component can get a false positive in thinking that a behavior event for a child component was for itself, as long as they support behavior events of the same name. The most likely scenario would be of the container component being nested in another component of its own type.
It's due to the imprecise matching of event sources to components:
String behaviorSource = params.get("javax.faces.source");
String clientId = component.getClientId();
if(behaviorSource != null && behaviorSource.startsWith(clientId)) {
Any naming container ancestor of the actual source would have a false positive match with the use of startsWith(-).
It's due to the imprecise matching of event sources to components:
String behaviorSource = params.get("javax.faces.source");
String clientId = component.getClientId();
if(behaviorSource != null && behaviorSource.startsWith(clientId)) {
Any naming container ancestor of the actual source would have a false positive match with the use of startsWith(-).
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Initial checks with showcase look favorable. Possibility still exists that this change may still cause a regression in the border cases of some components.
Revision #33185
Committed by nils.lundquist
2 minutes ago
ICE-8304- Alterered CoreRenderer.decodeBehaviours to match complete component id.