Description
It is not allowed to change the model object of a panel added to a border component (see attachment).
The quickstart demonstrates the problem. Here you can find 3 test pages all with a TextField and a Panel with a TextField. For each component, the model object is set at the onConfigure method. At the first page both components are added to the page itself. At the second page both components are added to the border body container of a Border component. At the third page both components are added to a "Layout" container (a Border component too). The third page is not rendered with Wicket 7.5.0 (see stacktrace).
It was working for Wicket 7.4.0
org.apache.wicket.WicketRuntimeException: Cannot modify component hierarchy after render phase has started (page version cant change then anymore)
at org.apache.wicket.Component.checkHierarchyChange(Component.java:3674)
at org.apache.wicket.Page.dirty(Page.java:271)
at org.apache.wicket.markup.html.WebPage.dirty(WebPage.java:332)
at org.apache.wicket.Page.dirty(Page.java:250)
at org.apache.wicket.Page.componentModelChanging(Page.java:904)
at org.apache.wicket.Component.modelChanging(Component.java:2230)
at org.apache.wicket.Component.setDefaultModelObject(Component.java:3133)
at org.apache.wicket.markup.html.form.FormComponent.setModelObject(FormComponent.java:1579)
at com.mycompany.front.wicket.components.TestPanel.onConfigure(TestPanel.java:30)
Attachments
Attachments
Issue Links
- Is contained by
-
WICKET-6303 renderHead method of a Behavior added to a Border body is not called
- Resolved
- relates to
-
WICKET-6216 Problem with queued components and border
- Resolved
-
WICKET-6399 Dequeuing of Border component with nested body fails
- Resolved
- links to