Revert "WICKET-6608 Stateless page, mix of queue and add can cause unforseen"
This reverts commit 147f6d33f839edd9a6eb53ce9c20b4cde07fc938. Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/6a0fdedb Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/6a0fdedb Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/6a0fdedb Branch: refs/heads/WICKET-6563 Commit: 6a0fdedba3383ebf5ebbc15e51ac56567955ecc1 Parents: 7b025ab Author: Sven Meier <svenme...@apache.org> Authored: Mon Dec 3 17:56:31 2018 +0100 Committer: Sven Meier <svenme...@apache.org> Committed: Mon Dec 3 17:56:31 2018 +0100 ---------------------------------------------------------------------- .../handler/PageAndComponentProvider.java | 50 +++++++------------- 1 file changed, 18 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/6a0fdedb/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java index 785c4a7..0638c9b 100644 --- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java +++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/PageAndComponentProvider.java @@ -158,10 +158,27 @@ public class PageAndComponentProvider extends PageProvider implements IPageAndCo component = page != null ? page.get(componentPath) : null; if (component == null) { + + /* + * on stateless pages it is possible that the component may not yet exist because it + * couldve been created in one of the lifecycle callbacks of this page. Lets invoke + * the callbacks to give the page a chance to create the missing component. + */ + // make sure this page instance was just created so the page can be stateless if (page.isPageStateless()) { - component = resolveStatelessPageComponent((Page)page); + Page p = (Page)page; + p.internalInitialize(); + + // preparation of feedbacks is delayed into the render phase + try (FeedbackDelay delay = new FeedbackDelay(p.getRequestCycle())) { + p.beforeRender(); + p.markRendering(false); + + // note: no invocation of delay.onBeforeRender() + } + component = page.get(componentPath); } } } @@ -174,37 +191,6 @@ public class PageAndComponentProvider extends PageProvider implements IPageAndCo } /** - * On stateless pages it is possible that the component may not yet exist because it - * could have been created in one of the lifecycle callbacks of this page. Lets invoke - * the callbacks to give the page a chance to create the missing component. - **/ - private IRequestableComponent resolveStatelessPageComponent(Page page) - { - //1-first let's try initializing the page - page.internalInitialize(); - - IRequestableComponent component = page.get(componentPath); - - if (component != null) - { - return component; - } - - //2-if component has not been found let's try rendering the page - - // preparation of feedbacks is delayed into the render phase - try (FeedbackDelay delay = new FeedbackDelay(page.getRequestCycle())) - { - page.beforeRender(); - page.markRendering(false); - - // note: no invocation of delay.onBeforeRender() - } - - return page.get(componentPath); - } - - /** * @see org.apache.wicket.core.request.handler.IPageAndComponentProvider#getComponentPath() */ @Override