[
https://issues.apache.org/jira/browse/WICKET-3166?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12931954#action_12931954
]
Hudson commented on WICKET-3166:
--------------------------------
Integrated in Apache Wicket 1.4.x #267 (See
[https://hudson.apache.org/hudson/job/Apache%20Wicket%201.4.x/267/])
meh. this caching will probably slow things down. and it can be difficult
to find all the places in code where caching should be invalidated. lets hold
off until it is a hotspot.
Issue: WICKET-3166
caching for isVisibleInHieararchy()
Issue: WICKET-3166
> isVisibleInHierarchy() possibly unnecessarily checks children whose parents
> are invisible?
> ------------------------------------------------------------------------------------------
>
> Key: WICKET-3166
> URL: https://issues.apache.org/jira/browse/WICKET-3166
> Project: Wicket
> Issue Type: Bug
> Affects Versions: 1.4.13
> Reporter: Martin Makundi
> Assignee: Igor Vaynberg
> Fix For: 1.4.14, 1.5-M4
>
> Attachments: diff.txt, Wicket-Quickstart.zip
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> Hi!
> See attached quickstart with junit test reproducing the bug. See also patch
> proposal.
> I have a page with two panels:
> page.form.add(panel1);
> page.form.add(panel2);
> in some situations panel1 is not visible.
> However, a form submit event will visit all formcomponents of panel1 via:
> at
> org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder(FormComponent.java:400)
> at
> org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(Form.java:1209)
> at org.apache.wicket.markup.html.form.Form.inputChanged(Form.java:1403)
> at
> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:865)
> This results in a crash because panel1 components are not prepared to
> be invoked via isvisible when the panel itself is not visible.
> I wonder if the component.isVisibleInHierarchy could be changed as
> follows, to first check parent visibility:
> public final boolean isVisibleInHierarchy()
> {
> Component component = this;
> while (component != null)
> {
> Component componentParent = component.getParent();
> if (((componentParent == null) ||
> componentParent.isVisibleInHierarchy()) &&
> component.determineVisibility())
> {
> component = componentParent;
> }
> else
> {
> return false;
> }
> }
> return true;
> }
> Similar change could/should maybe be possible also for isEnabledInHierarchy ?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.