[ 
https://issues.apache.org/jira/browse/WICKET-7159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17986238#comment-17986238
 ] 

ASF GitHub Bot commented on WICKET-7159:
----------------------------------------

mira-silhavy commented on code in PR #1186:
URL: https://github.com/apache/wicket/pull/1186#discussion_r2167424604


##########
wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java:
##########
@@ -1986,7 +1986,7 @@ protected final void validateFormValidator(final 
IFormValidator validator)
                                }
                                // check if the dependent component is visible 
and is attached to
                                // the page
-                               else if (!dependent.isVisibleInHierarchy() || 
!dependent.isEnabledInHierarchy() || !dependent.isFormParticipant())

Review Comment:
   Thinking about the test fix I did in the last commit, what do you think of a 
case when `null` is being returned? Do you think it is a valid use case when a 
developer would want to use FormValidator without any dependent component, e.g. 
show error based on some condition in model data?





> IFormValidator Skipped When Any Dependent Component is Disabled in Wicket 10.x
> ------------------------------------------------------------------------------
>
>                 Key: WICKET-7159
>                 URL: https://issues.apache.org/jira/browse/WICKET-7159
>             Project: Wicket
>          Issue Type: Bug
>            Reporter: Miroslav Silhavy
>            Priority: Major
>
> Regression causing a breaking behavior in Wicket 10, caused by change 
> WICKET-3899. Discussed here 
> [https://github.com/apache/wicket/pull/1033#discussion_r2104060257].
> Short description
>  * After upgrading to Wicket 10.x, form validators ({{{}IFormValidator{}}}) 
> are not executed if any dependent form component is disabled, due to the 
> addition of anĀ {{isEnabledInHierarchy()}} check. This breaks backward 
> compatibility for applications that rely on validators with conditionally 
> enabled/disabled fields or a field with multiple radio buttons, as the 
> validator is now skipped in these cases. This impacts forms with validation 
> logic and causes migration issues for existing Wicket 9 applications. A flag 
> or configuration to restore the previous behavior, or reverting the change, 
> is needed for backward compatibility.
>  * Common UI patterns with conditionally enabled/disabled fields no longer 
> work with form validators
>  * We must restructure validators and implement complex enabled/disabled 
> field checking in {{getDependentFormComponents()}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to