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

Andrea Del Bene commented on WICKET-4906:
-----------------------------------------

The idea behind your code is ok, but it should work also with raw visitors, 
i.e. implementations of IVisitor without parameter types. I've attached my 
patch which is based on generic interfaces rather than class methods. 
                
> Form#visitFormComponents can cause ClassCastException
> -----------------------------------------------------
>
>                 Key: WICKET-4906
>                 URL: https://issues.apache.org/jira/browse/WICKET-4906
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 6.3.0
>            Reporter: Jesse Bonzo
>            Priority: Minor
>              Labels: form, visit, wicket
>         Attachments: detectVisitorComponentClass.patch, 
> visitFormComponentsfix.patch, WicketQuickStart.zip
>
>
> The current method signature of Form#visitComponents allows for passing in an 
> implementation of IVisitor that will cause a ClassCastException. 
> Example
> Add a CheckBox and TextField to the Form. Pass in an IVisitor<CheckBox> to 
> visitComponents. There will be a ClassCastException when the 
> IVisitor<CheckBox> attempts to visit the TextField.
> The method signature should be changed to
> public final <R> R visitFormComponents(final IVisitor<FormComponent<?>, R> 
> visitor)
> or the method should be removed to prevent confusion.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to