You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Johannes Renoth (Jira)" <ji...@apache.org> on 2020/10/15 07:39:00 UTC

[jira] [Updated] (WICKET-6842) onRender calls onBeforeRender

     [ https://issues.apache.org/jira/browse/WICKET-6842?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Johannes Renoth updated WICKET-6842:
------------------------------------
    Description: 
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)
{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).

  was:
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(Eingabekomponente.java:571) 
at xyz.onBeforeRender(AuswahlEingabekomponente.java:52)
at xyz.onBeforeRender(ESPFormularUtil.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)
{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).


> 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
>
> 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)
> {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)