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

Johannes Renoth commented on WICKET-6842:
-----------------------------------------

Additional information: I moved the code to set the default model object to 
onConfigure (could not move it to onInitialize due to framework constraints) 
but the Problem persists with almost identical Stacktraces. The problem is that 
RFLAG_RENDERING is true while onConfigre with setDefaultModel (or 
onBeforeRender previously) is called.

 

> onRender calls onBeforeRender
> -----------------------------
>
>                 Key: WICKET-6842
>                 URL: https://issues.apache.org/jira/browse/WICKET-6842
>             Project: Wicket
>          Issue Type: Bug
>    Affects Versions: 8.7.0
>            Reporter: Johannes Renoth
>            Priority: Major
>         Attachments: image-2020-10-15-18-22-55-532.png, 
> image-2020-10-15-18-24-23-028.png, image-2020-10-15-18-25-02-102.png, 
> image-2020-10-15-18-25-44-692.png
>
>
> I am not 100% sure if this is a bug in Wicket but i have the following 
> stacktrace from our application:
> {code:java}
> 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:3553) 
> at org.apache.wicket.Page.dirty(Page.java:270) 
> at org.apache.wicket.markup.html.WebPage.dirty(WebPage.java:317) 
> at org.apache.wicket.Page.dirty(Page.java:249) at 
> org.apache.wicket.Page.componentModelChanging(Page.java:883) 
> at org.apache.wicket.Component.modelChanging(Component.java:2150) 
> at org.apache.wicket.Component.setDefaultModel(Component.java:2926) 
> ...
> at xyz.onBeforeRender(XYZ2.java:571) 
> at xyz.onBeforeRender(XYZ1.java:52)
> at xyz.onBeforeRender(XYZ.java:89) 
> at org.apache.wicket.Component.beforeRender(Component.java:939) 
> at 
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1737)
>  at org.apache.wicket.Component.onBeforeRender(Component.java:3808)
> at org.apache.wicket.Component.beforeRender(Component.java:939) 
> at 
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1737)
>  at org.apache.wicket.Component.onBeforeRender(Component.java:3808) 
> at org.apache.wicket.Component.beforeRender(Component.java:939) 
> at 
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1737)
>  at org.apache.wicket.Component.onBeforeRender(Component.java:3808) 
> at org.apache.wicket.Component.beforeRender(Component.java:939) 
> at 
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1737)
>  at org.apache.wicket.Component.onBeforeRender(Component.java:3808) 
> at org.apache.wicket.Component.beforeRender(Component.java:939) 
> at 
> org.apache.wicket.MarkupContainer.addedComponent(MarkupContainer.java:1029) 
> at org.apache.wicket.MarkupContainer.add(MarkupContainer.java:240) 
> at org.apache.wicket.MarkupContainer.autoAdd(MarkupContainer.java:313) 
> at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1426) 
> at org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1637) 
> at 
> org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1612)
> at 
> org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1570)
> at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:70)
>  
> at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.onComponentTagBody(DefaultMarkupSourcingStrategy.java:70)
>  
> at org.apache.wicket.Component.internalRenderComponent(Component.java:2491) 
> at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1576) 
> at org.apache.wicket.Component.internalRender(Component.java:2296)
> {code}
> I have a Form component inside a Border inside a Form (if that is relevant)
> I dont think onbeforeRender should be called in the render phase of another 
> component (which ultimately leads to this error).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to