[
https://issues.apache.org/jira/browse/WICKET-6608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16705993#comment-16705993
]
ASF GitHub Bot commented on WICKET-6608:
----------------------------------------
GitHub user svenmeier opened a pull request:
https://github.com/apache/wicket/pull/342
Wicket 6616 always render new pages
Question: Should Wicket always render new pages before any component in it
is accessed?
* until 8.1.0
* components can be accessed **un-rendered** when already inside the
page hierarchy
* then the page is prepared for render
* any component added in onInitialize() or onBeforeRender() can be
accessed **rendered**
* since 8.2.0 (WICKET-6608)
* components can be accessed **un-rendered** when already inside the
page hierarchy
* then the page is initialized
* any component added in onInitialize() (e.g. through queueing) can be
accessed **rendered**
* then the page is prepared for render
* any component added in onBeforeRender() can be accessed **rendered**
IMHO all these cases should allow access to **rendered** component only.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/wicket WICKET-6616-render-new-pages
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/wicket/pull/342.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #342
----
commit 7b2bb1162dd80e6faab9fb9f0fc30c0d153a4bd2
Author: Sven Meier <svenmeier@...>
Date: 2018-11-30T15:10:18Z
Revert "WICKET-6608 Stateless page, mix of queue and add can cause
unforseen"
This reverts commit 61c8709389cea30975814530f53dd0ae1f1ea592.
commit a446138852fe1748ff879d85bced1b19f8af444e
Author: Sven Meier <svenmeier@...>
Date: 2018-11-30T15:10:21Z
Revert "WICKET-6608 added test case"
This reverts commit 86f92fc8cfaf4ec15409908455d049f9466c542e.
commit 557115433e3485fc6ab50607ae930ff46c14c80a
Author: Sven Meier <svenmeier@...>
Date: 2018-12-01T20:14:40Z
WICKET-6616 always render new pages
----
> Stateless page, mix of queue and add can cause unforseen consequences
> ---------------------------------------------------------------------
>
> Key: WICKET-6608
> URL: https://issues.apache.org/jira/browse/WICKET-6608
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 8.1.0
> Reporter: Oddgeir Bell
> Assignee: Andrea Del Bene
> Priority: Minor
> Fix For: 8.2.0, 9.0.0
>
> Attachments: statelessQueueAdd.zip
>
>
> We are in the process of upgrading a Wicket 6.x application to Wicket 8.1,
> mostly because we needed stateless ajax.
> In the process we discovered something quite unexpected (took a few days to
> figure out the cause).
> This is the issue:
> Stateless page.
> Hierarchy like so:
> Page
> ->Container
> ->Label
> ->AjaxButton
>
> The label should only be visible when it's model has data, so we override
> onConfigure and set visible = (getDefaultModelObject != null).
> This works if all components are added with add(Component).
> It also works if all components are added with queue(Component).
> BUT, if the container is added with add(Component) and the AjaxButton is
> added with queue(Component), it doesn't work.
> Actually, if just one component is added to the page with queue(Component),
> things seem to work (as long as it is queue-ed AFTER the container is add-ed)
> I could not find any information on dangers of mixing add/queue with my
> google-fu, so it may look like it's a bug?
>
> Attached quickstart that shows the issue.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)