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

ASF subversion and git services commented on WICKET-6946:
---------------------------------------------------------

Commit 860c803ba287b71c76a9096b3d2f8109ad694248 in wicket's branch 
refs/heads/wicket-9.x from Mathieu Mitchell
[ https://gitbox.apache.org/repos/asf?p=wicket.git;h=860c803 ]

WICKET-6946 Document limitations of overriding isVisible/isEnabled


> isVisibleInHierarchy/isEnabledInHierarchy broken by isVisible/isEnabled 
> override
> --------------------------------------------------------------------------------
>
>                 Key: WICKET-6946
>                 URL: https://issues.apache.org/jira/browse/WICKET-6946
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-core
>            Reporter: Mathieu Mitchell
>            Priority: Major
>
> Currently, isVisibleInHierarchy and isEnabledInHierarchy can return invalid 
> values when isVisible or isEnabled is overridden. The problem is caused by 
> the caching done in isVisibleInHierarchy/isEnabledInHierarchy. Currently, the 
> cache is invalidated in setVisible/setEnabled. The cache invalidation is not 
> done when components are overriding isVisible/isEnabled.
> Additionally, the documentation mentions impacts of overriding 
> isVisible/isEnabled when using "non-trivial" code, as the methods are called 
> multiple times and can slow down page rendering.
> The best practices chapter mentions overriding isVisible/isEnabled as the 
> appropriate approach. Another best practices page mentions that a component 
> factory should not be used because it prevents overriding isVisible/isEnabled 
> in an anonymous class.
> There is no clear warning that overriding isVisible/isEnabled can break 
> isVisibleInHierarchy/isEnabledInHierarchy when the returned value can change.
> There is also no indication that overriding isVisible/isEnabled is not 
> recommended.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to