You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Tobias Gierke <to...@code-sourcery.de> on 2018/05/25 08:44:17 UTC
AJAX & IllegalStateException: Components can no longer be added
Hi,
Can someone please explain to me what's causing this exception (see end
of this mail) when trying to add a component to an ART ?
In
http://apache-wicket.1842946.n4.nabble.com/Components-can-no-longer-be-added-td4662838.html
Sven Meier said
> once rendering of components via Ajax has started, you cannot update
> components.
but as can be seen from the stacktrace I'm still in the beforeRender()
phase ... or is anything inside the beforeRender() code path already
considered to be part of the rendering phase ?
Thanks,
Tobias
----------------------------------------
java.lang.IllegalStateException: Components can no longer be added
at
org.apache.wicket.page.PartialPageUpdate.assertNotFrozen(PartialPageUpdate.java:858)
~[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.page.PartialPageUpdate.assertComponentsNotFrozen(PartialPageUpdate.java:851)
~[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.page.PartialPageUpdate.add(PartialPageUpdate.java:448)
~[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.ajax.AjaxRequestHandler.add(AjaxRequestHandler.java:263)
~[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.ajax.AjaxRequestHandler.add(AjaxRequestHandler.java:239)
~[wicket-core-8.0.0.jar:8.0.0]
at
com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRListPanel$1.lambda$0(XDRListPanel.java:73)
~[classes/:?]
at
com.vodecc.voipmng.boundary.wicket.behaviors.AjaxTooltipManager.doOnAjaxRequest(AjaxTooltipManager.java:411)
~[classes/:?]
at
com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRListPanel$1.queryFinished(XDRListPanel.java:73)
~[classes/:?]
at
com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.invokeCallbacks(AbstractSearchResultsDataProvider.java:241)
[classes/:?]
at
com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.getSearchResults(AbstractSearchResultsDataProvider.java:230)
[classes/:?]
at
com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.getSearchResults(AbstractSearchResultsDataProvider.java:252)
[classes/:?]
at
com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRDataTable.onConfigure(XDRDataTable.java:436)
[classes/:?]
at org.apache.wicket.Component.configure(Component.java:984)
[wicket-core-8.0.0.jar:8.0.0]
at org.apache.wicket.Component.beforeRender(Component.java:926)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
[wicket-core-8.0.0.jar:8.0.0]
at org.apache.wicket.Component.onBeforeRender(Component.java:3796)
[wicket-core-8.0.0.jar:8.0.0]
at org.apache.wicket.Component.beforeRender(Component.java:937)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.page.PartialPageUpdate.prepareComponent(PartialPageUpdate.java:322)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.page.PartialPageUpdate.writeComponents(PartialPageUpdate.java:250)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.page.PartialPageUpdate.writeTo(PartialPageUpdate.java:162)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.ajax.AjaxRequestHandler.respond(AjaxRequestHandler.java:383)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:912)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
[wicket-request-8.0.0.jar:8.0.0]
at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
[wicket-core-8.0.0.jar:8.0.0]
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
[wicket-core-8.0.0.jar:8.0.0]
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: AJAX & IllegalStateException: Components can no longer be added
Posted by Tobias Gierke <to...@code-sourcery.de>.
Hi Sven,
> Hi,
>
> actually it is even more strict:
>
> Once the ART has started generating the response - including
> preparation of components - you can now longer add other components.
>
> This hasn't changed from 7.x to 8.x
>
> We were discussing on lifting this restriction, but this would come
> with some difficulties: what if a component in beforeRender() adds one
> of its ancestors to be updated?
Thanks for the clarification!
Cheers,
Tobias
>
> Have fun
> Sven
>
>
> Am 25.05.2018 um 10:44 schrieb Tobias Gierke:
>> Hi,
>>
>> Can someone please explain to me what's causing this exception (see
>> end of this mail) when trying to add a component to an ART ?
>>
>> In
>> http://apache-wicket.1842946.n4.nabble.com/Components-can-no-longer-be-added-td4662838.html
>> Sven Meier said
>>
>>> once rendering of components via Ajax has started, you cannot update
>>> components.
>> but as can be seen from the stacktrace I'm still in the
>> beforeRender() phase ... or is anything inside the beforeRender()
>> code path already considered to be part of the rendering phase ?
>>
>> Thanks,
>> Tobias
>>
>> ----------------------------------------
>>
>> java.lang.IllegalStateException: Components can no longer be added
>> at
>> org.apache.wicket.page.PartialPageUpdate.assertNotFrozen(PartialPageUpdate.java:858)
>> ~[wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.page.PartialPageUpdate.assertComponentsNotFrozen(PartialPageUpdate.java:851)
>> ~[wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.page.PartialPageUpdate.add(PartialPageUpdate.java:448)
>> ~[wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.ajax.AjaxRequestHandler.add(AjaxRequestHandler.java:263)
>> ~[wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.ajax.AjaxRequestHandler.add(AjaxRequestHandler.java:239)
>> ~[wicket-core-8.0.0.jar:8.0.0]
>> at
>> com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRListPanel$1.lambda$0(XDRListPanel.java:73)
>> ~[classes/:?]
>> at
>> com.vodecc.voipmng.boundary.wicket.behaviors.AjaxTooltipManager.doOnAjaxRequest(AjaxTooltipManager.java:411)
>> ~[classes/:?]
>> at
>> com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRListPanel$1.queryFinished(XDRListPanel.java:73)
>> ~[classes/:?]
>> at
>> com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.invokeCallbacks(AbstractSearchResultsDataProvider.java:241)
>> [classes/:?]
>> at
>> com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.getSearchResults(AbstractSearchResultsDataProvider.java:230)
>> [classes/:?]
>> at
>> com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.getSearchResults(AbstractSearchResultsDataProvider.java:252)
>> [classes/:?]
>> at
>> com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRDataTable.onConfigure(XDRDataTable.java:436)
>> [classes/:?]
>> at org.apache.wicket.Component.configure(Component.java:984)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at org.apache.wicket.Component.beforeRender(Component.java:926)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.Component.onBeforeRender(Component.java:3796)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at org.apache.wicket.Component.beforeRender(Component.java:937)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.page.PartialPageUpdate.prepareComponent(PartialPageUpdate.java:322)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.page.PartialPageUpdate.writeComponents(PartialPageUpdate.java:250)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.page.PartialPageUpdate.writeTo(PartialPageUpdate.java:162)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.ajax.AjaxRequestHandler.respond(AjaxRequestHandler.java:383)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:912)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>> [wicket-request-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>> [wicket-core-8.0.0.jar:8.0.0]
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>> [wicket-core-8.0.0.jar:8.0.0]
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org
Re: AJAX & IllegalStateException: Components can no longer be added
Posted by Sven Meier <sv...@meiers.net>.
Hi,
actually it is even more strict:
Once the ART has started generating the response - including preparation
of components - you can now longer add other components.
This hasn't changed from 7.x to 8.x
We were discussing on lifting this restriction, but this would come with
some difficulties: what if a component in beforeRender() adds one of its
ancestors to be updated?
Have fun
Sven
Am 25.05.2018 um 10:44 schrieb Tobias Gierke:
> Hi,
>
> Can someone please explain to me what's causing this exception (see
> end of this mail) when trying to add a component to an ART ?
>
> In
> http://apache-wicket.1842946.n4.nabble.com/Components-can-no-longer-be-added-td4662838.html
> Sven Meier said
>
>> once rendering of components via Ajax has started, you cannot update
>> components.
> but as can be seen from the stacktrace I'm still in the beforeRender()
> phase ... or is anything inside the beforeRender() code path already
> considered to be part of the rendering phase ?
>
> Thanks,
> Tobias
>
> ----------------------------------------
>
> java.lang.IllegalStateException: Components can no longer be added
> at
> org.apache.wicket.page.PartialPageUpdate.assertNotFrozen(PartialPageUpdate.java:858)
> ~[wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.page.PartialPageUpdate.assertComponentsNotFrozen(PartialPageUpdate.java:851)
> ~[wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.page.PartialPageUpdate.add(PartialPageUpdate.java:448)
> ~[wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.ajax.AjaxRequestHandler.add(AjaxRequestHandler.java:263)
> ~[wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.ajax.AjaxRequestHandler.add(AjaxRequestHandler.java:239)
> ~[wicket-core-8.0.0.jar:8.0.0]
> at
> com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRListPanel$1.lambda$0(XDRListPanel.java:73)
> ~[classes/:?]
> at
> com.vodecc.voipmng.boundary.wicket.behaviors.AjaxTooltipManager.doOnAjaxRequest(AjaxTooltipManager.java:411)
> ~[classes/:?]
> at
> com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRListPanel$1.queryFinished(XDRListPanel.java:73)
> ~[classes/:?]
> at
> com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.invokeCallbacks(AbstractSearchResultsDataProvider.java:241)
> [classes/:?]
> at
> com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.getSearchResults(AbstractSearchResultsDataProvider.java:230)
> [classes/:?]
> at
> com.vodecc.voipmng.boundary.wicket.streamsearch.AbstractSearchResultsDataProvider.getSearchResults(AbstractSearchResultsDataProvider.java:252)
> [classes/:?]
> at
> com.vodecc.voipmng.boundary.wicket.xdrsearch.XDRDataTable.onConfigure(XDRDataTable.java:436)
> [classes/:?]
> at org.apache.wicket.Component.configure(Component.java:984)
> [wicket-core-8.0.0.jar:8.0.0]
> at org.apache.wicket.Component.beforeRender(Component.java:926)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1753)
> [wicket-core-8.0.0.jar:8.0.0]
> at org.apache.wicket.Component.onBeforeRender(Component.java:3796)
> [wicket-core-8.0.0.jar:8.0.0]
> at org.apache.wicket.Component.beforeRender(Component.java:937)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.page.PartialPageUpdate.prepareComponent(PartialPageUpdate.java:322)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.page.PartialPageUpdate.writeComponents(PartialPageUpdate.java:250)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.page.PartialPageUpdate.writeTo(PartialPageUpdate.java:162)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.ajax.AjaxRequestHandler.respond(AjaxRequestHandler.java:383)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:912)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> [wicket-request-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:283)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> [wicket-core-8.0.0.jar:8.0.0]
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> [wicket-core-8.0.0.jar:8.0.0]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org