volosied commented on code in PR #492:
URL: https://github.com/apache/myfaces/pull/492#discussion_r1085984802
##########
api/src/main/java/jakarta/faces/component/UISelectOne.java:
##########
@@ -90,37 +91,43 @@ public void processValidators(FacesContext context)
@Override
public VisitResult visit(VisitContext visitContext,
UIComponent target)
{
+ // check they they are of the same group
if (target instanceof UISelectOne && ((UISelectOne)
target).getGroup().equals(group))
{
- UISelectOne radio = (UISelectOne) target;
-
- // if target is an instance of UISelectOne then get
all the UISelectItem children
- // and verify if the submitted value exists
- for (Iterator<UIComponent> iter =
radio.getChildren().iterator(); iter.hasNext(); )
- {
- UIComponent component = iter.next();
- if (component instanceof UISelectItem)
- {
- UISelectItem item = (UISelectItem) component;
- if
(item.getItemValue().equals(submittedValue))
- {
- selectItemValueFound = true;
- return VisitResult.COMPLETE;
- }
- }
-
- }
- return VisitResult.REJECT;
Review Comment:
My understanding is that submittedValue is checked via
UISelectOne#validateValue which calls into:
https://github.com/apache/myfaces/blob/89c747e85615e3f33265e664c8361789f38ea7db/api/src/main/java/org/apache/myfaces/core/api/shared/SelectItemsUtil.java#L177
Additionally, the spec does not ask for the
`item.getItemValue().equals(submittedValue)` / `component instanceof
UISelectItem` checks here.
https://jakarta.ee/specifications/faces/4.0/apidocs/jakarta/faces/component/uiselectone#processValidators(jakarta.faces.context.FacesContext)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]